Busybox是一个集成了一百多个最常用Linux命令和工具的软件,甚至包括一个http服务器和一个telnet服务器。Busybox就像一个集成电路,把常用的工具和命令压缩在一个可执行文件里,功能基本不变,而大小却小很多,只有1MB左右,所以在嵌入式Linux中,Busybox有非常广泛的应用。Busybox命令的用法如下:
//运行busybox中的ls命令
#busybox ls
//建立指向busybox的链接,不同的链接名完成不同的功能
#ln-s busybox ls
//然后可以执行这个链接:
#./ls
表11-5为Busybox包括的几个编译选项,可以帮助用户编译和调试Busybox。
表11-5 Busybox提供的几个make选项
Busybox具有可剪裁的特点。对于有特殊需求的嵌入式设备,可以手工使用make menuconfig来配置Busybox的内容。make menuconfig与配置Linux内核的内容所使用的目标相同。make menuconfig效果如图11-2所示。
图11-2 使用menuconfig配置Busybox
Linux在加载根文件系统之后,紧接着执行init进程。Busybox中的init进程会调用/etc/inittab等脚本文件。Busybox的根目录下的example文件夹下有详尽的inittab文件范例。inittab文件中每一行的格式如下所示:(www.xing528.com)
id:runlevel:action:process
尽管此格式与传统的Sytem V init类似,但是,id在Busybox的init中具有不同的意义。对Busybox而言,id用来指定启动进程的控制tty。如果所启动的进程并不是可以交互的shell,例如Busybox的sh(ash),则应该有个控制tty,如果控制tty不存在,Busybox的sh会报错。Busybox将会完全忽略runlevel字段,所以该字段可以空着,这是为了和传统的Sytem V init的格式保持一致。process字段用来指定所执行程式的路径,包括命令行选项。action字段用来指定表11-6中8个可应用到process的动作之一。
表11-6 inittab文件中的动作说明
下面介绍如何编译Busybox。
(1)修改makefile:
cross_compile=arm-linux-
(2)执行make menuconfig,进入module utilities目录,去掉对2.4内核的模块支持,如图11-3所示。
图11-3 去掉对2.4内核的模块支持
(3)执行make。
(4)执行make install,把目标文件安装到./_install目录。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。