下面用busybox构建FS2410开发板的cramfs文件系统。

(1)从busybox网站下载busybox源码(本实例采用busybox-1.00)并解压,接下来,根据实际需要进行busybox的配置。

$ tar jxvf busybox-1.00.tar.bz2

$ cd busybox-1.00

$ make defconfig /* 首先进行默认配置 */

$ make menuconfig

此时,需要设置与平台相关的交叉编译选项,操作步骤为:先选中“Build Options”项的“Do you want to build BusyBox with a Cross Complier?”选项,然后将“Cross Compiler prefix”设置为“/usr/local/arm/3.3.2/bin/arm-linux-”(这是在实验主机中的交叉编译器的安装路径),如图1.7所示。

Linux嵌入式文件系统如何构建

图1.7 busybox配置画面

(2)编译并安装busybox。

$ make

$ make install PREFIX=/home/david/fs2410/cramfs

其中,PREFIX用于指定安装目录,如果不设置该选项,则默认在当前目录下创建_install目录。创建的安装目录的内容如下:

$ ls

bin linuxrc sbin usr

(3)由此可知,使用busybox软件包所创建的文件系统还缺少很多东西。

(4)通过创建系统所需的目录和文件来完善文件系统的内容。

$ mkdir mnt root var tmp proc boot etc lib

$ mkdir /var/{lock,log,mail,run,spool}

(5)将所需的交叉编译链接库复制到lib目录中,这些库文件位于/usr/local/arm/3.3.2/lib下。在复制时应该注意采用打包后解包的方式,以保证符号链接的正确性和完整性。删除所有目录和静态库文件,并使用arm-linux-strip工具剥除库文件中的调试段信息,从而减少库的体积。