0. 问题
-
硬件:交换机、台式机
Win10
、Ubuntu20.04
、I.MX6ULL 正点原子ALPHA 开发板
-
网络:校园网(仅登录个人账号使用),网线直连
-
问题描述:
-
使用网络调试Linux程序开发的,配置uboot的ip地址,板子ping不通ubuntu和Win10主机以及遇到的一系列问题???
-
nfs服务器在传输中出现
cannot mount
操作 ??? -
初次编译的uboot失败?
-
1. 解决
问题1 思路
个人折腾了很久,把事情记录一下,给用得到的人。
首先获取每个设备的IP地址,确保是在同一个网段内,只有在同一个网段内,才能ping的同。
- Win10主机IP地址
-
将虚拟机设置为,桥接模式:用于和主机同一个网段内,但是桥接模式不能共享主机的网络,后面添加新的虚拟机网卡(设置为NAT模式即可)用于Ubuntu的上网,两个分别IP如下:
其中,ens33
对应的是桥接模式的网卡,ens38
对应的NAT模式连接的网卡(NAT模式用于共享Win10主机的网络),对应 的可能名字不一样,整体是差不多的。
-
设置开发板的IP地址
将系统烧写进去,查看对应IP地址(此时网线一头连接交换机/路由器,一头连接板子的
ENET2
口上)
这一步需要将开发板的IP地址设置整静态的(开机不变的)这一步骤参考韦东山开发手册
直接在/etc/network/interfaces
里面将上述的IP地址写成静态即可,后面的Uboot也使用同样的IP地址进行setenv即可。
修改后的内容
root@ATK-IMX6U:~# cat /etc/network/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo inet loopback
# Wireless interfaces
iface wlan0 inet dhcp
wireless_mode managed
wireless_essid any
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
iface atml0 inet dhcp
# Wired or wireless interfaces
auto eth0
iface eth0 inet dhcp # 这一部分是添加进去的,写IP地址
address 172.31.117.238
netmask 255.255.255.0
gateway 172.31.117.1
iface eth1 inet dhcp
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.0
network 192.168.7.0
gateway 192.168.7.1
# Bluetooth networking
iface bnep0 inet dhcp
注:ALPHA的该文件内容不一样,只需要添加一部分即可。
最终,三个IP地址获取得到
1. Win主机地址: 172.31.117.121
2. ubuntu虚拟机地址:172.31.117.238
3. IMX板子地址: 172.31.117.149
两两可以互相ping得通,一个点是,校园网的情况下,IMX开发板不能上外网,ping不同www.baidu.com,现阶段不需要。
接下来配置uboot的IP地址,关键点:将uboot的IP地址写成和板子的IP地址一样,比如我的直接配置成
-
设置uboot环境变量
setenv ipaddr 172.31.117.149 # 对应开发板的IP地址 setenv serverip 172.31.117.238 # 对应Ubuntu的IP地址,后面使用nfs、tftp将ubuntu当做一个server来使用 saveenv
- 在uboot里面去ping的话就可以直接ping同主机和ubuntu虚拟机了
问题2 思路
又一个坑???
使用nfs服务器进行网络传输的时候,遇到传输cannot mount失败情况,是nfs服务器版本和uboot不兼容的情况,只需更改一个nfs版本即可
参考:nfs无法挂载:Loading: *** ERROR: Cannot mount
问题3 思路
交叉编译器的版本太高,请使用正点原子提供的交叉编译器版本即可。
02.总结
收工!