声明
本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,旨在如实记录我在学校学习该开发板过程中所遭遇的各类问题以及详细的解决办法。其初衷纯粹是为了个人知识梳理、学习总结以及日后回顾查阅方便,同时也期望能为同样在学习这款开发板的同学或爱好者提供一些解决问题的思路和参考。
内容来源:笔记中的所有问题及解决方法均来自于我在实际操作开发板、研读相关资料(包括但不限于正点原子官方教程、技术文档、论坛交流,AI等)以及与老师和同学探讨过程中的真实经历。我尽力保证内容的准确性和可靠性,但由于个人知识水平和实践经验有限,若存在错误或不严谨之处,恳请各位读者批评指正。
责任声明:虽然我力求提供有效的问题解决办法,但由于开发板使用环境、硬件差异、软件版本等多种因素的影响,我的笔记内容不一定适用于所有情况。对于因参考本笔记而导致的任何直接或间接损失,我不承担任何法律责任。使用本笔记内容的读者应自行承担相关风险,并在必要时寻求专业技术支持。
当开发环境更换路由器后,U-Boot 的网络配置(如 IP、网关、NFS 服务器地址)可能需要调整,否则会导致以下问题:
无法通过 TFTP 加载内核/设备树
无法挂载 NFS 根文件系统
网络不通,无法与主机通信
本文档介绍如何在 U-Boot 中重新配置网络参数,并确保 NFS 挂载正常。
需要更新的参数
更换路由器后,以下参数通常需要修改:
ipaddr、serverip、gatewayip、netmask、bootargs中的 NFS 配置以及乌邦图下的nfs配置修改。
记得找当前路由器的LAN口ip,根据新的路由器ip进行配置
连上wifi,ipconfig ,192.168.0.1就是我的虚拟路由器的LAN口ip
对于如何配置uboot网络详情参见Uboot网络配置步骤及bug解决方法-优快云博客。
然后修改 bootargs 环境变量,确保 nfsroot 和 ip 参数与新的网络环境匹配。
格式如下:
root=/dev/nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] ip=<client-ip>:<server-ip>:<gwip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
<server-ip>:服务器 IP 地址,也就是存放根文件系统主机的 IP 地址,那就是 Ubuntu 的 IP地址。
<root-dir>:根文件系统的存放路径,比如我的就是/home/mayachao/linux/nfs/rootfs。
<nfs-options>: NFS 的其他可选选项,一般不设置。
<client-ip>: 客户端 IP 地址,也就是我们开发板的 IP 地址, Linux 内核启动以后就会使用此 IP 地址来配置开发板。此地址一定要和 Ubuntu 主机在同一个网段内,并且没有被其他的设备使用,在 Ubuntu 中使用 ping 命令 ping 一下就知道要设置的 IP 地址有没有被使用,如果不能ping 通就说明没有被使用,那么就可以设置为开发板的 IP 地址。
<server-ip>: 服务器 IP 地址,192.168.0.48。
<gw-ip>: 网关地址,我的就是 192.168.0.1。
<netmask>:子网掩码,我的就是 255.255.255.0。
<hostname>:客户机的名字,一般不设置,此值可以空着。
<device>: 设备名,也就是网卡名,一般是 eth0, eth1….,正点原子的 I.MX6U-ALPHA 开发板的 ENET2 为 eth0, ENET1 为 eth1。如果你的电脑只有一个网卡,那么基本只能是 eth0。这里我们使用 ENET2,所以网卡名就是 eth0。
<autoconf>: 自动配置,一般不使用,所以设置为 off。
<dns0-ip>: DNS0 服务器 IP 地址,不使用。
<dns1-ip>: DNS1 服务器 IP 地址,不使用。
接下来介绍修改nfs的配置:
sudo nano /etc/exports
/home/mayachao/linux/nfs/rootfs 新的ipaddr (rw,sync,no_root_squash)
重新加载配置:
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
总结
更换路由器后,需在 U-Boot 中更新:
1. 网络参数(ipaddr、serverip、gatewayip)。
2. bootargs 中的 NFS 配置(nfsroot 和 ip)。
3. 验证 TFTP/NFS 连通性。
确保主机 NFS 服务配置正确,并放行相关防火墙端口。对于放行防火墙一般没什么问题,因为之前NFS和tftp功能正常,若是初次配置则需要设置:
开放 NFS 相关端口:
sudo ufw allow from 192.168.0.49 to any port nfs # Ubuntu
sudo firewall-cmd --reload