如果出现了网络问题的情况,基本上问题主要出现在两个地方。一个是虚拟机VMware设置,一个是Ubuntu和开发板的网络配置。
首先我们来考虑硬件问题。
我是使用SecureCRT串口调试工具(其他软件类似),我们进入Uboot的命令行模式之前可以看到。
这个Net:FEC1.就说明我们开发板的UBOOT程序的网络驱动程序是没问题的,能够识别到我们的网口。如果是Net: Board Net Initialization Failed。就说明我们的UBOOT的网络驱动程序是有问题的。我们去修改Uboot的网络驱动程序,重新编译Uboot即可解决。
在排除了硬件问题之后,我们就要来排查我们的主要问题了:虚拟机VMware设置问题和Ubuntu和开发板的网络配置问题。
虚拟机VMware设置:
我用的是VMware17_PRO。点击虚拟网络编辑器。
进入之后一般是有3个网口:
选择VMnet0为桥接模式,并选择桥接至红框中的位置。(如果你进去只有VMware1和8,那么就点击还原默认设置。如果点击还原默认设置还出不来VM。就去设备管理器中查看网络适配器是不是有问题)
然后再在虚拟机设置中设置为桥接模式:
到此虚拟机设置结束。接下来就是网络配置。设置Ubuntu的IP地址。
这里特别主要要设置DNS地址,我就是一开始没设置,所以到处找原因。地址,子网掩码,网关可以参考windows的来配置。和windows处于同一网段下即可。
然后是配置开发板的网络配置
setenv ipaddr 10.16.22.80
setenv ethaddr b8:ae:1d:01:00:00
setenv gatewayip 10.16.22.1
setenv netmask 255.255.255.0
setenv serverip 10.16.22.90
在Uboot命令行中使用如下几条命令。
注意在设置ipaddr的时候,因为我们是自己设置,所以先用Ubuntu来ping一下,如果这个地址ping不通,说明没有被占用,我们就可以使用这个地址了。只要保证他们在同一个网段下即可。
那么如何保证他们在用一个网段呢?
开发板 :192.168.1.136 & 255.255.255.0 = 192.168.1.0
ubuntu: 192.168.1.88 & 255.255.255.0 = 192.168.1.0 它们就是同一个网段下
可以理解为255就是很多1,非0数与1相与都是它本身。所以提醒我们要设置netmask为255.255.255.0。
之后就可以尝试ping啦。