Dear
I have an empty go program that I would like to run as pid1 from the 
initramfs embedded into the kernel after the linux kernel booted (a real 
init would for sure do more than just looping forever):
package main

func main() {
for {
}
}


Any ideas where to follow to narrow down the issue? Many thanks in advance.

I can get it running without panic when I call the go program from a c 
program that first mounts dev filesystem:
int main()
{
// Mount the devtmpfs filesystem to /dev
mount("devtmpfs", "/dev", "devtmpfs", 0, NULL);

// run the main program
execl("/main", "/main", (char *)NULL);
exit(EXIT_FAILURE);
}

When calling the go program without first mounting dev filesystem I get 
again a kernel panic.

I seems the go runtime somehow needs a mounted dev filesystem in order to 
initialize properly.

My test platform is aarch64 running in qemu with following command:
qemu-system-aarch64 \
-machine virt \
-cpu cortex-a57 \
-smp 2 -m 2048 \
-kernel linux/arch/arm64/boot/Image \
-append "console=ttyAMA0" \
-nographic


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/896b8411-77e5-4741-b283-5d401286e820n%40googlegroups.com.

Reply via email to