首页 > 代码库 > 开发板ping不通主机和虚拟机的看过来(转载)!
开发板ping不通主机和虚拟机的看过来(转载)!
前几天在做uboot下用tftp下载文件到开发板的实验时,为了能解决开发板ping不通主机和虚拟机的问题,可谓绞尽脑汁,正所谓久病成医,虽然为了这一小问题废了我那么长时间,但我在解决问题的同时也学到了很多其他知识,算是塞公失马,焉知祸福!好了,废话不多说,如果你也ping不通,就请往下看!
(以下是我解决这一问题的心得,以我开发板为例,如果你的板子跟我不一样,也没关系,道理是一样的)
一:物理设备及连接方式:
开发板:Mini2440(友善之臂);
笔记本一台(主机)(windows系统);
虚拟机(ubuntu系统);
路由器一台(不连外网也没关系);
连接方式:开发板与主机各用一条网线与路由器相连(网线也分直连网线和交叉网线,如果两台pc机相连,必须要用交叉网线,我们一般用的网线都是直连型的)。
二:开发板uboot环境变量设置:ipaddr、gatewayip、netmask 这三个变量要设置好,ipaddr跟主机的ip、虚拟机的ip要在一个网段;gatewayip通常设为路由器的网关;如果你要用tftp服务,那serverip要设成虚拟机的ip;
三:虚拟机网络设置:虚拟机->设置->网络适配器(指定为vmnet0桥接模式):
编辑->虚拟机网络编辑器(一定要自定义桥接到指定主机的网卡,如图桥接到本地连接):
插曲:这里要说一下,有人可能会遇到这块没有自动生成vmnet网卡的情况(如图),自己添加的话,又不能改为桥接模式(如图),提示:“没有未桥接的主机网络适配器”
如果你虚拟机有vmnet0,桥接过程顺利的话,那就自动跳过以下内容,往下面翻。
解决尝试:
1:查看主机本地连接属性中VMware Bridge Protocol 有没有勾上
如果没有勾上,就点 安装->选 服务->添加->从磁盘安装->选择你的文件来源(一般在你vm的安装目录下有个netbridge文件)(这是虚拟机软件中的一个重要dll文件,用于建立虚拟网络桥接时的数据文件)。
尝试2:重装主机虚拟网卡
在 计算机->管理->设备管理器,底下有个网络适配器,里面全是你主机安装的各种网卡,把本地网络给卸载了
然后在菜单项上有个 操作->添加过时设备,选择手动安装硬件,找到网卡驱动,把它装上
ps:如果你还装有一些其他的虚拟网卡(比如迅游),要把它删了,这些虚拟网卡会对虚拟机选择网卡时造成影响。
再去重启虚拟机,对了,虚拟机如果不是完整版,只是绿色版的话,有可能也会没有vmnet0的情况,所以你要保证你的虚拟机版本没问题。
四:vmnet0 的问题终于解决了,现在去把ubuntu的ip设为跟主机、开发板在一个网段,怎么设置ip不用我说吧?[ifconfig eth0 192.168.1.4 netmask 255.255.255.0]
五:主机网络设置:设置的跟开发板、虚拟机在同个网段就行了,与路由器的ip也要在一个网段(路由器的网关在机子的后面有写,自己去看);
六:测试:现在,OK,应该可以ping通了,先在主机上ping下虚拟机,应该可以ping通,如果没通,就去检查上面的步骤;
然后在开发板上ping主机和虚拟机,如果能ping通的话就是这样:
在这里提醒一下,uboot相对于linux系统比较低级,它不支持被外界设备(主机或虚拟机)ping,但可以ping别人(主机或虚拟机),所以如果你用主机ping开发板,肯定是ping不通的,但这并不妨碍开发板跟主机和虚拟机通信,不要傻傻的认为没有ping通。
好了,如果ping通了的话,恭喜你问题解决了,接下来你可以用tftp下载内核到开发板上了【tftp 0x31000000 uImage】【bootm 0x31000000】.
本文仅作参考,有不对的地方欢迎指正!希望这篇文章对你有所帮助!
还是那句话:多看,多问,多动手,驱动开发不用愁。
开发板ping不通主机和虚拟机的看过来(转载)!