根文件系统移植
编译和安装busybox
以busybox-1.23.2为例
- 配置Busybox
make menuconfig
a.busybox Settings ---> ;
build Options --->
build with Large File
Support:如果想要支持2Gb的大文件选中,否则不选
Cross Compiler prefix:指定交叉编译工具链
installation Options --->
BusyBox installation prefix:安装目录,该目录就是busybox生成的最基本的根目录
busybox Libraay Tuning -->:参考busybox_rootfs.pdf文档
b.Applets --->:需要编译的小程序,按需勾选,参考busybox_rootfs.pdf文档`
2、编译
make
3、安装
make install
将根据BusyBox installation prefix所指定的路径,生成基础根目录
基础根目录下:bin linuxrc sbin usr
详细参见:busybos_rootfs.pdf
制作根文件系统
a.在虚拟机的NFS所在目录建立一个rootfs文件夹:
在NFS目录下建立,是为了便于之后通过NFS挂载根目录到单板上
在rootfs下建立:mkdir bin dev etc home lib mnt proc sbin sys tmp var usr
b.复制busybox编译后生成的文件至rootfs,删除linuxrc
c.复制交叉编译工具链目录下的lib目录中的库文件至rootfs/lib
d.创建etc/profile:存放所有用户成员的默认环境变量,也就是系统环境变量
e.创建etc/inittab:完成内核引导后启动的一个进程init,会调用该etc/inittab文件,该文件指定之后的动作
f.创建etc/fstab:系统开机时,会主动读取etc/fstab这个文件的内容,根据文件里面的配置挂载磁盘。
这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载。
g.创建初始化脚本etc/init.d/rcS
h.创建etc/init.d/rc.local:记录在用户登录之前,需要启动的本地服务
i.创建/etc/resolv.conf:配置DNS服务器地址
创建etc/host.conf:解析器查询顺序配置文件
etc/hosts:存放IP和域名的对应关系
j.etc/passwd etc/group
k.etc.ld.so.conf:指定系统库路径
m.建立设备节点 dev/console dev/null
挂载根文件系统
命令:mount -o nolock -t nfs 192.168.18.200:/mcuzone/nfsroot/ /mnt/
nfs:采用nfs协议进行挂载
192.168.18.200:/mcuzone/nfsroot/:挂载主机的ip和目录
/mnt/:挂载到单板上的路径
制作不同格式类型的文件系统
a.编译mtd-utils工具
b.具体类型采用具体命令