Busybox是一个集成了三百多个最常用Linux命令和工具的软件。Busybox包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将Busybox称为Linux工具里的瑞士军刀。简单的说Busybox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令。
一、源码下载
进入busybox网址https://busybox.net/,下载最新版本busybox1.32.1。本人没有测试过该版本的稳定性,本教程主要讲解如何使用busybox构建文件系统,如果有同学发现该版本存在稳定性问题,请及时更换以前旧版本。然后将busybox1.32.1拷贝到Ubuntu /home/elf/work/中,解压缩。
二、编译配置
在编译busybox之前需要对busybox进行配置,配置方法如下:
(一)生成.config
进入busybox1.32.1目录后,使用命令:
| elf@ubuntu:~/work/busybox-1.32.1$ make menuconfig |
产生.config配置文件
注意:default为默认配置,除了defconfig默认配置,另外还有allyesconfig(全选最大系统配置)和allnoconfig(最小系统配置),我们这里使用默认配置进行。
(二)配置
使用make menuconfig命令,按需修改配置:
| elf@ubuntu:~/work/busybox-1.32.1$ make menuconfig |
进入图形界面之后,进入Setting目录下,添加交叉编译工具相关内容。在Cross compiler prefix中设置:
| arm-poky-linux-gnueabi- |
在Path to sysroot中设置:
| /opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi |
在Additional CFLAGS中设置:
| -O2 -pipe -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 |
仍然在Setting目录下,选中vi-style line editing commands项:
其他配置我们使用默认值,配置选项可根据需要自行增减,一路Exit,最后Yes保存退出。
三、编译
配置完成之后,开始进行编译,使用以下命令编译,设置交叉编译:
| . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi |
进行编译,并将生成的rootfs安装到nfs_rootfs/rootfs文件夹下:
| elf@ubuntu:~/busybox-1.32.1$ make install CONFIG_PREFIX=/home/elf/nfs_rootfs/rootfs |
编译完成:
然后进入到home/elf/nfs_rootfs/rootfs目录下,可以看到生成的目录文件:
| elf@ubuntu:~/nfs_rootfs/rootfs$ ls
bin ?linuxrc ?sbin ?usr |
751