Hello,
I'm trying to put together a 2.6/uClibc/busybox-based system for my VIA EPIA. I'm currently running DSL 2.3 with a 2.4 kernel, but am building the kernel (2.6.16.11 stock) and the apps for my rootfs in a uClibc 0.9.28/gcc-3.4.6/binutils-2.16.1 (+buildroot patches) environment into which I chroot. I can also chroot into the rootfs and everything there works fine, shared libraries are in place etc:
# ldd bin/sh # bin/sh: is setuid libcrypt.so.0 => /lib/libcrypt.so.0 (0x40008000) libm.so.0 => /lib/libm.so.0 (0x4001c000) libc.so.0 => /lib/libc.so.0 (0x4002a000) ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x40000000)
But when I pack the rootfs into an initramfs and boot my shiny new kernel, things turn bad: The kernel correctly finds /dev/console and /init (a shell script for a statically linked /bin/dash), which does a ldconfig (statically linked) without problems and echos some messages, but fails to execute any dynamically linked program, claiming that it doesn't know the binary format. (When I had module support compiled in, it would hang itself trying to modprobe for binfmt-0000, which I think meant essentially the same thing.) But support for all formats is turned on, and shouldn't it be ELF anyway? And the same programs run in the chroot environment under the 2.4 distro kernel - I'm not quite sure what to make of it.
Any ideas appreciated.
Thanks, Rupert