嵌入式linux根文件系统制作(基于arm)
基于国嵌视频:课程4(嵌入式LINUX内核驱动进阶班-上) > > 第3天(嵌入式Linux系统构建) > > 国嵌内核驱动进阶班-3-2(根文件系统制作)
根文件系统是linux启动时使用的第一个文件系统,没有根文件系统,linux无法正常启动。根文件系统由一系列的目录组成,目录中包含了应用程序、C库、以及相关的配置文件。
根文件系统的制作
1. 创建根文件系统的目录
# pwd
/home/chen/guoqian/4-3-2
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/lib usr/sbin lib/modules
2. 创建设备文件
# pwd
/home/chen/guoqian/4-3-2/rootfs
#cd ./dev/
#mknod -m 666 console c 5 1
#mknod -m 666 null c 1 3
数字分别代表主装置代码 major 次装置代码 minor,-m用来设置权限。c用于装置为一个周边输入设备备档案,例如鼠标/键盘等
#cd ../
3. 安装/etc到rootfs目录
# pwd
/home/chen/guoqian/4-3-2
# ls
busybox-1.13.3.tar.gz etc.tar.gz rootfs
#tar -zxvf etc.tar.gz -C ./rootfs
# pwd
/home/chen/guoqian/4-3-2/rootfs/etc
# ls
fstab init.d inittab profile
4. 编译内核模块
先进入linux内核目录(linux-2.6.29)
# pwd
/home/chen/guoqian/4-3-1/linux-2.6.29
# make modules ARCH=arm CROSS_COMPILE=arm-linux-
5. 安装内核模块
# pwd
/home/chen/guoqian/4-3-1/linux-2.6.29
#make modules_install ARCH=arm INSTALL_MOD_PATH=../../4-3-2/rootfs
# pwd
/home/chen/guoqian/4-3-2/rootfs
# ls ./lib/modules/
2.6.29.4-FriendlyARM
6. 配置busybox
将busybox-1.13.3.tar.gz解压后进入busybox目录执行
# pwd
/home/chen/guoqian/4-3-2
# tar -zxvf busybox-1.13.3
# pwd
/home/chen/guoqian/4-3-2/busybox-1.13.3
#make menuconfig







在busybox目录下执行:
# pwd
/home/chen/guoqian/4-3-2/busybox-1.13.3
#make ARCH=arm CROSS_COMPILE=arm-linux-
# make install
安装完后会在rootfs的bin和sbin目录下出现许多命令,注意查看一下sbin目录下是否有init文件,这个是系统启动首先加载的文件。至此根文件系统就制作好了,由于本文用的是congig-mini2440文件制作的是nfs文件系统,为了能够挂载需要修改/erc/export配置文件,具体配置见另一博文。
nfs与ramdisk文件系统
在针对mini2440配置好的内核linux-2.6.29目录下打开.config文件,里面有一行是这样描述的(nfs文件系统)
CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.2.119:/home/chen/guoqian/4-3-2/rootfs ip=192.168.2.118 console=tySAC0 mem=64M”
如果是ramdisk文件系统,则可改为
CONFIG_CMDLINE=”root=/dev/ram rw console=tySAC0 mem=64M”