根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。
本节将介绍如何编译和制作Linux最小系统的根文件系统,并通过sd卡或者nfs挂载根文件系统。
编译、安装根文件系统
根文件系统的制作方法有很多,有buildroot、busybox等,本节采用安装过程最为简单的轻量级根文件系统制作工具busybox。
下载并解压busybox源码
cd /home/workspace
wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2
tar -xvf busybox-1.36.1.tar.bz2
自动编译脚本
制作automake_arm32.sh自动编译脚本
cd busybox-1.36.1
vi automake_arm32.sh
# 在automake_arm32.sh中添加下列代码
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- clean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- CONFIG_PREFIX=../objects/rootfs-arm32 install
运行automake_arm32.sh编译安装busybox
./automake_arm32.sh
编译过程中会出现menuconfig界面,需要将“Settings->Build Options->Build static binary”选上

补充根文件系统
busybox编译完成后,只是初步具有了维持linux操作系统基本运行所需的可执行文件,还有设备节点、动态链接库、引导启动相关代码、用户相关信息等,需要根据开发板自身的特性做定制和适配,接下来将适配vexpress-a9开发板补充根文件系统相关内容。
进入根文件系统目录
cd /home/workspace/objects/rootfs-arm32
创建设备节点
mkdir dev
sudo mknod -m 666 dev/tty1 c 4 1
sudo mknod -m 666 dev/tty2 c 4 2
sudo mknod -m 666

最低0.47元/天 解锁文章
1858





