Thanks for all the thoughts, everyone.
let's assume, you figure out the static shared library thing and you DO include all things in it...
I can confirm that my busybox binary
definitely is statically linked. That being the case, I shouldn't need any other libraries or executables, other than an init script (or a symlink to busybox as an init).
devtmpfs. automatically built in kernel. have to do it manually... something to look at.
I did not check this, so I'll make sure that this is included.
and then... cpio. it's cpio. u have to crc32. beware 64 bits systems.
This is a 64-bit system. Can you elaborate more on how the procedure would be different on this system? Does the procedure in the wiki skip a step related to the CRC32?
to make it work, the initrd.cpio image has to have a /init or a /linuxrc. literally. an executable file, named init or linuxrc. inside the cpio. could be a shell using busybox.
There is an init script that uses "/bin/busybox sh" as the shell, and it is set to executable.
dev, proc, sys, run, tmp. u have to create them in the cpio
I have bin, dev, proc, and sys, but not tmp.
your busybox setup has no inittab file or something.
I do not have an inittab file. I can try adding one.
maybe you also need an actual separate shell executable? like /bin/sh and/or /bin/bash with all of the libraries.
I also mount things with -n -t in my initramfs, I don't remember if it's really needed, but since I put it there it must be for some reason..
Statically-linked busybox should not require anything else. I am not familiar with the -n and -t options for mount, I'll have to read up on those.
If the script exited, it should have printed error messages before the kernel panic. Did it not?
Nope. I recorded the boot log on my phone, and didn't see any error messages. I'd transcribe it here, but that seems like a lot.
Although this may be convenient, particularly for development, you don't need to do this when you are ready to make an initramfs for embedding in the kernel.
Good point, I forgot to mention that the initramfs is
not embedded in the kernel, it is separate. The intent was to use the exact same kernel I'm using now, but with an initramfs instead of my normal filesystem.
No /dev?
Nope... I'm just following along with the wiki page, which
does copy a few device nodes into the initramfs, but does not mount them. Is that an error?
It's entirely possible that the wiki page has some errors. If I can get this working, I'll gladly make the corrections.