当前位置:嗨网首页>书籍在线阅读

09-U-Boot中使用NFS挂载根文件系统的例子

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

12.3.5 U-Boot中使用NFS挂载根文件系统的例子

U-Boot是一个很好的引导加载程序,它支持可配置的内核命令行。使用U-Boot的环境变量(这些变量放置在非易失性存储介质中),我们可以将内核命令行存放于一个专门的参数( bootargs )中。要在U-Boot中使用NFS挂载根文件系统,使用下面这个命令行(在串行端口终端中输入,所有参数都在一行上):

317.png 接着,使用TFTP服务器加载内核。代码清单12-8显示了在一个采用Power架构的目标板上加载内核时的情况。

代码清单12-8 使用TFTP服务器加载内核

318.jpg

319.jpg 当我们引导内核时,我们可以看到,目标板确实使用了NFS挂载其根文件系统。代码清单12-9显示了内核引导时的一部分输出信息,可以说明这一点。我们调整了输出信息的格式(省略了很多行,并加了一些空白行)以提高可读性。

代码清单12-9 引导时使用NFS挂载根文件系统

320.png

321.png 在代码清单12-9中,我们首先看到了内核的标题信息,接着是内核命令行。我们在这个命令行中指定了4个参数:

  • 控制台设备(/dev/console);
  • 根文件系统设备(/dev/nfs);
  • NFS根路径(/home/chris/sandbox/pdna-target);
  • IP内核层自动配置方法(dhcp)。

之后不久,内核尝试通过DHCP完成内核层自动配置。该过程开始于 Sending DHCP requests控制台消息。当服务器作出响应,并且完成DCHP交互之后,内核在后面几行中打印出它检测到的配置信息。从中你可以看到DHCP服务器分配给目标板的IP地址为192.168.1.68。不妨比较一下这里通过自动配置获取到的设置信息和代码清单12-6中的DHCP服务器配置。你可以使用类似的服务器配置,为目标板分配IP地址和NFS根路径。

当内核完成了IP自动配置之后,它就可以使用之前获取的参数来挂载根文件系统了。代码清单中的3行打印信息表明了这一点,最后一条消息是由VFS(虚拟文件子系统)打印的,表明它已经挂载了NFS根文件系统。此后,初始化流程按照第5章中所描述的继续进行,直至完成。

也可以将目标板的IP设置以静态方式传递给内核,而不是让内核从DHCP或BOOTP服务器中动态获取这些IP设置。我们可以使用内核命令行直接传递IP设置。在这种情况下,内核命令行看上去会类似于下面这样:

322.png