BusyBox的交叉编译
开发平台:Ubuntu11.10
目 标板:ARM体系结构
编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)
源代码:busybox-1.19.2.tar.bz2(可从http://www.busybox.net/上下载)
帮助文件:http://www.busybox.net/downloads/BusyBox.html
BusyBox - The Swiss Army Knife of EmbeddedLinux.
BusyBox 是一个集成了一百多个常用Linux命令和工具的应用程序。它不仅包含了一些简单的命令,如 cat 、echo和ls等,而且还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet等。简单地说,BusyBox就好像是个大工具箱,集成了许多Linux常用的工具和命令。
BusyBox最初是由Bruce Perens在1996年为DebianGNU/Linux安装盘而编写的。
1、交叉编译BusyBox的默认配置
- $ tar jvxf busybox-1.19.2.tar.bz2
- $ cd busybox-1.19.2/
- $ make defconfig
设置交叉编译工具链前缀:
- $ make menuconfig
- Busybox Settings --->
- Build Options --->
- () Cross Compiler prefix
回车,在弹出的界面中输入交叉编译工具链的前缀:

使用arm-gcc-4.1.1.tar.bz2编译时会发生缺少头文件ubi-user.h的错误:
- miscutils/ubi_tools.c:63:26: error: mtd/ubi-user.h: No such file or directory
- miscutils/ubi_tools.c: In function 'ubi_tools_main':
- miscutils/ubi_tools.c:133: error: 'UBI_DEV_NUM_AUTO' undeclared (first use in this function)
- miscutils/ubi_tools.c:133: error: (Each undeclared identifier is reported only once
- miscutils/ubi_tools.c:133: error: for each function it appears in.)
- miscutils/ubi_tools.c:134: error: 'UBI_VOL_NUM_AUTO' undeclared (first use in this function)
- miscutils/ubi_tools.c:153: error: storage size of 'req' isn't known
- miscutils/ubi_tools.c:161: error: 'UBI_IOCATT' undeclared (first use in this function)
- miscutils/ubi_tools.c:153: warning: unused variable 'req'
- miscutils/ubi_tools.c:167: error: 'UBI_IOCDET' undeclared (first use in this function)
- miscutils/ubi_tools.c:170: error: storage size of 'req' isn't known
- miscutils/ubi_tools.c:177: error: 'UBI_MAX_VOLUME_NAME' undeclared (first use in this function)
- miscutils/ubi_tools.c:184: error: 'UBI_STATIC_VOLUME' undeclared (first use in this function)
- miscutils/ubi_tools.c:186: error: 'UBI_DYNAMIC_VOLUME' undeclared (first use in this function)
- miscutils/ubi_tools.c:195: error: 'UBI_IOCMKVOL' undeclared (first use in this function)
- miscutils/ubi_tools.c:170: warning: unused variable 'req'
- miscutils/ubi_tools.c:201: error: 'UBI_IOCRMVOL' undeclared (first use in this function)
- miscutils/ubi_tools.c:204: error: storage size of 'req' isn't known
- miscutils/ubi_tools.c:214: error: 'UBI_IOCRSVOL' undeclared (first use in this function)
- miscutils/ubi_tools.c:204: warning: unused variable 'req'
- miscutils/ubi_tools.c:222: error: 'UBI_IOCVOLUP' undeclared (first use in this function)
- make[1]: *** [miscutils/ubi_tools.o] Error 1
- make: *** [miscutils] Error 2
解决这个问题的方法是从linux-2.6.38.8内核源码的include/mtd/目录下拷贝头文件ubi-user.h到4.1.1/arm-linux-gnu/include/mtd/目录:
- $ cd $HOME/4.1.1/arm-linux-gnu/include
- $ mkdir mtd
- $ cp linux-2.6.38.8/include/mtd/ubi-user.h mtd/
执行make和make install即可编译和安装:
2、根据项目需要适当裁减
(1)、跟Linux内核类似,BusyBox也可以通过执行make menuconfig命令启动基于ncurses的配置界面,配置界面的操作方法如下:

BusyBox中并没有尖括号(< >)的选项,也不会被编译成模块。
(2)、BusyBox将所有配置进行了分类,可以很方便地根据项目的需要进行裁减。
- Busybox Settings --->
- ---Applets
- Archival Utilities --->
- Coreutils --->
- Console Utilities --->
- Debian Utilities --->
- Editors --->
- Finding Utilities --->
- Init Utilities --->
- Login/Password Management Utilities --->
- Linux Ext2 FS Progs --->
- Linux Module Utilities --->
- Linux System Utilities --->
- Miscellaneous Utilities --->
- Networking Utilities --->
- Print Utilities --->
- Mail Utilities --->
- Process Utilities --->
- Runit Utilities --->
- Shells --->
- System Logging Utilities --->
说明:虽然BusyBox被称为嵌入式Linux中的瑞士军刀,但并不是一定非要使用它不可,如果你觉得它的某些功能不能满足你系统的要求,那么你可以毫不犹豫地把这些功能舍弃掉,换用其他相应的程序包。
注: 如果用其它的编译器出现问题很有可能是头文件的版本与编译器的版本不匹配导致的。
以arm-linux-gcc-4.1.1 和uboot-1.19.3为例:
export PATH=/opt/arm-linux-4.1.1/4.1.1/bin:$PATH
make menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- -I/opt/arm-linux-4.1.1/4.1.1/arm-linux-gnu/include
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- install
#########################################################
文件系统制作:
url: http://hi.baidu.com/zengzhaonong/item/b8fde78ea7e8a3d45e0ec194