Hello guys, I'm trying to run sel4 using qemu under macosx, but it looks crash happened(Same steps were done on Ubuntu, but nothing bad happened.). More info: I'm following the doc here with docker as the build environment: https://docs.sel4.systems/GettingStarted.html Any tips are appreciated. Logs: chenpingyuan@in-container:/host/sel4_arm64/build_aarch64$ ./simulate ./simulate: QEMU command: qemu-system-aarch64 -machine virt -cpu cortex-a53 -nographic -m size=2G -kernel images/sel4test-driver-image-arm-qemu-arm-virt Not in hyp mode, cannot reset CNTVOFF_EL2 ELF-loader started on CPU: ARM Ltd. Cortex-A53 r0p4 paddr=[40a27000..40eed0b7] No DTB passed in from boot loader. Looking for DTB in CPIO archive...found at 40b61eb8. Loaded DTB from 40b61eb8. paddr=[4023d000..4023efff] ELF-loading image 'kernel' to 40000000 paddr=[40000000..4023cfff] vaddr=[ffffff8040000000..ffffff804023cfff] virt_entry=ffffff8040000000 ELF-loading image 'sel4test-driver' to 4023f000 paddr=[4023f000..40634fff] vaddr=[400000..7f5fff] virt_entry=40e568 Enabling MMU and paging Jumping to kernel-image entry point... Bootstrapping kernel Warning: Could not infer GIC interrupt target ID, assuming 0. available phys memory regions: 1 [40000000..80000000] reserved virt address space regions: 3 [ffffff8040000000..ffffff804023d000] [ffffff804023d000..ffffff804023ed11] [ffffff804023f000..ffffff8040635000] Booting all finished, dropped to user space Caught cap fault in send phase at address 0 while trying to handle: unknown syscall 0x476dcc in thread 0xffffff807ffca400 "rootserver" at address 0x460964 With stack: 0x6e3ca0: 0x466a53 0x6e3ca8: 0x460b84 0x6e3cb0: 0x457474 0x6e3cb8: 0x0 0x6e3cc0: 0x6e3f30 0x6e3cc8: 0x0 0x6e3cd0: 0x0 0x6e3cd8: 0x4433f0 0x6e3ce0: 0x0 0x6e3ce8: 0x0 0x6e3cf0: 0x0 0x6e3cf8: 0x0 0x6e3d00: 0x0 0x6e3d08: 0x0 0x6e3d10: 0x0 0x6e3d18: 0x0
During the compilation of your image, do you see any warnings from “sed”? I use a Docker container on an M1 MAC, and I need to modify the Makefile in musllibc to prevent a rootserver crash. This patch bypasses an issue of sed creating a new file. Without it, the seL4 flavor of musllibc won’t compile.
diff --git a/Makefile b/Makefile
index 5973d09f..7c8b863b 100644
--- a/Makefile
+++ b/Makefile
@@ -68,7 +68,7 @@ build_muslc:
# Only print output if there's an error as configure is quite noisy
# Also need to update the ARCH in the config.mak file configure generates
[ "`cat configure_line 2>&1`" != "${configure_line}" ] && \
- ${SOURCE_DIR}/configure ${configure_line} 2>&1 > config.log || cat config.log && sed -ibak 's/^ARCH = \(.*\)/ARCH = \1_sel4/' config.mak || true
+ ${SOURCE_DIR}/configure ${configure_line} 2>&1 > config.log || cat config.log && mv config.mak config.makbak && sed 's/^ARCH = \(.*\)/ARCH = \1_sel4/' config.makbak >> config.mak || true
From: chenpingyuan--- via Devel
Hi Chris, Your tips help a lot. The issue was resolved by using your trick. Thanks a lot! Regards Neil.
participants (2)
-
chenpingyuan@xiaomi.com
-
Chris Guikema