第一步:在Linux主机上开启NFS服务,使用如下命令安装NFS服务:
sudo apt-get install nfs-kernel-server rpcbind
第二步:创建一个文件夹用于共享,直接以nfs命名就行:
第三步:打开nfs服务配置文件/etc/exports,并加入如下图所示内容,注意替换为自己的共享文件夹的绝对路径
打开配置文件:
sudo vi /etc/exports
添加配置内容:
共享文件夹的绝对路径 *(rw,sync,no_root_squash)
第三步:重启nfs服务:
sudo /etc/init.d/nfs-kernel-server restart
在这里有个点需要注意以下,Linux主机的网络配置需要改成桥接模式,NAT模式下使用uboot来ping主机死活也ping不同,不知道啥原因,有知道的大佬可以私信俺。开发板和主机通信需要处于同一网段下,接下来手动配置一下主机的ip地址,使其永久保持:
第五步:打开Ubuntu的网络配置选新建:
第六步:选ipv4并且手动配置,注意uboot和主机要在同一个网段内:
主机配置完成接下来配置开发板的uboot:
第七步:设置uboot的网络和环境变量:
setenv ipaddr 192.168.106.50
setenv ethaddr b8:ae:1d:01:00:00
setenv gatewayip 192.168.106.1
setenv netmask 255.255.255.0
setenv serverip 192.168.106.137
saveenv
其中ipaddr为开发板的IP地址,一定要和主机保持一致,serverip为主机IP,设置完成之后,使用开发板ping主机可以看到下图结果就是成功:
第八步:使用nfs命令从主机共享文件夹读取文件:
nfs [loadAddress] [[hostIPaddr:]bootfilename]
loadAddress 从主机读取的文件存放在开发板的地址
hostIPaddr 主机IP地址
bootfilename 文件在主机的绝对路径,确保谣读取的文件在共享文件夹里
出现下图所示即为读取成功:
最后分享一下自己踩的一个坑,我看着网上的教程高高兴兴的配置完了主机和开发板,激动的开始玩耍nfs命令,结果nfs一直报下面的错误,人都给搞懵了,在这里说一下解决的方法,说不定能帮到兄弟:
最后在网上查了资料发现这个错误是因为主机的nfs和开发板的nfs的版本不一致,解决方法就是修改主机的/etc/default/nfs-kernel-server文件:
sudo vim /etc/default/nfs-kernel-server
修改完成之后重启nfs服务即可完美解决此问题,让兄弟们少走点弯路。
sudo service nfs-kernel-server restart