设置windows、linux和开发板能够相互ping通
1、vmware中的ubuntu设置。
1.1 首先设置虚拟机,设置为桥接模式,然后选择PCIE相关选项。
1.2设置ubuntu
设置ubuntu的ip地址和子网掩码。ip地址和window的ip地址在一个地址段内。
1.3 设置好ubuntu中需要开发版使用的文件系统目录,然后启动nfs服务。
相关内容请看链接: Ubuntu16.04安装NFS.
sudo /etc/init.d/nfs-kernel-server restart
2、windows设置
2.1 设置windows的ip地址
右键点击设置属性,按照如下步骤设置相关ip和子网掩码。确保ip和linux的ip在一个地址段内。
2.2 关闭window的防火墙
3、开发版设置
进入开发版的uboot中,设置bootargs和ipaddr和serverip。其中bootargs设置使用网络文件系统启动。
注意:确保使用的uboot支持网络加载根文件系统。
ipaddr=192.168.1.102
bootargs=noinitrd root=/dev/nfs nfsroot=192.168.1.101:/home/fs_mini_mdev ip=192.168.1.102:192.168.1.101:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
serverip=192.168.1.101
确保ipaddr设置的和windows和linux的ip地址在同一个地址段内。
4、测试连接
4.1在uboot中ping windows和linux,确保能够ping通。
4.2在windows中ping linux,确保能够ping通
4.3在linux中ping windows确保能够ping通
5、可能出现的问题
Linux通过nfs挂载根文件系统失败:VFS: Unable to mount root fs via NFS, trying floppy.
可能是Ubuntu版本太新了,不兼容导致。
查找资料发现从Ubuntu17.04开始,nfs默认只支持协议3和协议4,而kernel中默认支持协议2,所以才会出现挂载失败的情况,现有两种方法可以解决该问题:
-
设置Ubuntu18.04系统中的nfs服务支持协议2,修改nfs配置文件 /etc/default/nfs-kernel-server,在文件末尾加入一句:RPCNFSDOPTS="–nfs-version 2,3,4 --debug --syslog"。
-
如果kernel版本较高支持nfs协议3的话,可以在Uboot传到Kernel的bootargs参数中加入’nfsvers=3’,使kernel使用nfs协议3。