Dear seL4 developers,
I am running the CAmkES VM examples from `https://github.com/seL4/camkes-vm-examples` and am able to boot the `minimal` example with:
```
$ ../init-build.sh -DSIMULATION=TRUE -DCAMKES_VM_APP=minimal $ ninja $ qemu-system-x86_64 -m 512 -kernel images/kernel-ia32-pc99 -initrd images/capdl-loader-image-ia32-pc99 --enable-kvm -smp 2 -cpu Nehalem,+vmx -nographic
```
However this example does not provide networking capabilities due to missing drivers (is that correct?). Is there a simple way I may add networking? Simply put I would like the Linux guest to be able to connect to the internet. I tried passing the QEMU parameters to setup a tap interface, which didn't help.
I also tried to use the example `cma34cr_centos` which should already provide networking but when I try to boot this example using
`qemu-system-x86_64 -m 2048 -kernel images/kernel-x86_64-pc99 -initrd images/capdl-loader-image-x86_64-pc99 --enable-kvm -smp 2 -cpu Nehalem,+vmx -nographic`
I get the following error: `create_objects@main.c:794 Ran out of untyped memory while creating objects.`. Full log output in the `.log` file.
Thanks in advance,
Best regards,
Cedric Maire
===============================================================================
The ICRC - working to protect and assist people affected by armed conflict and
other situations of violence. Find out more: www.icrc.org
This e-mail is intended for the named recipient(s) only.
Its contents are confidential and may only be retained by the named recipient
(s) and may only be copied or disclosed with the consent of the International
Committee of the Red Cross (ICRC). If you are not an intended recipient please
delete this e-mail and notify the sender.
===============================================================================
I'm following the steps to build sel4 for QEMU and Spike here: https://docs.sel4.systems/Hardware/spike.html
Spike - seL4 Docs | seL4 docs<https://docs.sel4.systems/Hardware/spike.html>
If you plan to use the ./simulate script, please be sure to add the -DSIMULATION=1 argument when running cmake. Generated binaries can be found in the images/ directory.. You can also use run the tests on the 32-bit spike platform by replacing the -DRISCV64=TRUE option with -DRISCV32=TRUE.
docs.sel4.systems
Since my system doesn't have QEMU 4.2 or better I built the latest version of QEMU and use that instead. I get the following error from QEMU:
/mnt/data/qemu/build/riscv64-softmmu/qemu-system-riscv64 -machine spike -nographic -serial mon:stdio -m size=4095M -kernel images/sel4test-driver-image-riscv-spikeqemu-system-riscv64: Unable to load the RISC-V firmware "opensbi-riscv64-spike-fw_jump.elf"
In Spike this happens:
/mnt/data/rocket-tools/bin/spike images/sel4test-driver-image-riscv-spike
bbl loader
ELF-loader started on (HART 0) (NODES 1)
paddr=[80200000..8064d4d7]
Looking for DTB in CPIO archive...found at 802cb1a0.
Loaded DTB from 802cb1a0.
paddr=[8402a000..8402afff]
ELF-loading image 'kernel'
paddr=[84000000..84029fff]
vaddr=[ffffffff84000000..ffffffff84029fff]
virt_entry=ffffffff84000000
ELF-loading image 'sel4test-driver'
paddr=[8402b000..84401fff]
vaddr=[10000..3e6fff]
virt_entry=1b540
Jumping to kernel-image entry point...
Init local IRQ
Initialing PLIC...
The tutorials lead me to believe this should go to user space. i.e.
327 printf("Booting all finished, dropped to user space\n");
in kernel/src/arch/riscv/kernel/boot.c
Can anyone point out what's going wrong here in these two cases?
Thank you!
Jeremy