要想实现三者互ping,韦老师虽然专门出了视频说明,但是在自己配置过程还是出现了问题,这里记录一下解决办法,虽然我也不知道原因,但是解决了出现的问题也实现了三者互ping。
首先,我的硬件设备是PC通过无线连接wifi路由器,单板通过网线直接和电脑连接。
要实现互相ping,需要把PC主机上的两个网卡设置成不同的网段,比如这里我的无线网卡,和有线网卡分配如下:
可以看到网段是不同的,这样之后,使用新版本的uboot,上电就会使能网卡,
现在还要做一件事,要实现三者互ping,必须让三者处于同一网段。
注意,你可能发现上面两个网卡要处于不同网段,这里三者又要处于同一网段,是不是有点混淆。
这里做出说明:
上面的两个网卡,必须要处于不同网段,是针对于一个PC主机(Windows)的无线网卡和有线网卡而言的,比如我此时电脑上的:
三者互ping:在我上面所说的链接方式下,三者指的是,开发板,虚拟机,PC上的有线网卡。
所以,在虚拟机设置上,桥接的时候,选择网卡一定要选择PC机上的有线网卡,如下图:
这样设置之后,需要使这三者位于同一网段。
但是,问题就来了,选择这样桥接的网卡之后,我进入虚拟机内部,虚拟机不能自动识别出网络,表现形式就是ifconfig没有ip地址:
在这样的模式下,哪怕我强行设置ip,系统会报错,说
Network is unreachable
这样一来,肯定ping不同,搜索了一圈之后,也没解决我的问题。但是我试着去解决了一下,反而成功了:
首先,重启网络:
sudo /etc/init.d/networking restart
可以看到,重启之后也没用,ifconfig还是不行,但是执行了这个命令之后可以看到虚拟机的网络图标在重启,那证明应该有某种作用,我们知道ubuntu虚拟机中的网络图标,在没有网络识别的时候,是一个扇形的图形,而有网络的时候是一个上一个下的箭头:
如果有这个上下箭头,那么一定会有ip地址了,我现在的情况就是扇形图标,所以ifconfig没有ip。
紧接着,我在重启网卡之后,设置网卡的ip:
sudo ifconfig ens33 192.168.30.3
果然,这样之后,我ifconfig有ip了,而且网络图标也变成了上下箭头,此时我的pc有线网卡ip是:192.168.30.1
虚拟机的ip是:192.168.30.3 那么现在只用把uboot的ip设置成同一网段比如:192.168.30.2,就应该可以三者互ping了。
果然,现在uboot可以ping通pc了,试试ping虚拟机呢?
也可以ping通了。再看看pc ping虚拟机呢?
也ping通了,最后看看虚拟机ping PC呢?
果然,也还是ping通了,这样就实现了三者互ping。解决的过程很难受,但是结果总是让人开心。
最后说明的是:为什么不用虚拟机和pc机ping uboot,因为uboot不回ping包,只能uboot去ping别人。