linux arm 移植笔记

在移植 U-Boot 的时候,通常需要调通网络功能,因为在移植 Linux Kernel 的时候需要使用到 U-Boot 的网络功能进行调试。U-Boot 支持大量的网络相关命令,例如 dhcppingnfstftpboot。以下将依次学习这些网络相关命令。

准备工作

在使用 U-Boot 的网络功能之前,先用网线将开发板的 ENET2 接口和电脑或者路由器连接起来。I.MX6U-ALPHA 开发板有两个网口:ENET1 和 ENET2,一定要连接 ENET2,不能连接错了,ENET2 接口如图 30.4.4.1 所示。

建议开发板和主机 PC 都连接到同一个路由器上!最后设置表 30.4.4.1 中所示的几个环境变量。

网络相关环境变量

环境变量描述
ipaddr开发板 IP 地址,可以不设置,使用 dhcp 命令来从路由器获取 IP 地址。
ethaddr开发板的 MAC 地址,一定要设置。
gatewayip网关地址。
netmask子网掩码。
serverip服务器 IP 地址,也就是 Ubuntu 主机 IP 地址,用于调试代码。

网络相关环境变量设置命令如下所示:

setenv ipaddr 192.168.1.50
setenv ethaddr b8:ae:1d:01:00:00
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.253
saveenv

注意:网络地址环境变量的设置要根据自己的实际情况,确保 Ubuntu 主机和开发板的 IP 地址在同一个网段内。例如,我现在的开发板和电脑都在 192.168.1.0 这个网段内,所以设置开发板的 IP 地址为 192.168.1.50,我的 Ubuntu 主机的地址为 192.168.1.253,因此 serverip 就是 192.168.1.253ethaddr 为网络 MAC 地址,是一个 48bit 的地址,如果在同一个网段内有多个开发板的话,一定要保证每个开发板的 ethaddr 是不同的,否则通信会有问题!

设置好网络相关的环境变量以后,就可以使用网络相关命令了。

NFS 下载

使用 NFS 命令可以将文件从服务器下载到开发板的内存中。命令格式如下:

nfs 80800000 192.168.1.253:/home/zuozhongkai/linux/nfs/zImage

TFTP 下载

使用 TFTP 命令可以将文件从服务器下载到开发板的内存中。命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
tftp 80800000 zImage

启动内核

Bootz 80800000 - 83000000

挂载文件系统

root=/dev/nfs nfsroot=192.168.1.160:/home/huanowine/linux/linux_rootFlie,proto=tcp rw
ip=192.168.1.184:192.168.1.160:192.168.1.1:255.255.255.0::eth0:off

setenv bootargs
'console=ttymxc0,115200 root=/dev/nfs
nfsroot=192.168.1.160:/home/huanowine/linux/nfs_download/linux_rootFlie,
proto=tcp rw ip=192.168.1.184:192.168.1.160:192.168.1.1:255.255.255.0::eth0:off' //设置 bootargs
saveenv //保存环境变量