目录
前言
跟着左老师学习IMX6ULL时,发现Uboot无法ping通虚拟机:
问题:1.ping虚拟机时开发板会重启
2.一直无法ping通虚拟机
介绍一下自己的情况:电脑是台式机,开发板和主机都用网线连接到同一个路由器上,Ubuntu系统为20.04,使用的是MINI EMMC板。
解决办法
1.ping虚拟机时开发板会重启
这个问题是由于linux安装的交叉编译版本太高的原因。
首先将原来安装的交叉编译全部卸载,然后安装交叉编译4.9.4版本。网上有很多教程大家直接参考即可,我在下面放出交叉编译4.9.4版本压缩包,大家自行选择。
2.一直无法ping通虚拟机
解决了上面这个问题后,还是无法ping通虚拟机。我的电脑和开发板是连在同一个路由器上的,参考了许多前辈的解决办法后,我将自己解决的办法写出来。
①首先查看自己主机的IP地址,网关和子网掩码:
win+R输入命令cmd进入终端:
然后输入ipconfig查看主机的IP地址,网关:
也可以打开设置—→网络和Internet—→状态—→属性,里面查看:
假设自己的IP地址是:192.168.192.2,子关掩码是:255.255.255.0,DSN是192.168.192.1
②在VMware虚拟机—→设置—→网络适配器:选择为桥接模式。
进入ubuntu,打开设置,点击小齿轮进行配置:
选择IPv4—→IPv4 Method选择Manual,也就是手动配置:
Address设置Ubuntu的IP地址,将其与主机设置到同一个网段(以我上面的举例,主机的网段为192.168.192.x),这里我设置为192.168.192.3。
Netmask设置子关掩码,与主机保持一致:255.255.255.0
Gateway设置网关,填写DSN地址,与主机一致:192.168.192.1
DNS选取取消Automatic,手动填写,与主机一致:192.168.192.1
然后点击Apply应用,重启Ubuntu。
③串口连接开发板,我使用MobaXterm,其他软件都是一样的。
连上之后开发板会进入倒计时,按回车键进入uboot配置网络,将其与主机设置到同一个网段,这里设置成192.168.192.4。
setenv ipaddr 192.168.192.4
设置完之后是无法联网的,还需要配置ethaddr,ethaddr是网络MAC地址,是一个48bit的地址。ethaddr可以自己随意设置,如果在同一个网段有多个开发板的话一定要保证每个开发板的ethaddr是不同的,否则通信会有问题。
setenv ethaddr 00:0c:29:17:0f:4a
设置完之后将配置保存:
saveenv
然后测试一下是否能ping虚拟机:
ping 192.168.192.3
如果成功会返回:host 192.168.192.3 is alive
配置完之后也可以继续配置其他参数:
setenv gatewayip 192.168.192.1 //与虚拟机一致
setenv netmask 255.255.255.0 //与虚拟机一致
setenv serverip 192.168.192.3 //与虚拟机IP地址一致
saveenv //保存配置
4.9.4版本交叉编译器,32和64位,大家自行选择
链接:https://pan.baidu.com/s/1IjQBO_UBnjkcoXhfnRmJxw
提取码:gw1z