标签搜索

armUbuntu | 系统移植 Uboot 配置 TFTP NFS 网络调试篇

王先生
2023-10-27 / 0 评论 / 7 阅读 / 正在检测是否收录...

准备工作

PC 机 Ubuntu 默认已经搭建好 TFTP 和 NFS
  • TFTP 中放有 zImage 和 imx6ull-alientek-emmc.dtb(设备树文件)
    我这里 tftp 中放有 zImage 和 imx6ull-alientek-emmc.dtb (正点原子官方提供的,未做更改)两个文件
  • NFS 中放有 rootfs (开发版的系统文件)
    本教程中是从 http://cdimage.ubuntu.com/ 下载的ubuntu-base-16.04.5-base-armhf.tar.gz解压得来,并用QEMU简单做了一些配置,如果还没有这两个文件,请根据教程armUbuntu系统构建 - Jocker博客配置好TFTP和NFS,并将文件放入其中。
  • PC 机 Ubuntu ip 地址为 192.168.1.163
  • tftp 目录为 /home/alientek/tmp/tftp
  • nfs 目录为 /home/alientek/tmp/nfs
  • 开发板 ip地址为 192.168.1.120
    如有需求不一样,下文请替换相应参数

配置开发板uboot下的网络

开发板启动中随便按按键 进入 Uboot 设置

先设置 开发板IP 和 PC机IP

setenv ipaddr 192.168.1.120
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.163
saveenv
  • ipaddr
    开发板 IP 地址
  • ethaddr
    开发板网卡 MAC 地址
  • gatewayip
    开发板默认网关
  • netmask
    开发板子网掩码
  • serverip
    服务器地址,也就是 PC机(Ubuntu) 地址,搭建 tftp 和 nfs 那个机器
  • saveenv
    保存环境变量

设置好环境变量之后,就可以在Uboot中使用网络了

检测开发板是否可以正常访问局域网

ping以下服务器ip看看是否可以正常访问

ping 192.168.1.163

如果提示host 192.168.1.163 is alive 则表示可以正常访问局域网,可以继续后面步骤,如果不行则需要排查网络问题。
PC是无法ping通开发板的,uboot下无法被ping
正点原子的网线一定要插在距离COM3口近的那个网口,这个才是FEC1

使用 tftp 从 PC机(Ubuntu) 中下载 zImage 和 设备树文件,并通过nfs挂载根文件系统

设置 bootcmd 和 bootargs 两个环境变量,使开发板通过tftp下载zImage和设备数文件,并通过nfs访问文件系统,实现网络调试。

setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs \
nfsroot=192.168.1.163:/home/alientek/tmp/nfs/ubuntu_rootfs,proto=tcp rw \
ip=192.168.1.120:192.168.1.163:192.168.1.1:255.255.255.0::eth0:off'

saveenv
bootargs格式参考:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs \
nfsroot=虚拟机 IP 地址:文件系统路径,proto=tcp rw \
ip=开发板 IP 地址:虚拟机 IP 地址:网关:子网掩码::开发板网口:off'
saveenv
设置完成后,执行 boot 指令可以启动挂载。

开发板启动完成后可新建一个文件,在PC机上nfs目录下查看是否存在,以此判断是否挂载成功,实现网络调试