0 前言
本文介绍如何构Linux根文件系统,适用于arm32开发板。
1 构建根文件系统
1.1 创建目录
(1)创建根目录rootfs,这个目录就是要移植到Mini2440开发板的目录:
mkdir rootfs
(2)进入rootfs并创建目录bin、dev、etc、usr、lib、sbin、proc、usr/bin、usr/sbin、usr/lib:
cd rootfs
mkdir bin dev etc usr lib sbin proc
mkdir usr/bin usr/sbin usr/lib
注:bin和sbin可不创建,在下面安装BusyBox时会自动创建。
1.2 交叉编译并安装BusyBox
下载BusyBox并解压,然后对其进行配置和交叉编译,详见《Ubuntu14.04交叉编译BusyBox》。
1.3 构建etc目录
根据参考资料[2]的提示,可以参考BusyBox 源码中的 examples/bootfloppy/etc目录创建嵌入式Linux系统的etc目录。或者直接下载这个预先制作好的etc.tar.gz。
1.4 构建lib目录
该目录中的内容不是必须的,制作ramdisk根文件系统时(详见《Mini2440 ramdisk根文件系统》),为了减小体积,该目录为空即可。
1.4.1 安装内核模块
编译好Linux内核之后,执行如下命令将内核模块安装到rootfs/lib中:
make modules_install ARCH=arm INSTALL_MOD_PATH=/home/liyihai/mini2440/rootfs
完成之后,将会在rootfs/lib目录中生成一个modules目录,里面包含了特定版本内核的模块内容。
1.4.2 安装编译库
将交叉编译工具链中的库文件复制到该rootfs/lib目录即可。
2 制作映像文件
根据需要,可知将上述内容打包成不同类型的映像文件,例如YAFFS2,JFFS2等。
2.1 YAFFS2映像
下载mkyaffs2image工具,然后:
./mkyaffs2imge mini2440/rootfs mini2440_rootfs.img
2.2 RamDisk映像
详见《Linux制作并挂载ramdisk》。
参考资料
[1]根文件系统制作-et5
[4]CRAMFS制作方法
[5]BusyBox制作嵌入式Linux Cramfs根文件系统详解
[7]一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录
[10]mkyaffs2image的用法
[11]详解制作根文件系统
[13]mini2440构建根文件系统