busybox 移植使用

简介

  • busybox是Linux上的一个开源库,它整合了许多最常用的工具和命令,如rm, ls, gzip, tftp等,是嵌入式平台根文件系统中常用的构建模块。
  • 由于busybox程序小,占用内存少并且功能强大,编译后只有单个程序,特别适合资源敏感的嵌入式系统,因此常用来构建嵌入式平台的根文件系统。

使用

说明

  • 官网:http://www.busybox.net/
  • 下载地址:https://busybox.net/downloads/
  • 下载地址中包含了所有的busybox版本,有些是stable版本,有些是unstable版本,没有明确标明,unstable编译或使用过程中可能会遇到问题,最好使用stable版本。
  • 详细说明可通过官网查看。

编译和移植

  • busybox 的编译与Linux内核的编译过程类似
  1. 选择配置
make defconfig      //默认配置
make allyesconfig   //所有工具、命令选择配置
make allnoconfig    //所有工具、命令未选择配置
  • 选择后,会将预存的配置文件拷贝生成当前配置文件.config。
  1. 手动配置
make menuconfig
  • 可选操作,手动调整,会自动修改配置文件.config。
  • 配置时可以根据命令名进行搜索.
按 ?/ 键进入搜索输入界面
  • 异常:
Linux Error: curses.h: No such file or directory Problem Solution
* 原因:make menuconfig需要ncurses库的支持。
* 解决办法:sudo apt install libncurses5-dev libncursesw5-dev
  1. 编译
make CROSS_COMPILE=arm-linux-
  • 使用交叉编译工具(arm-linux-gcc),编译busybox。

使用

  • 编译完后会在库根目录生成busybox程序,busybox支持多种使用方式,如下:
  1. busybox后直接跟命令,如
./busybox ls
./busybox tftp
  1. 直接将busybox重命名,如
cp busybox ls
./ls
cp busybox ps
./ps
  1. 创建符号链接, 如
ln -s busybox ls 
ls
ln -s busybox ps
ps

安装

  • 以上三种使用方式,创建链接的方式最好,因此构建嵌入式根文件系统中也是采用的第三张方式,busybox安装程序可以帮忙一次性生成所有的软链接。
  • make menuconfig 中可以设置安装目录,默认是busybox根目录下的_install。
  • 安装命令如下:
make CROSS_COMPILE=arm-linux- install
  • 使用make install命令,在busybox-1.31.1版本上会出现异常:安装的程序不是交叉编译版本,而是重新编译了一份本地版本,不确定是否哪里配置错误。
  • 构建嵌入式根文件系统时,只需要将_install目录下的所有文件拷贝至根文件系统目录下。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值