1. 前言
根文件系统是Linux内核启动之后挂载的第一个文件系统,上篇文章里已经介绍过,如何使用busybox来制作根文件系统。这篇文章介绍根文件系统制作成功后,如何让内核找到文件系统,并完成挂载,进入到系统命令行终端。
根文件系统支持从网络挂载和本地挂载两种方式:
(1)如果是采用网络挂载就将路径设置为/dev/nfs,NFS是Linux下常用的网络文件系统,这种方式挂载一般是在系统开发阶段,方便修改调试代码,也就是将根文件系统放在PC机上,嵌入式开发板通过网络到PC机进行访问。
(2)本地挂载就是让内核从SD卡、EMMC、光盘等设备里加载根文件系统,设备路径设置为/dev/sda、/dev/ram等等。具体设备节点名称是什么就填什么。本地挂载一般用在产品发布的时候,当整个系统开发完毕,就将PC机上的完整目录拷贝到本地存储设备里,让内核直接从本地加载,这样开启启动的速度会快很多,文件读写也快很多,不在经过网络传输。本地挂载不方便调试代码,一般开发阶段还是NFS方式比较方便。
上面说的路径设置这些配置是在uboot里设置,uboot有一个环境变量专门用于给内核传参,当内核启动之后,会根据uboot传递的参数完成执行。
当前采用的开发板是友善之臂的Tiny4412,内核、uboot、交叉编译器都采用官方光盘自带的文件。
如果设置内核为NFS网络挂载,uboot的环境变量设置格式如下:
TINY4412 # setenv bootargs r