开发板JZ2440和主机windows之间的ping问题解决办法与归纳,亲测有效。
连接分为两种情况:一、两个路由器的情况;二、通过一个路由器连接的情况。
这里必须强调一下,ping只是在测试开发板与主机之间建的局域网或者这条线路是否联通,而不是开发板是否能连上外网。
一、两个路由器
前提:如果你是用的两个路由器,笔记本wifi连的一个路由,但是这个路由器太远,网线不够,或者连的是校园网、公共网等,总之就是开发板的网口没法通过网线直接连到该路由器上。
这时,我们用到了另外一个路由器,该路由器是没有联网的路由器,这时我们通过这个路由器把PC端的有线网口和开发板的网口连接起来,组成一条通路。
步骤如下:
步骤①、首先注意,一个有线网卡,一个无线网卡,各个网卡之间是不互通的,在选择时你需要知道自己是要用哪一个网卡。如果笔记本wifi上网,有线网口和开发板之间通过路由器来连接,经过路由器,把PC上的有线网卡和开发板组成一个能连通的局域网。而该局域网和无线网卡一点关系都没有!!该局域网能否访问外网也和这个wifi一点关系都没有!!
步骤②、把pc的有线网卡端和开发板的网口均通过网线接到路由器。
步骤③、因为PC的无线和有线都连接了信号,PC会选择优先级高的网络,一般是有线连接比无线连接优先级高,PC并不是自动选择能访问外网的那个,因为外网和局域网在一定程度上是同等的。此时,需要在“网络和共享中心”中,设置无线连接的优先级比有线连接的优先级高,保证PC正常通过wifi访问外网。在如下的链接中有两种方法,我是第二种方法奏效了:
https://jingyan.baidu.com/article/f0e83a2599c1c122e5910111.html?st=5&net_type=&bd_page_type=1&os=1&rst=&word=%E7%AC%94%E8%AE%B0%E6%9C%AC%E8%AE%BE%E7%BD%AE%E4%BD%BF%E7%94%A8%E6%9C%89%E7%BA%BF
步骤④、此时,一条通路是:电脑的有线网口—路由器—开发板网口,设置开发板时用的是PC端的有线网口的IP,而非PC*问外网的无线网卡,我们在设置开发板IP地址时,就需要根据有线网卡的IP来设置。
最后,上面设置完后,开发板和PC之间就能互通了,而利用的是PC上的有线网卡端口,如果想把电脑上的虚拟机加上来,把三个连成一个局域网,虚拟机也必须通过这个有线网卡的IP来设置自己的IP,实现三者之间的互通,建立三者之间的局域网。
PC上的这个有线网卡就相当于这个局域网的结点,如果你把虚拟机IP设置为和无线网的IP同网段,虽然可以借助PC上的无线网ping通外网,但和开发板、PC组成的局域网一点关系没有,也就不存在ping不ping得通的问题,即虚拟机此时没有加入开发板和PC有线网卡端组成的局域网。
如果想让开发板ping通PC上的无线网卡的IP,开发板通过路由器连在PC的有线网卡。可以设置PC的有线网卡和无线网卡为桥接模式。同时注意:桥接模式下,有线和无线连接是分连接顺序的;如果有线先连,桥接后,PC就是按照有线线路来上网;如果无线先连,桥接后,PC就是按照无线wifi来上网的。当PC在桥接后是按wifi来上网的,此时桥接后的IP就是无线网卡的IP,而此时的有线网卡的IP和无线网卡的IP是同一个网段了,此时,按照无线网卡的IP来设置开发板的u-boot和系统的IP就可以了,不过这样连接意义不大。
还有一种情况,直接把开发板网口通过网线接在PC的有线网口上,最后按照PC上有线网口的IP来设置开发板上系统的IP,是可以ping通的。但是,1、在启动进入u-boot时,直连到PC有线网口的方式好像会与开发板上串口转USB端口冲突,导致在直连后,不能对boot loader有效操作。在进入系统后,可以重插串口转USB端口,实现对开发板上串口的重新控制,但是在u-boot中是不行的,只要网线和串口一起插,就会冲突(JZ2440);2、采用直连方式的话,VMware中设置为桥接方式,如果桥接对象选择的还是这个有线网卡,最后是连不上的。如果开发板和PC的有线网卡中间加一个路由器,VMware中设置为桥接模式,对象选择这个有线网卡是没问题的。
所以,开发板和PC之间最好弄一个路由器,可以省事。并且这样VMware、PC有线网卡、开发板三者组成的局域网即便访问不了外网,也可以通过在此局域网内的PC上的远程登录软件,登录VMware上的linux,和通过局域网正常传文件到开发板(只要在PC上选择正确的服务器IP,该局域网内的IP(有线网卡IP))。
二、一个路由器
如果你PC的无线或有线连接直接连的是自家里的路由器,那么完全可以用网线直接把开发板接在这个路由器上。
1、用wifi连了家里的路由器,此时,将开发板的网口用网线接在该路由器上面,按照wifi网口的IP进行设置即可
2、用有线连了家里的路由器,此时,将开发板的网口用网线接在该路由器上面,按照有线网口的IP进行设置
3、有一种错误情况:有线连了家里的路由器,无线也连了家里的路由器,此时你把开发板接在路由器上面,这时无线和有线就混淆了,不确定PC与开发板具体是通过无线连的开发板还是有线连的开发板。
三、连接好后,设置开发板的IP
1、JZ2440中boot loader的IP设置:
①、进入u-boot后,打印u-boot的ip信息,用:print命令,查看一下IP;
②、然后根据主机IP设置u-boot的IP,用set命令,
比如,设置服务器IP:set serverip 192.168.1.248 设置u-boot的IP:set ipaddr 192.168.1.240
设置网关:set gatewayip 192.168.1.1 设置完后保存:save
③、最后检测:ping 192.168.1.248 如果最后显示这个服务器的IP是alive状态,那么就是ping通了。
2、JZ2440进入系统后,系统IP的设置:
要说明的是JZ2440上boot loader的IP和其上系统的IP并非同步的,需要独立设置。
①、首先,用ifconfig命令查看一下开发板的网络设备,我这个是eth0,
②、然后按照服务器IP来设置它,设置用:ifconfig eth0 192.168.1.241 把它和服务器的IP设为同一个网段。
③、最后也是测试:ping 192.168.1.248 ping一下服务器的IP,如果有回传数据,发送第一数据用了多长时间这些信息就说明ping通了。当然也可以加一些参数,比如:ping 192.168.1.248 -c 8 表示只传8个包的数据。