首页 理论教育 Linux驱动程序开发实例-Busybox解析

Linux驱动程序开发实例-Busybox解析

时间:2023-10-19 理论教育 版权反馈
【摘要】:表11-5 Busybox提供的几个make选项Busybox具有可剪裁的特点。对于有特殊需求的嵌入式设备,可以手工使用make menuconfig来配置Busybox的内容。图11-2 使用menuconfig配置BusyboxLinux在加载根文件系统之后,紧接着执行init进程。Busybox的根目录下的example文件夹下有详尽的inittab文件范例。对Busybox而言,id用来指定启动进程的控制tty。Busybox将会完全忽略runlevel字段,所以该字段可以空着,这是为了和传统的Sytem V init的格式保持一致。表11-6 inittab文件中的动作说明下面介绍如何编译Busybox。

Linux驱动程序开发实例-Busybox解析

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选项

978-7-111-56706-6-Chapter11-33.jpg

Busybox具有可剪裁的特点。对于有特殊需求的嵌入式设备,可以手工使用make menuconfig来配置Busybox的内容。make menuconfig与配置Linux内核的内容所使用的目标相同。make menuconfig效果如图11-2所示。

978-7-111-56706-6-Chapter11-34.jpg

图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文件中的动作说明

978-7-111-56706-6-Chapter11-35.jpg

下面介绍如何编译Busybox。

(1)修改makefile:

cross_compile=arm-linux-

(2)执行make menuconfig,进入module utilities目录,去掉对2.4内核的模块支持,如图11-3所示。

978-7-111-56706-6-Chapter11-36.jpg

图11-3 去掉对2.4内核的模块支持

(3)执行make。

(4)执行make install,把目标文件安装到./_install目录。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈