Hello! Not sure if you're still working on this but I'm also running seL4 bare
metal on x86-64. My first recommendation which helped me a lot is to try to get
it to run on qemu using your disk image rather than using the ./simulate script
(I'm assuming you're currently flashing the image to a usb and booting it off a
physical machine) because it qemu provides additional debug info especially if
a triple fault is happening. You can use OVMF from tianocore to enable qemu to
boot uefi images.
Here's my grub entry as well:
menuentry "Load seL4 VM" --class os {
insmod gzio
insmod video
insmod video_bochs
insmod video_cirrus
insmod efi_gop
insmod efi_uga
set root='(hd0,gpt1)'
multiboot2 /Fennec/kernel
module2 /Fennec/root_task
}
My other suggestions are to set the cmake variable KernelHugePage to OFF (call
cmake with -DKernelHugePage=OFF) as I found it got in the way of booting, for
whatever reason. Also, see if padding your root task image out to 1MB helps.
Seriously, just add 0s to the end of the file out to a MB or two. Different
sections of the kernel are loaded at different addresses, and for me, grub was
trying to squeeze the root task image in between two of these sections rather
than at the very end, which was causing an assert to fail. Padding the image
forces grub to place it after all kernel sections. That assertion fail should
show up in the serial log though.
Finally, here's the github to my project I'm working on which should boot fine
if you follow the steps in the README. The code is a bit of a mess because it
was a learning experience for me too. The grub file is under
bootloader/grub.cfg and the root task is under sel4/projects/root_task. Output
image can be burned to a usb or simulated in qemu (the OVMF files are
provided). It should have both serial and graphical output if booted correctly.
https://github.com/FennelFoxxo/Fennec/
_______________________________________________
Devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]