1、下载busybox源码
busybox官方地址:https://busybox.net/
这里示例所下载的版本是 busybox-1.32.0.tar.bz2
2、解压源码并进行配置
busybox提供了几种配置:defconfig(缺省配置)、allyesconfig(最大配置)、allnoconfig(最小配置),一般选择缺省配置即可:
# tar xvf busybox-1.32.0.tar.bz2
# cd busybox-1.32.0/
# make defconfig
完成后,还可输入make menuconfig以图形化的方式对配置进行调整,这里不过多说明。
3、添加交叉编译工具链路径到环境变量
例如我的交叉编译工具链的路径是:
/home/share/toolchains/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/
那么执行:
# export PATH=$PATH:/home/share/toolchains/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
4、使用交叉编译工具进行编译
例如我的gcc编译工具名称是 aarch64-linux-gnu-gcc,则执行:
# make CROSS_COMPILE=aarch64-linux-gnu-
5、编译完成,检查文件类型
编译完成后,在当前文件夹下生成busybox文件,同时保留了未stripped的版本busybox_unstripped;
查看busybox文件信息,为64位小端arm版本:
# file busybox
busybox: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=02e7acdb21accf4ae54855defa47d93a512c7beb, stripped
6、将生成的busybox上传到板子上测试
可以使用scp、ftp、lrzsz、tftp等命令,能把文件传到嵌入式设备上就行;
例如使用tftp,PC(IP:10.5.1.86)开启tftpd程序后,在嵌入式设备获取busybox文件并添加执行权限:
# tftp -g -r busybox 10.5.1.86
# chmod +x busybox
busybox有三种使用方式:
一是执行busybox后面紧跟对应命令,例如:
# ./busybox pwd
/tmp
二是拷贝busybox成命令名称,直接执行,例如:
# cp busybox pwd
# ./pwd
/tmp
三是创建到busybox的软连接(推荐),例如:
# ln -s busybox pwd
# ./pwd
/tmp
7、查看busybox用法及支持命令列表
# ./busybox --help