busybox 如何做动态文件系统
libcrypt.so.1 => /lib/libcrypt.so.1 (0x2ab04000)
libm.so.6 => /lib/libm.so.6 (0x2ab71000)
libc.so.6 => /lib/libc.so.6 (0x2ac33000)
/lib/ld.so.1 => /lib/ld.so.1 (0x2aaa8000)
1.基本步骤跟做静态文件系统差不多。
2.cd busybox-1.13
在make menuconfig
Build Options ---> []Build shared libbusybox
不能选择 []Build BusyBox as a static binary (no shared libs)
如果没有这项目,则不选
3.make
4.make install
5.在rootfs/lib 下,应当从你交叉编译工具的lib库中copy以下库。
如我的交叉编译库在/opt/gcc-3.3.6-glibc-2.3.6/bin/mipsel-linux-
则应该在/opt/gcc-3.3.6-glibc-2.3.6/mipsel-linux/lib下copy如下库
至于为什么要copy 以下库,或者说你如何知道应该copy那些库。
可以在已做好的动态库文件系统下,运行如下命令
ldd bin/busybox
# ldd bin/busybox
libcrypt.so.1 => /lib/libcrypt.so.1 (0x2ab04000)
libm.so.6 => /lib/libm.so.6 (0x2ab71000)
libc.so.6 => /lib/libc.so.6 (0x2ac33000)
/lib/ld.so.1 => /lib/ld.so.1 (0x2aaa8000)
#
cp -a libcrypt-2.3.6.so /nfsroot/rootfs-1.1.3/lib/
cp -a libcrypt.so.1 /nfsroot/rootfs-1.1.3/lib/
cp -a libm.so.6 libm-2.3.6.so /nfsroot/rootfs-1.1.3/lib/
cp -a libc.so.6 libc-2.3.6.so /nfsroot/rootfs-1.1.3/lib/
cp -a ld*(ld.so.1 ld-2.3.6.so) /nfsroot/rootfs-1.1.3/lib/
或者还可以在你做的根文件系统下:
mipse-linux-readelf -d -s busybox,找到busybox所依赖的动态库