开发板uboot无法ping通开发主机(PC或虚拟机)问题的完美解决

开发板uboot无法ping通开发主机(PC或虚拟机)问题的完美解决

开发板成功启动uboot并正确设置uboot中的ipaddr仍然无法ping通开发主机(PC或虚拟机)

一、准备工作

此时直接用网线将开发板和PC相连
确保uboot的ipaddr和开发主机IP是否在同一网段;
目前PC主机状态:(默认网关上外网才需要填写此时可不填)
在这里插入图片描述开发板状态:
在这里插入图片描述因为此时无法ping通所以按照下面步骤进行分析问题
先将开发板刷机成Linux+uboot然后启动进入Linux命令行终端(默认进入Linux系统)。
烧写uboot+linux方式:
uboot+Linux烧写工具提取码:29mi
1.用moicro型USB线缆,一端接入到底板上的OTG口JB10,另一端接入到PC电脑;
2.下载烧写工具解压后打开烧写软件Mg102.exe,同时按下 RESET键和B00T键,然后先释放 RESET键,再释放B00T键,进入烧写模式,如下:
在这里插入图片描述3. 点击 Start按钮,执行烧写过程,烧写成功,显示如下界面:
在这里插入图片描述4.烧写完成,将USB线缆从JB10口拔下,然后连接到 DEBUG口(此次对照为UART4),
打开串口控制终端软件,配置好串口的参数,按下底板上RESET键将会有boot信息打印输出,如下图所示:
在这里插入图片描述

二、问题查找及解决

以下将通过四步进行问题查找
开发板运行Linux和主机windows进行测试ping
开发板运行Linux和虚拟机Ubuntu进行测试ping
开发板运行uboot和主机windows进行测试ping
开发板运行uboot和虚拟机Ubuntu进行测试ping

1.开发板运行Linux和主机windows进行测试ping
先设置开发板ip
在这里插入图片描述开发板ping PC主机
在这里插入图片描述PC主机ping开发板
在这里插入图片描述此时开发板和Windows是互相可以ping通的说明:开发板和PC主机的网络部分硬件都是好的,网络连接也是好的,主机windows中设置也是正确的。
2.开发板运行Linux和虚拟机Ubuntu进行测试ping

2.1虚拟机要想被开发板ping通必须设为桥接方式(桥接方式虚拟机会虚拟一个IP给Ubuntu使用和PC是不同的IP外部看到的是2个IP;如果设置为net则Ubuntu和windows共用一个IP,如果Windows不同就会导致虚拟机不通)
2.2点击VMware中的编辑按照下图设置:(因为电脑一般有有线和无线2个网卡,如果选自动默认会桥接到无线网卡上,但是我们是通过有线网卡连接开发板的自然就会ping不通;本例中因为电脑只有有线网卡所以默认自动即可)
在这里插入图片描述2.3 在虚拟机中设置IP和开发板同网段,然后ping开发板
在这里插入图片描述开发板ping虚拟机
在这里插入图片描述

此时开发板和虚拟机是互相可以ping通的说明:开发板和虚拟机的网络部分硬件都是好的,网络连接也是好的,虚拟机中设置也是正确的。
以上就说明硬件和连接主机设置都正确,下面需要验证uboot是否设置或其本身网络驱动有问题。

3.开发板运行uboot和主机windows进行测试ping

重启开发板在倒计时停止前按空格键进入uboot;设置ipaddr ethaddr(ethaddr可任意写)
在这里插入图片描述开发板ping PC主机
在这里插入图片描述4.开发板运行uboot和虚拟机Ubuntu进行测试ping
开发板ping虚拟机
在这里插入图片描述理论分析开发板肯定ping不通虚拟机,但是结果却是可以ping通。
综上可以判断出uboot设置有问题或者uboot驱动有问题,根据查资料得到几个可行办法:
方法1:uboot下设置环境变量serverip为开发主机IP
方法2:uboot下设置环境变量gatewayip为同网段.1 如192.168.0.1
方法3:重新烧录uboot再测试。

此处只修改了环境变量serverip为开发主机IP就达到预计效果,其余就没有设置。
在这里插入图片描述
无法实现互 ping 的定位方法

⚫ PC 相关 ping 操作问题定位
如果 ping PC 不通,或者 PC ping 外接不通,可以找到网卡右键选择状态,打
开如下图,然后执行 ping 操作的时候,盯着如下红框的收发包计数,确定是 ping
没有发出去,还是 ping 回包没收到。如果能 ping 通,收发包计数在 ping 期间包的
字节数会不断增长。

在这里插入图片描述

⚫ 安装抓包工具 Wireshark
安装 Wireshark 抓包工具,抓取本地网卡的网络数据包,查看是否收到 ping
包,或者回包。如外部 ping PC,如下图,192.168.0.152 是 ubuntu,192.168.0.129
是本地网卡 ip。本地网卡收到了来自 152 的请求包,并回复了 ICMP 包。
Wireshark 是很好用的抓包工具,如果和 PC 相关的网络问题,可以通过抓
包工具来定位相关网络包是否接收和发送成功。

在这里插入图片描述

⚫ 开发板中安装抓包工具
一般来说嵌入式系统常用的网络抓包工具是 tcpdump,交叉编译即可在开
发板上进行抓包。
命令: tcpdump -i eth0.
执行后,所有 eth0 进出的网络数据包都会被抓取并列出来。
通过抓包工具,我们可以定位到是否收到相关数据包,从而定位到出问题的点 。
  • 13
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值