工作平台:FL2440
交叉编译环境:arm-linux-gcc 3.4.1
busybox版本:1.9.1
1) 制作文件系统总目录:
mkdir my_rootfs
2) 编译&安装busybox
解压从LinuxIDC.com的1号服务器下载的busybox
本文要用到的文件下载在Linux公社(LinuxIDC.com)的1号服务器。
FTP地址:ftp://www.linuxidc.com
在2011年LinuxIDC.com\2月\基于嵌入式Linux平台的最小文件系统的制作\
确定交叉编译环境包,配置busybox选项,然后
make
make install
在busybox根目录会生成_install的文件夹,里面存放有bin,sbin文件夹以及
linuxrc文件;
3) 将_install目录下的busybox修改为777属性;
chmod 777 busybox
4) 将bin,sbin目录全复制到my_rootfs目录,注意不要丢失了文件属性:
cp -a ***/buxybox-1.9.2/_install/bin ***/myrootfs
cp -a ***/buxybox-1.9.2/_install/sbin ***/myrootfs
5) 进入myrootfs目录,新建其他文件系统目录:
mkdir dev etc lib mnt proc sys tmp usr var
6) 添加busybox使用到的lib库文件:
进入busybox根目录,使用如下命令查询它使用到的lib库:
arm-linux-readelf -d busybox
打印如下:
[root@lqm busybox-1.9.2]# arm-linux-readelf -d busybox
Dynamic segment at offset 0xc32cc contains 22 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library:
[libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000c (INIT) 0xd2b8
0x0000000d (FINI) 0xad848
0x00000004 (HASH) 0x8128
0x00000005 (STRTAB) 0xab94
0x00000006 (SYMTAB) 0x8cf4
0x0000000a (STRSZ) 4807 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000015 (DEBUG) 0x0
0x00000003 (PLTGOT) 0xd33b8
0x00000002 (PLTRELSZ) 3000 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0xc700
0x00000011 (REL) 0xc300
0x00000012 (RELSZ) 1024 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x6ffffffe (VERNEED) 0xc230
0x6fffffff (VERNEEDNUM) 3
0x6ffffff0 (VERSYM) 0xbe5c
0x00000000 (NULL) 0x0
[root@lqm busybox-1.9.2]#