以下是本人整理的关于busybox的使用的一些的资料,并亲身实践过,希望这对大家有点借鉴价值。
1.简介
busybox是一个集成了一百多个最常用linux命令和工具的软件,它甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分力式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影。
2.编译
下载busybox-1.1.3.tar.bz2
tar -jvxf busybox-1.1.3.tar.bz2
cd busybox-1.1.3
make menuconfig
以下是一些设定:
Busybox Settings >
General Configuration >
[*] Support for devfs
Build Options >
[*] Build BusyBox as a static binary (no shared libs)
/* 将busybox编译为静态连接,少了启动时找动态库的麻烦 */
[*] Do you want to build BusyBox with a Cross Compiler?
(/usr/local/arm/3.3.2/bin/armlinux)
Cross Compiler prefix
/* 指定交叉编译工具路径 */
Init Utilities >
[*] init
[*] Support reading an inittab file
/* 支持init读取/etc/inittab配置文件,一定要选上 */
Shells >
Choose your default shell (ash) >
/* (X) ash 选中ash,这样生成的时候才会生成bin/sh文件
* 看看我们前头的linuxrc脚本的头一句:
* #!/bin/sh 是由bin/sh来解释执行的
*/
[*] ash
Coreutils >
[*] cp
[*] cat
[*] ls
[*] mkdir
[*] echo (basic SuSv3 version taking no options)
[*] env
[*] mv
[*] pwd
[*] rm
[*] touch
Editors >
[*] vi
Linux System Utilities >
[*] mount
[*] umount
[*] Support loopback mounts
[*] Support for the old /etc/mtab file
Networking Utilities >
[*] inetd
/*
* 支持inetd超级服务器
* inetd的配置文件为/etc/inetd.conf文件,
* "在该部分的4: 相关配置文件的创建"一节会有说明
*/
2.3 编译并安装Busybox
[arm@localhost busybox1.1.3]$
make TARGET_ARCH=arm CROSS=armlinux\
PREFIX=/home/arm/dev_home/rootfs/my_rootfs/ all install
PREFIX指明安装路径:就是我们根文件系统所在路径。
*这里需要注意一点的是,只要install busybox,我们根文件系统下先前建好的linuxrc就会被覆盖为一同名二进
制文件。
所以要事先备份我们自己的linuxrc,在安装完busybox后,将linuxrc复制回去就好。