使用NFS挂载rootfs启动Linux(STM32MP157)

使用NFS挂载rootfs启动Linux(STM32MP157)

发现最近随便转载的很多啊,未经授权禁止转载!抄袭!!否则转载者死全家!!另外这是我的笔记,不是教程,难免会有错误,不具有很高的参考性,望周知。

今天尝试使用NFS挂载的方式启动华清远见FSMP-1A开发板,又碰到了很多问题,卡了我很长时间,现在解决了,笔记分享一下。

服务端配置

首先在Ubuntu主机内安装nfs服务:

1
sudo apt install nfs-kernel-server

修改nfs服务的配置文件:

1
vi /etc/exports

添加以下内容:

1
2
# 下面的路径需要修改
/home/ubuntu/nfs_rootfs *(rw,sync,no_root_squash)

然后重启nfs-kernel-server服务:

1
sudo systemctl restart nfs-kernel-server

如果此时发生错误,通常是路径不对,请检查这个路径的目录是否存在!

开发板配置

进入U-boot命令,然后设置bootargs变量:

1
env set bootargs root=/dev/nfs nfsroot=192.168.108.219:/home/ubuntu/nfs_rootfs,nfsvers=3 ip=dhcp rootwait rw earlyprintk console=ttySTM0,115200

参数解释:

1
env set bootargs root=/dev/nfs nfsroot=$服务端IP:$服务端路径,nfsvers=3 ip=dhcp rootwait rw earlyprintk console=ttySTM0,115200

其中,nfsvers=3参数一定要加,之前一直无法挂载成功就是这个原因。具体原因是内核默认使用v2版本的nfs协议,而现在nfs-kernel-server默认v3以上版本协议,所以造成无法挂载。

然后就可以尽情玩耍了,后来发现dev目录下没有console和null节点也可以挂载,如果碰到不能启动的情况,可以试试手动创建console和null节点。

坚持原创技术分享,您的支持是我前进的动力!