一. uboot 网络IP配置
1. 硬件连接
2. 软件要求
(1) IP地址测试
保证开发板和电脑处于同一个网段内。
例如,开发板 IP地址为 192.1.68.1.100 ,那么,电脑的 IP地址则应该也是 1 网段,IP地址应该为 192.168.1.*(其中的 * 表示可以是任意的值,但是要保证该IP地址未被其他的人占用)。
是否在同一IP网段的测试:
开发板上电,按下回车键进入 uboot的命令模式下,打开虚拟机下的ubuntu系统。
查看 ubuntu系统的网络 IP地址,如下:
wangtian@wangtian-virtual-machine:~/桌面$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 102.168.1.66 netmask 255.255.255.0 broadcast 102.168.1.255
inet6 fe80::308d:7a5d:b615:fb20 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:3e:e7:a3 txqueuelen 1000 (以太网)
RX packets 2666 bytes 334388 (334.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3057 bytes 200791 (200.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在开发板 uboot命令模式下, ping Ubuntu系统的 IP 地址,操作如下:
=> ping 192.168.1.66
FEC1 Waiting for PHY auto negotiation to complete.... done
*** ERROR: `ipaddr' not set
ping failed; host 192.168.1.66 is not alive
以上可以看出:开发板没有设置网络 IP地址。
所以,这里需要设置 开发板的 IP 地址。ipaddr 是开发板的环境变量。
注意:这里的开发板的 ip地址,需要保证没有被其他的设备使用。否则,IP地址会发生冲突!!!
检测一个IP地址是否已经被使用:自己的 ubuntu系统可以通过 ping 该IP地址,是否可以 ping通来确认。
ubuntu 系统 ping IP地址为 192.168.1.50,操作如下:
wangtian@wangtian-virtual-machine:~/桌面$ ping 192.168.1.50
PING 192.168.1.50 (192.168.1.50) 56(84) bytes of data.
来自 102.168.1.66 icmp_seq=1 目标主机不可达
来自 102.168.1.66 icmp_seq=2 目标主机不可达
以上信息说明,IP地址 192.168.62.50 没有其他设备使用。所以,开发板可以设置此 IP地址。
(2) 设置开发板的IP地址与 MAC地址
设置 ipaddr的地址(即 ip地址):
=> setenv ipaddr 192.168.1.50
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK
这里 先试着 ping 一下 ubuntu的 IP:192.168.1.66,操作如下:
=> ping 192.168.1.66
FEC1 Waiting for PHY auto negotiation to complete.... done
*** ERROR: `ethaddr' not set
ping failed; host 192.168.1.66 is not alive
以上结果显示,开发板 ping 系统ubuntu失败,提示没有设置 ethaddr的错误。
这里"ethaddr " 指的是 开发板的 MAC地址。
设置 ethaddr的地址,操作如下:
=> setenv ethaddr b8:ae:1d:01:00:00
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK
(3)设置网关,子网掩码,服务器IP
除了设置 IP地址,MAC地址外,还要设置开发板的网关,子网掩码,服务器IP地址(即需要连接的系统)。
下来继续设置开发板的涉及网络的三个参数值,这里的 serveip即服务器IP地址,也就是后面开发板需要 ping的系统。这里把 ubuntu虚拟机作为 服务器,所以,serverip即为 ubuntu的 ip地址。
操作如下:
=> setenv gatewayip 192.168.1.1
=> setenv netmask 255.255.255.0
=> setenv serverip 192.168.1.66
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x400000 -- 100% complete.
Writing to NAND... OK
(3) 开发板 ping 虚拟机
进入 开发板的 uboot命令模式,打开 ubuntu虚拟机。确保开发板的 IP地址与 虚拟机在同一网段。
这里我的虚拟机网络设置的 "桥接模式",开发板 ping ubuntu系统,至此,开发板已经成功 ping 通虚拟机了。
操作如下:
=> ping 192.168.1.66
Using FEC1 device
host 192.168.1.66 is alive