因为需要,要搞个busybox,中间收获如下:mount -n 就是不往/etc/mtab里面写,大家都知道mtab就是已经挂载的东西,如果etc是只读目录,那么就需要有这么项。
从 http://www.busybox.net/downloads/busybox1.1.3.tar.gz/下载 busybox1.1.3 到/tmp 目录当中,并解压.
2.2 进入解压后的目录,配置 Busybox
[arm@localhost busybox1.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 >
Editors >
[*] cp
[*] cat
[*] ls
[*] mkdir
[*] echo (basic SuSv3 version taking no options)
[*] env
[*] mv
[*] pwd
[*] rm
[*] touch
[*] 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 复制回去就好。
从 http://www.busybox.net/downloads/busybox1.1.3.tar.gz/下载 busybox1.1.3 到/tmp 目录当中,并解压.
2.2 进入解压后的目录,配置 Busybox
[arm@localhost busybox1.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 >
Editors >
[*] cp
[*] cat
[*] ls
[*] mkdir
[*] echo (basic SuSv3 version taking no options)
[*] env
[*] mv
[*] pwd
[*] rm
[*] touch
[*] 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 复制回去就好。
![](http://img.zemanta.com/pixy.gif?x-id=3d708b85-b3d4-84ca-90b9-7c122f2543d0)