Busybox源码编译安装

目录

 

Busybox简介

Busybox安装步骤

下载busybox

解压busybox

设置编译环境 

 make menuconfig

编译安装 


  • Busybox简介

Busybox是一个开源项目,遵循GPL v2协议。Busybox将众多的UNIX命令集合进一个很小的可执行程序中,可以用来替代GNU fileutils、shellutils等工具集。Busybox中各种命令与相应的GNU工具相比,所能提供的选项比较少,但是也足够一般的应用了。Busybox主要用于嵌入式系统。

Busybox在编写过程中对文件大小进行了优化,并考虑了系统资源有限(比如内存等)的情况。与一般的GNU工具集动辄几M的体积相比,动态链接的Busybox只有几百K,即使是采用静态链接也只有1M左右。Busybox按模块设计,可以很容易地加入、去除某些命令,或增减命令的某些选项。

在创建根文件系统的时候,如果使用Busybox的话,只需要在/dev目录下创建必要的设备节点,在/etc目录下增加一些配置文件即可,当然,如果Busybox使用动态链接,那么还需要再/lib目录下包含库文件。

  • Busybox安装步骤

  • 下载busybox

wget https://busybox.net/downloads/busybox-1.27.1.tar.bz2 

Busybox源码编译安装_第1张图片

  • 解压busybox

tar -xjf busybox-1.27.1.tar.bz2 

Busybox源码编译安装_第2张图片

  • 设置编译环境 

cd busybox-1.27.1/
export TERM=vt100 

Busybox源码编译安装_第3张图片

  •  make menuconfig

Busybox源码编译安装_第4张图片

Busybox源码编译安装_第5张图片 Busybox源码编译安装_第6张图片

  • 编译安装 

sudo make

Busybox源码编译安装_第7张图片 

编译错误:

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

导致出错原因:undefined reference to `posix_fallocate'

提示我们在编译fallocate.c文件时没有找到posix_fallocate的声明或定义。可能是我们的交叉编译器版本太老导致的。

解决方法:

方法1、升级自己交叉编译器;

方法2、在配置文件中不要使能这个模块。(前提是这个模块自己后期不会用到)

方法2的实现过程:

1、先找到编译出错的c文件(fallocate.c)

find -iname fallocate.c

Busybox源码编译安装_第8张图片 

2、查看出错文件,找出出错的函数

vim fallocate.c

Busybox源码编译安装_第9张图片

3、查看配置文档

vim .config

 Busybox源码编译安装_第10张图片

4、 再次make menuconfig修改busybox配置

Busybox源码编译安装_第11张图片

5、保存退出

Busybox源码编译安装_第12张图片

6、再次编译 

Busybox源码编译安装_第13张图片

7、 sudo make install

Busybox源码编译安装_第14张图片

OK! 

  • 安装成功

你可能感兴趣的:(Linux驱动,linux,嵌入式,ubuntu,busybox,fallocate)