Busybox是一个遵循GPL v2协议的开源项目,它将众多的UNIX的命令集合进一个很小的可执行程序中,可以用来替换GNU fileutils、shellutils等工具集。但是Busybox与相应的GNU工具相比,能提供的选型会比较少,但是通常足够使用,Busybox为各种小型的或者嵌入式系统提供了一个比较完全的工具集。当使用的产品中对软件包大小敏感,可以使用Busybox,在创建一个最小的跟文件系统是,使用Busybox的话,只需要在/dev目录下创建必要的设备节点、在/etc目录下创建一些配置文件就可以了,如果使用动态链接,还要在/lib目录下包含库文件。
Busybox支持uCLibc库和glibcku,对Linux2.2.x以上的内核支持良好。
Busybox的官网:http://www.busybox.net/,源码可以从http://www.busybox.net/downloads/下载,下面以busybox-1.7.0.tar.bz2。
一、编译安装:
从官网地址下载busybox-1.7.0.tar.bz2
tar xjf busybox-1.7.0.tar.bz2
Busybox中支持了几百个命令,在一般的系统中并不需要全部使用。可以通过配置Busybox来选择这些命令、定制某些命令功能(选项)、指定Busybox的链接方式(动态链接还是静态链接)、指定Busybox的安装路径
1、配置Busybox
在上面解压产生的目录:busybox-1.7下执行make menuconfig命令进入配置界面。Busybox将所有的配置项分类存放。
在配置Busybox时,可以通过make menuconfig命令进入配置界面,选择需要的功能和工具。以下是一些常见的配置选项及其含义:
-
General Configuration:
- Prompt for development and/or incomplete code/drivers: 允许选择开发中或不完整的代码和驱动程序。
- Cross-compiler tool prefix: 交叉编译工具链的前缀。
- Cross-compiler path: 交叉编译工具链的路径。
-
Installation Options:
- Busybox installation prefix: 安装Busybox的路径前缀。
- Don’t use /usr: 不使用/usr目录。
- Enable standalone shell: 启用独立的shell。
-
Busybox Settings:
- 在这个选项中可以选择需要包含的具体工具,如ls、cat、cp等。
- Networking Options:
- Enable IPv6 support: 启用IPv6支持。
- Enable DNS resolver functions: 启用DNS解析功能。
- Filesystem Utilities:
- Enable extended attributes support: 启用扩展属性支持。
- Enable tar applet: 启用tar命令。
你可以根据具体需求选择相应的配置选项。关于每个配置选项的详细含义和用法,可以参考Busybox官方文档或在Busybox源代码目录下查看README文件和Documentation目录中的文档。
2、编译和安装Busybox
编译之前要先修改Busybox根目录的Makefile,使用交叉编译器。
修改前:
ARCH ?= $(SUBARCH)
CROSS_COMPLLE ?=
修改后:
ARCH ?= arm
CROSS_COMPLLE ?= arm-linux-
然后执行: make
最后是安装,执行make CONFIG_PREFIX=dir_path install;
这个dir_path是你的安装路径。