首先还是想吐槽下,我一个做应用软件的为啥要会做根文件系统。于是抱着学习的态度研究一下,记录下。
1.根文件中包含的东西
必要目录(八大目录):
bin目录:存放普通用户的命令
sbin目录:存放超级用户的命令
usr目录:存放各种其他命令
lib目录:存放各种动态库(无需静态库)
静态库只需在上位机编译程序时使用
etc目录:存放各种配置文件
dev目录:存放设备文件(跟驱动相关)
proc目录:作为procfs虚拟文件系统的入口(跟驱动相关)
sys目录:作为sysfs虚拟文件系统的入口(跟驱动相关)
可选目录:
home目录:作为普通用户的主目录
root目录:作为root用户的主目录
var目录:作为保存临时文件
mnt目录:作为U盘/TF卡/SD卡的挂接点
...
2.填充目录里的内容
方法一:你可以亲自写各种命令和库(手动滑稽)
方法二:利用开源软件busybox来制作根文件系统
程序员偷懒原则使我选择二。
2.1busybox源码操作
1. www.busybox.net下载压缩包,笔者使用的是1.31.0版本
2.获取正确的交叉编译器,确保交叉编译器的版本和busybox源码的版本要配合使用
3.接下来直接对busybox源码进行交叉编译
tar -xvf busybox-1.31.0.tar.bz2 //得到busybox-1.31.0源码目录
mv busybox-1.31.0 busybox //重命名
cd ./busybox //进入busybox源码根目录
vim Makefile +190
将: AR