1 根文件系统
嵌入式可以包含多个文件系统,根文件系统是第一个,当linux启动的时候,第一个必须挂载的是根文件系统,若系统不能从指定设备上挂载根文件系统,则系统出错就退出。本文主要分以下两个部分说明根文件系统,第一个是如何制作根文件系统,第二个则是挂载根文件系统到内核。
2 如何建立根文件系统
根文件系统的制作是学习驱动的重要一步,这里我直接把制作根文件系统的框架思维导图贴出来了。我们制作的根文件系统就是按照这个框架来设计。
2.1 创建目录
本文所创建的根文件名称是rootfs,路径是/home/S5-driver/lesson8/rootfs,这个路径在随后的内核配置中用到多次。接下来在rootfs中创建一系列目录,mkdir bin etc lib proc sbin sys usr mnt tmp var,这些目录都是根文件基本上所必须具有的目录。以及创建子目录:mkdir usr/bin usr/lib usr/sbin lib/modules
2.2 创建设备文件
linux启动的时候,有两个设备是必须要的,在rootfs/dev目录下操作:
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
第一个指令console表示是串口控制台设备 c表示是字符设备 5表示主设备号,1表示次设备号。第二个指令暂且先这样设置。这样就创建了两个设备文件console 和 null。
2.3 加入配置文件
把etc.tar.gz放到/home/S5-driver/lesson7/linux-ok6410(这个路径是存放内核的路径)中解压后得到etc文件,将这个文件里所有的东西复制到rootfs/etc/中去。(etc.tar.gz压缩包是需要自己找一下)
cp etc/* rootfs/etc/ -rf
2.4 添加内核模块(这步是在内核顶层目录下进行的)
分别执行以下三条指令,第一条是表示进入内核目录中,第二条是指编译内核模块,第三天指的是将模块