Thank you again for the quick response.
I created the /chroot-test dir and did like you said, using chroot to run hdparm. It looks like my distro also requires /lib/ld-linux.so.2 and /lib/libc.so.6. Once those are in place in /chroot-test/lib/ I can load hdparm.
I used ldd and ls -ls to find the files that the links pointed to.
# ldd /sbin/hdparm libc.so.6 => /lib/libc.so.6 (0x40020000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
# ls -ld /lib/ld-linux.so.2 lrwxrwxrwx 1 root root 11 2003-11-13 15:12 /lib/ld-linux.so.2 -> ld-2.3.2.so
# ls -ld /lib/libc.so.6 -rwxr-xr-x 1 root root 1491599 2003-03-13 17:33 /lib/libc.so.6
Then I do a ./makeImage -k /usr/src/linux-2.4.22/arch/i386/boot/bzImage -c /tftpboot/udpcast/images/udpcd.img -i /tftpboot/udpcast/initrd --bzip -m bcm5700 --merge /bin/hdparm=/sbin/hdparm /lib/ld-linux.so.2=/lib/ld-2.3.2.so /lib/libc.so.6=/lib/libc.so.6
I load the image up and I do a /bin/hdparm. "/bin/hdparm: No such file or directory" cd /bin ls -l |grep hdparm
-rwxr-xr-x 1 0 0 47976 Thu Jan 1 00:00:00 1970 Thu Jan 1 00:00:00 1970 hdparm
cd /lib ls -a all it shows is the modules dir
I double checked the syntax for the library names, and they're correct.
Just to try and troubleshoot, I tried merging /lib/ls-2.3.2.so from my pc to /lib/ld-linux.so.2 in my initrd image.
./makeImage -k /usr/src/linux-2.4.22/arch/i386/boot/bzImage -c /tftpboot/udpcast/images/udpcd.img -i /tftpboot/udpcast/initrd --bzip -m bcm5700 --merge /lib/ld-linux.so.2=/lib/ld-2.3.2.so
Then I cd to /lib and do an ls, and the only thing that is there is the modules dir again. I tried one more thing. I tried merging /lib/ls-2.3.2.so from my pc to the root dir /ld-linux.so.2 in my initrd image.
./makeImage -k /usr/src/linux-2.4.22/arch/i386/boot/bzImage -c /tftpboot/udpcast/images/udpcd.img -i /tftpboot/udpcast/initrd --bzip -m bcm5700 --merge /ld-linux.so.2=/lib/ld-2.3.2.so
This time I boot and do an ls, and I see ld-linux.so.2. I wonder why it copied this time and not the other times??