联网构建根文件系统
使用NFS挂载根文件系统
如果你的设备具有网络接口,最好在开发过程中借助网络来安装根文件系统。这样能获得几乎无限的存储,因此可以添加具有大量符号表的调试工具和可执行文件。而且在主机上更新的数据立马就作用到目标上。
首先配置内核选项 config_root_nfs ,然后可以在内核命令行中添加下面的命令来配置其在启动时进行挂载:
root=/dev/nfs
NFS的导出详情如下:
nfsroot=<host-ip>:<root-dir>
对连接到NFS服务器的网络接口进行配置,
ip=<target-ip>
还需要在主机上安装和配置NFS服务,在Ubuntu上可以使用如下命令:
sudo apt-get install nfs-kernel-server
需要告诉NFS服务器哪些目录通过网络导出,这个由 /etc/exports 控制。添加以下到文件中:
/<path to staging> *(rw,sync,no_subtree_check,no_root_squash)
然后重启启动服务器使修改生效,
sudo /etc/init.d/nfs-kernel-server restart
使用TFTP加载内核
当根文件系统是通过 NFS 挂载时,最好通过网络加载内核。这样不需要使用任何本地存储设备。由于不需要不断刷新内存,可以节省时间,同时可以在存储驱动程序尚未完成时继续工作。
Ubuntu上需要安装 tftp-hpa 包,从而授予 TFTP 客户端对目录 /var/lib/tftpboot 的读取权限。
TFTP 请求超时的常见原因:
- 服务器 IP 地址不正确
- TFTP 程序在服务器上没有运行
- 防火墙服务器阻断TFTP协议