开发板nfs挂载NAT虚拟机的文件系统环境搭建--Apple的学习笔记
  2Nv1H5BMjysw 2023年11月19日 17 0

一,前言

总体来说我还是想用NAT虚拟机,所以基于开发板nfs挂载桥接虚拟机的文件系统环境搭建--Apple的学习笔记中的配置继续修改。

二,ubuntu虚拟机中nfs挂载设置

  1. 修改ip地址为192.168.112.11
  2. 添加路由端口 sudo gedit /etc/services 最后添加 mountd 9999/tcp mountd 9999/udp
  3. PC 以太网2设置ip地址从之前设置的192.168.7.3改为192.168.7.5,就变成了之前的ubuntu地址了。
  4. 连接好网线,给开发板上电,这样以太网2就连接上了。

验证ubuntu可以ping通PC以太网2 192.168.7.5,PC也可以ping ubuntu 192.168.112.11,开发板可以ping 192.168.7.5的PC。因为uboot不支持PC对它ping,所以只要uboot可以ping通PC即可。

  1. 打开PC tftp64工具,按之前的方法设置即可,然后uboot发命令tftp 0x82000000 zImage验证通过。

三,开发板设置

1.修改开发板的netargs参数

setenv netargs 'setenv bootargs console=ttyO0,115200n8  root=/dev/nfs nfsroot=192.168.7.5:/work/img/rootfs,v3,tcp,port=2049,mountport=9999 rw ip=192.168.7.2:192.168.7.5:192.168.7.1:255.255.255.0::eth0:off'

遇到的坑:nat方式下,进行nfs挂载,PC的防火墙需要关闭,否则路由不过去

bootargs中tcp加不加无所谓,我在虚拟机NAT的port端口映射仅添加了tcp,没有加udp,所以他只会用tcp,不过最好显示的加上。NAT实现nfs挂载的重点就是关闭PC的防火墙。

开发板nfs挂载NAT虚拟机的文件系统环境搭建--Apple的学习笔记_ubuntu

另外uboot仅支持v2的nfs,所以无法挂载,bootargs我设置为v2也无法挂载,说明ubuntu14.04这块支持有问题,我按网上教程设置了也无用。

2.找到了我之前设置的环境变量,主要对netargs进行了修正,若之前无环境变量文件,设置如下

setenv ipaddr 192.168.7.2
setenv serverip 192.168.7.5
setenv netmask 255.255.255.0
setenv gatewayip 192.168.7.1
setenv hostname "eth0"
setenv rootpath "/work/img"
setenv bootfile "zImage"
setenv myrootfs "/rootfs"
setenv fdtfile "am335x-boneblack.dtb"
setenv nfsopts "v3,tcp,port=2049,mountport=9999 rw"
setenv netargs "setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath}${myrootfs},${nfsopts} ip=${static_ip}"
setenv nfs_bootfile 'tftp 0x82000000 ${bootfile}'
setenv nfs_fdtfile 'tftp 0x88000000 ${fdtfile}'
setenv bootcmd 'setenv autoload no;run nfs_bootfile; run findfdt; run nfs_fdtfile; run netargs; bootz ${loadaddr} - ${fdtaddr}'
saveenv

四,小结

记得一开始NAT端口路由无法进行nfs挂载,真心不清楚哪个环节出错了。主要是网络协议不熟悉,就算wireshark抓包看到错误也不清楚如何解决。另外就是3年前非虚拟机情况下都是正常的,但是用了虚拟机ubuntu就不正常了,所以为了简化问题,先设置为桥接虚拟机通过了nfs挂载后,又回到NAT虚拟机进行nfs挂载,这其实用了控制变量法来排查问题。虽然是比较低级的排查问题的方法,但是这也是很有效的方法。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
2Nv1H5BMjysw