busybox的编译记录

一、busybox简介

busybox是一个可执行文件,可以用作最简单的根文件系统,例如ls命令可以借助busybox这个可执行文件实现。

二、编译过程

# 解压
tar xjf busybox-1.31.1.tar.bz2
cd busybox-1.31.1/
# 编译
vi Makefile
  c  CROSS_COMPILE ?= arm-linux-gnueabihf-
make menuconfig
make 
make CONFIG_PREFIX=tmp install
cd tmp
# 制作dev
mkdir dev
cd dev
sudo mknod console c 5 1
sudo mknod null c 1 3
# 制作boot,这是对于需要将镜像文件和设备树放至此目录的系统需要
cd ../
mkdir boot
cp zImage boot/
cp xx.dtb boot/
# 制作lib
mkdir lib
# 复制lib,busybox是一个可执行文件,依赖动态库
echo "void main(){}" | arm-buildroot-linux-gnueabihf-gcc -E -v -    # 查看库目录
arm-buildroot-linux-gnueabihf-readelf -d bin/busybox | grep NEEDED  # 查看需要什么库文件
cp /usr/arm-linux-gnueabihf/lib/libm.so.6 ./lib/ -d                 # 拷贝so文件,-d保持符号链接
cp /usr/arm-linux-gnueabihf/lib/ld* ./lib/ -d

三、总结

busybox是一个可执行文件,类似ls,可以用作简单的制作根文件系统,编译完成后,创建dev、boot、lib等目录并拷贝相应文件。

posted @ 2025-07-29 21:55  gramming  阅读(372)  评论(0)    收藏  举报