根文件系统rootfs启动验证测试
接下来我们使用测试一下前面创建好的根文件系统 rootfs,测试方法使用 NFS 挂载。
6.1 检查是否在Ubuntu主机中安装和开启了NFS服务
(特别注意:nfs 配置文件/etc/exports中添加的路径一定要与实际使用的绝对路径保持一致)
拓展:
进行 Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服务,使用如下命令安装 NFS 服务:
sudo apt-get install nfs-kernel-server rpcbind
等待安装完成,安装完成以后,我们手动在用户根目录下创建一个名为“linux”的文件夹,以后所有的东西都放到这个“linux”文件夹里面,在“linux”文件夹里面新建一个名为“nfs”的文件夹。
创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹,要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:
sudo vi /etc/exports
打开/etc/exports 以后在后面添加如下所示内容:
/home/sudeki/Workplace/linux/nfs *(rw,sync,no_root_squash)
"sudeki"为当前用户名,根据实际情况修改
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2TC2rZ3V-1676132611122)(..\Linux驱动开发记录\Linux驱动开发记录图库\六-2.3.4-3-nfs报错.png)]](https://img-blog.csdnimg.cn/6b369d9758b340cf86ad16e9b4867e94.png)
重启 NFS 服务,使用命令如下:
sudo /etc/init.d/nfs-kernel-server restart
6.2 uboot 中设置 bootargs 和 bootcmd 两个环境变量
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-atk.dtb; bootz 80800000 - 83000000'
saveenv
uboot 里面的 bootargs 环境变量会设置“root”的值,所以我们将 root 的值改为 NFS 挂载即可。在 Linux 内核源码里面有相应的文档讲解如何设置,文档为 Documentation/filesystems/nfs/nfsroot.txt,格式如下:
root=/dev/nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] ip=<client-ip>:<server-ip>:<gwip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
根据上面的格式 bootargs 环境变量的 root 值如下:
root=/dev/nfs nfsroot=192.168.10.102:/home/sudeki/Workplace/linux/nfs/rootfs,proto=tcp rw ip=192.168.10.55:192.168.10.102:192.168.10.1:255.255.255.0::eth0:off
“proto=tcp”表示使用 TCP 协议,“rw”表示 nfs 挂载的根文件系统为可读可写。 启动开发板,进入 uboot 命令行模式,然后重新设置 bootargs 环境变量,命令如下:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.10.102:/home/sudeki/Workplace/linux/nfs/rootfs,proto=tcp rw ip=192.168.10.55:192.168.10.102:192.168.10.1:255.255.255.0::eth0:off'
saveenv
设置好以后使用“boot”命令启动 Linux 内核
boot
结果如下图
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1yW6M36v-1676132611123)(..\Linux驱动开发记录\Linux驱动开发记录图库\九-6.2-1-根文件系统启动验证.png)]](https://img-blog.csdnimg.cn/6f8997b0dacb44e582e309d829004cec.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)