IMX6ULL移植篇-uboot网络配置工作

一.  uboot 网络IP配置

1.   硬件连接

在使用 uboot 的网络功能之前先用网线将开发板的 ENET2 接口和电脑或者路由器连接,
I.MX6U-ALPHA 开发板有两个网口: ENET1 ENET2 ,一定要连接 ENET2 ,ENET2 接口如下:

 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 IP192.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 是一个 48bit 的地址,如果在同一个网段内有多个开发板的话,一定要保证每个开发板的 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 虚拟机

  如果开发板 ping不通 虚拟机,可以参考如下文章,网址如下:

进入 开发板的 uboot命令模式,打开 ubuntu虚拟机。确保开发板的 IP地址与 虚拟机在同一网段。

这里我的虚拟机网络设置的 "桥接模式",开发板 ping ubuntu系统,至此,开发板已经成功 ping 通虚拟机了。

操作如下:

=> ping 192.168.1.66
Using FEC1 device
host 192.168.1.66 is alive
注意:
只能在 uboot ping 其他的机器,其他机器不能 ping uboot,因为 uboot 没有对 ping
命令做处理,如果用其他的机器 ping uboot 的话会失败!

 

猜你喜欢

转载自blog.csdn.net/wojiaxiaohuang2014/article/details/131518486