1、最近使用stm32mp157linux开发板和ubuntu进行NFS通信时,在开发板上使用mount命令挂载时,出现以下报错:
mount.nfs: requested NFS version or transport protocol is not supported
2、后来我发现是我错误的将开发板的ip设置的和Ubuntu网卡的ip一样导致(我使用的是双网卡,如果正常网卡的话,就关注ens33的ip),Ubuntu的网络ip和开发板的网络ip不能一样,否则不能正常通信:
3、修改开发板的ip地址
我们有两种方法可以修改开发板的ip地址:
3.1、 手工设置(临时设置)
在linux开发板输入:
fconfig eth0 192.168.5.9
即可设置ip。这种方法虽然简单,但是每次开发板重启之后,都需要再次输入以上指令来修改ip,不利于长期使用。
3.2、永久设置
修改配置文件设置 IP,修改一次即可,无需重复配置。修改开发板/etc/network/目录 下的 interfaces 文件:
使用指令:vi /etc/systemd/network/50-static.network
打开文件,输入以下代码后,按下键盘 ESC,然后输入执行 :wq 保存并退出。
[Match]
Name=eth0
[Network]
Address=192.168.5.9/24
Gateway=192.168.5.1
最后, 执行 systemctl enable systemd-networkd 重启网络服务。网络ip就设置好了。
可以看到网络设置好之后,mount挂载nfs正常,linux开发板可以共享到Ubuntu的文件了。
4、补充
4.1 补充说明1
可以看到我的Ubuntu网络ip是192.168.5.11,我设置的linux开发板网络ip为192.168.5.9,其实设置成192.168.5.xx都是可以的。只要保证两个网络在同一个网关下就可以(名词可能有误)。
如果linux开发板的网络ip设置成192.168.4.9,可以通信吗?不妨来试一试!
可以看到,修改了linux开发板的ip后,无法正常ping通Ubuntu了。
那么还能正常挂载nfs吗?答案是不能的,网络都连接不上,怎么能挂载呢?
4.2、补充说明2
前面已经说了,只要我们的linux开发板的ip和Ubuntu的网络ip在同一个网关下,就可以正常通信和挂载nfs。现在我将linux开发板的ip修改为 :192.168.5.8 ,并重启网络和开发板。
修改了ip后依旧可以正常通信。