目录
Busybox 是一个遵循 GPL v2 合约的开源项目。 Busybox将许多UNIX命令集成到一个小的可执行程序中,可以用来替代GNU fileutils、shellutils和其他工具集。 与相应的GNU工具相比,Busybox中的各种命令可以提供的选项较少,但对于常见的应用来说已经足够了。 Busybox主要应用于嵌入式系统。
Busybox在编译过程中对文件大小进行了优化,并考虑了有限的系统资源(如显存等)。 与通常的GNU工具集通常有几M的体积相比,动态链接的Busybox只有几百K,即使是静态链接也只有1M左右。 Busybox按照模块进行设计,可以方便地添加或删除单个命令,或者增加或减少命令的单个选项。
创建根文件系统时下源码编译,如果使用Busybox,只需要在/dev目录下创建必要的设备节点,并在/etc目录下减少一些配置文件即可。 当然,如果Busybox使用动态链接下源码编译,还需要将库文件包含在/lib目录下。
wget https://busybox.net/downloads/busybox-1.27.1.tar.bz2
tar -xjf busybox-1.27.1.tar.bz2
cd busybox-1.27.1/
export TERM=vt100
sudo make
编译错误:
util-linux/lib.a(fallocate.o): In function `fallocate_main':
fallocate.c:(.text.fallocate_main+0x88): undefined reference to `posix_fallocate'
collect2: ld returned 1 exit status
Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS.
Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam"
make: *** [busybox_unstripped] Error 1
错误原因:未定义对“posix_fallocate”的引用
编译fallocate.c文件时提示我们没有找到posix_fallocate的声明或定义。 可能是我们的交叉编译器版本太旧了。
解决方案:
方法一、升级自己的交叉编译器;
方法2.不要在配置文件中启用该模块。 (前提是以后不会用到这个模块)
方法2的实现过程:
1.首先找到编译错误的c文件(fallocate.c)
find -iname fallocate.c
2.查看错误文件,找出错误函数
vim fallocate.c
3.查看配置文件
vim .config
4.再次make menuconfig更改busybox配置
5.保存退出
6.再次编译
7. 须藤进行安装
好的!