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??