20160316
如何制作最小根文件系统
1概述
如何制作一个最小的根文件系统,能让内核在该文件系统中运行?该文章是读《嵌入式Linux应用开发完全手册》韦东山 书籍简要总结。
制作最小的根文件系统的主要分为五个部分:
① 编译Busybox得到常用命令与工具集(生成bin,sbin,usr,linuxrc);
② 构建etc目录(/etc/inittab,/etc/fstab,/etc/init.d/rcS等);
③ 构建dev目录(/dev/console,/dev/null等设备节点);
④ 构建lib目录(C库函数uclibc,glibc);
⑤ 创建其他空目录(/proc、/sys等目录),配置需求相关文件程序;
⑥ 制作根文件系统的镜像文件;
2构造bin/sbin/usr目录
2.1配置编译Busybox
#make menuconfig
Busybox Setting -->
Build Options -->
[*]Build BusyBox as a static binary (no shared libs)
/*选择busybox静态链接共享库,则lib目录不用建立即可执行/sbin/init */
(/usr/local/arm/4.3.2/bin/arm-linux-)Cross Compiler prefix
/*指定交叉编译器为*/
Installation Options /*选择生成的文件存放目录*/
Busybox Library Tuning--->
[*]Username completion
[*]Fancy shell prompts
[*]Query cursor position from terminal
/*编译出的busybox的shell命令解释器支持显示当前路径及主机信息*/
#make
2.2安装Busybox
#make install
#cp bin/ sbin/ usr/ linuxrc / home/rootfs -ra
切记一定要带上-a的参数,因为bin目录里大部分都是链接,如果不带-a的参数,拷过去之后会做相应的复制,不再是链接的形式
查看busybox安装版本
root@am57xx-evm:/bin# busybox --help
BusyBox v1.23.1 (2016-01-28 14:01:20 EST) multi-call binary.
注】编译的时候如果遇到有错误的地方,可以根据提示进行修改,一般的情况下,是某个命令的配置上有错误,这个时候可以选择重新执行make menuconfig进行重新配置,去掉出错的命令,重新编译即可。也可以向BusyBox 中添加自己编写的新命令。