用busybox制作嵌入式Linux的文件系统
一、编译
1.busybox简介
熟悉嵌入式Linux的人对busybox一定不会陌生。它被非常形象地称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的UNIX命令和工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具比较起来,busybox所提供的功能和参数略少,但在比较小的系统(例如启动盘)或者嵌入式系统中,已经足够了。
下面就来一步步地用busybox从无到有地建立一个全新的Linux文件系统。
2. 编译busybox
完整的源代码可以从http://www.busybox.net下载,压缩包大小为1.3 MB左右。将源码解压之后,进入到busybox1.00目录中,运行make menuconfig可以打开它的编译界面。这个界面和Linux内核编译有些接近。在这个菜单界面中除了可以对最终编译到可执行文件中的命令进行选择外,还有很多其他设置也是非常重要的。下面三个目录是很多人都会感兴趣的:
我改变了以下选项:
General Configuration --->
[*] Support for devfs
Build Options --->
[ ] Build BusyBox as a static binary (no shared libs)
[*] Do you want to build BusyBox with a Cross Compiler?
/usr/local/arm/3.4.1/bin/arm-linux-
(/usr/local/arm/3.4.1/bin/arm-linux-) Cross Compiler prefix
Installation Options --->
(./_install) BusyBox installation prefix
然后到当前目录建立一个_install的文件夹。
Linux Ext2 FS Progs --->
[*] e2fsck
Linux Module Utilities --->
[*] insmod
[*] rmmod
[ ] lsmod
[ ] modprobe
--- Options common to multiple modutils
[*] Support tainted module checking with new kernels (NEW)
[ ] Support version 2.2.x to 2.4.x Linux kernels
[*] Support version 2.6.x Linux kernels (NEW)
注意此处的选择,可能会影响到编译不过。
Networking Utilities --->
[*] ftpget
[*] ftpput
[*] wget
[*] telnet
[*] Pass TERM type to remote host (NEW)
[*] Pass USER type to remote host (NEW)
[*] telnetd
注释:tlenetd命令是一个远程登录服务程序,把它编译进busybox中会为将来的调试提供很多的方便。 Shells --->
[*] Enable builtin version of 'echo'
Linux System Utilities --->
[*] mount
[*] Support mounting NFS file systems
注释:这个比较重要,否则会在后来的mount时候出现mount program didn't pass remote address的错误。
相关文章
- 2021-11-27冷轧汽车用TRIP钢的高温热塑性
- 2021-10-20开关电源功率因数校正的DSP实现
- 2022-12-16移相式点衍射干涉仪的几个关键技术
- 2023-04-29超声波液体流量计的二合一前置预处理
- 2023-10-22近场声全息测量研究
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。