BusyBox 是一个集成了一百多个常用Linux命令和工具的应用程序。它不仅包含了一些简单的命令,如 cat 、echo和ls等,而且还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet等。简单地说,BusyBox就好像是个大工具箱,集成了许多Linux常用的工具和命令。
BusyBox最初是由Bruce Perens在1996年为DebianGNU/Linux安装盘而编写的。
1 下载busybox
下载最新版本busybox源码,下载地址:http://www.busybox.net/downloads/。
本文以当前编写最新版本1.22.1为例,所以下载压缩包名为:busybox-1.22.1.tar.bz2,大概2.1M大小。
2 复制并解压源码包
$ mkdir ~/busybox # 创建工作目录 $ cp busybox-1.22.1.tar.bz2 ~/busybox # 复制源码包 $ cd ~/busybox/ # 进入工作目录 $ tar -jxvf busybox-1.22.1.tar.bz2 # 解压 $ cd busybox-1.22.1/ # 进入解压包
3 配置编译选项
(1)创建安装目录并设置环境
$ mkdir ../install #创建安装目录 $ export PATH=$PATH:/usr/local/arm-2010q1/bin #交叉编译工具路径加入系统环境变量!
然后,需要调用图形界面来设置来配置编译选项,这些选项包括:
- 交叉编译器前缀,如:arm-none-linux-gnueabi-;
- 静态编译,建议使用静态编译;
- /usr目录,为减少复杂性,一般建议再将应用添加到到/usr目录;
- 安装目录,上一步的install目录,要使用绝对路径。
$ make menuconfig
(2)交叉编译器前缀
Busybox Settings ----> Build Options ----> () Cross Compiler prefix
回车,在弹出的界面中输入交叉编译工具链的前缀:
提示:按Ctrl + ←Backspace(退格键) 可删除已存在的内容。
(3)静态编译
Busybox Settings ----> Build Options ----> [*] Build BusyBox as a static binary (no shared libs)
(4)不安装到/usr目录
Busybox Settings ---> General Configuration ---> [*] Don't use /usr
(5)安装目录
Busybox Settings ---> Installation Options ("make install" behavior) ---> BusyBox installation prefix
回车,在弹出的界面中输入安装目录:
最后按【ESC】,提示保存时保存。
提示,以上(1)~(5)步骤后其实是配置了.config文件,上面的步骤也可以通过下面几个命令快速实现:
$ make defconfig #默认配置,执行后生成.config文件,或者allyesconfig使用所有功能 $ sed -e "s:.*CONFIG_CROSS_COMPILER_PREFIX.*:CONFIG_CROSS_COMPILER_PREFIX=\"arm-none-linux-gnueabi-\":" -i .config $ sed -e 's/.*CONFIG_STATIC.*/CONFIG_STATIC=y/' -i .config $ sed -e 's/.*CONFIG_INSTALL_NO_USR.*/CONFIG_INSTALL_NO_USR=y/' -i .config $ sed -e "s:.*CONFIG_PREFIX.*:CONFIG_PREFIX=\"\/home\/veryarm\/busybox\/install\":" -i .config
4 编译安装
$ make # 编译,如果是多核CPU,如四核,使用make -j4可提高编译速度 $ make install # 安装
5 打包复制
$ cd ../install $ tar -cjvf busybox.tar.bz2 *
将打包后的 busybox.tar.bz2 压缩包通过U盘、FTP或者NFS等方式拷贝到目标板,并分别解压到/bin和/sbin目录。
$ cd busybox.tar.bz2 ~/ $ cd $ tar -jxvf busybox.tar.bz2 bin -C / # 将压缩包的bin目录解压到根目录/ $ tar -jxvf busybox.tar.bz2 sbin -C / # 将压缩包的sbin目录解压到根目录/
解压后会自动覆盖原来的/bin和/sbin下面的busybox。
附件
已经编译好的busybox镜像下载地址:http://pan.baidu.com/s/1gdxM8Ht。