cmake_plat | simulation_target | SPDX-License-Identifier | SPDX-FileCopyrightText |
---|---|---|---|
x86_64 |
true |
CC-BY-SA-4.0 |
2020 seL4 Project a Series of LF Projects, LLC. |
seL4 runs on 32-bit ia32 and 64-bit x64 machines, on qemu and on hardware.
- Works with Dijkstra and window client and this cable.
- Hemlock: Garbled data
- leap-403: no op on IPMI
Checkout the sel4test project using repo as per seL4Test
repo init -u https://github.com/seL4/sel4test-manifest.git
repo sync
mkdir cbuild
cd cbuild
../init-build.sh -DPLATFORM=x86_64 && ninja
Please substitute -DPLATFORM=ia32
in place of -DPLATFORM=x86_64
if you would
prefer to build 32-bit binaries.
When running on real hardware console output will be over serial. You will need to plug a serial cable into your machine to see any output.
The build system produces a multiboot compliant image for x86; a grub2 stanza is here, but we usually boot via PXE for convenience.
menuentry "Load seL4 VM" --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
multiboot /boot/sel4kernel
module /boot/sel4rootserver
}
Booting via PXEBOOT using syslinux PXELINUX requires setting up a tftp and dhcp server on the network that the machine you want to boot is connected to. This debian page explains how to setup a tftp and dhcp server, and the syslinux site has a download for pxelinux which we load over PXEBOOT that then can load seL4. The configuration for pxelinux.cfg/default is provided below.
label seL4
kernel mboot.c32
append kernel-ia32-pc99 --- apps-ia32-pc99
Use syslinux to create a bootable USB stick as follows.
Assuming your USB flash drive is at /dev/sdb
with a FAT partition at
/dev/sdb1
:
install-mbr /dev/sdf
syslinux --install /dev/sdf1
mount /dev/sdf1 /mnt
cp images/sel4test-driver-image-x86_64-pc99 /mnt/rootserver
cp images/kernel-x86_64-pc99 /mnt/sel4kernel
cat > /mnt/syslinux.cfg <<EOF
SERIAL 0 115200
DEFAULT seL4test
LABEL seL4test
kernel mboot.c32
append sel4kernel --- rootserver
EOF
cp /usr/lib/syslinux/modules/bios/mboot.c32 /mnt
cp /usr/lib/syslinux/modules/bios/libcom32.c32 /mnt
umount /mnt
Use fdisk
to make sure the first partition is bootable.
And you're done. Output will come on the serial port
The lab machines we have tried this on is:
- hemlock
- minsky
Spec: i7, 16G ram MotherBoard: Manual
Here is zoomed in picture of connector-11.
We are using the adafruit serial to USB cable.
Color | Cable Side | Board Side |
---|---|---|
Green | TX | RXD |
White | RX | TXD |
Black | GND | GND |
Spec: i5, 10 GB ram
Has a DB9 serial port at the back.
We are using the adafruit serial to USB cable.
Color | Cable Side | Board Side |
---|---|---|
Green | TX | RXD - Pin2 |
White | RX | TXD - Pin3 |
Black | GND | GND - Pin 5 |
When using DTECH Cable instead of ADAFRUIT. Remember that Green and white are flipped. Finally worked with this cable
- Try with leap-405: IPMI console seems to reading from ttys0. Tried changing the port via commandline to sel4 for port0 and port1, but there was no op on the ipmi.
- Try PXE boot with leap-405