U-Boot 环境变量设置指南


本指南提供在 U-Boot 中设置网络和启动环境变量的步骤,以解决常见错误。

1 解决 serverip 未设置错误

在 U-Boot 中收到 “ ERROR: serverip not set" 错误通常是因为没有设置 TFTP 服务器的 IP 地址。要解决这个问题,需要正确设置 serverip 环境变量。

1.1 设置 serverip

首先,在 U-Boot 命令行中设置 serverip,这是 TFTP 服务器的 IP 地址,例如:

setenv serverip 192.168.31.128

这个命令将 TFTP 服务器的 IP 地址设置为 192.168.31.128

1.2 设置 ipaddr

然后,设置开发板自身的 IP 地址:

setenv ipaddr 192.168.31.130

这个命令将开发板的 IP 地址设置为 192.168.31.130,确保它在网络中是唯一的。

1.3 设置其他网络参数

为了确保网络通信正常,还需要设置其他网络参数,如网关和子网掩码:

setenv gatewayip 192.168.31.1
setenv netmask 255.255.255.0

这些命令分别设置默认网关为 192.168.31.1 和子网掩码为 255.255.255.0

1.4 保存环境变量

最后,使用以下命令保存这些环境变量,以确保在设备重启后仍然有效:

saveenv

saveenv 命令将当前设置保存到非易失性存储器中。

2 解决 ethaddr 未设置错误

在 U-Boot 中收到 “ ERROR: ethaddr not set” 错误,表示没有设置以太网的 MAC 地址。要解决这个问题,需要正确设置 ethaddr 环境变量。

2.1 设置 ethaddr

在 U-Boot 命令行中输入以下命令来设置 ethaddr

setenv ethaddr CE:99:D5:3E:A1:D8

请注意,CE:99:D5:3E:A1:D8 是一个示例 MAC 地址。可以将其替换为设备的实际 MAC 地址。

2.2 保存环境变量

设置完成后,使用以下命令保存这些设置,以确保下次启动时仍然有效:

saveenv

2.3 验证设置

为了验证设置是否成功,重启设备并在 U-Boot 启动时使用以下命令查看 ethaddr

printenv ethaddr

如果显示出刚刚设置的 MAC 地址,说明设置成功。

3 设置 bootcmdbootargs

要在 U-Boot 中正确设置 bootcmdbootargs 环境变量,可以按照以下步骤进行:

3.1 设置 bootcmd

在 U-Boot 命令行中,输入以下命令以设置 bootcmd 环境变量:

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

这个命令会通过 TFTP 协议从服务器下载内核镜像 zImage 和设备树文件 imx6ull-alientek-emmc.dtb

3.2 设置 bootargs

接着,输入以下命令以设置 bootargs 环境变量:

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.31.128:/home/witheart/linux/nfs/rootfs ip=192.168.31.130:192.168.31.128:192.168.31.1:255.255.255.0::eth0:off'

在这个配置中,指定了内核启动时的控制台、使用 NFS 作为根文件系统等。

  • 其中:
    • nfsroot=192.168.31.128:/home/witheart/linux/nfs/rootfs 这个 ip 是服务器 ip
    • ip=192.168.31.130:192.168.31.128:192.168.31.1:255.255.255.0 分别为 U-Boot 自身 ip、服务器 ip、网关地址、子网掩码

3.3 保存环境变量

为了确保这些环境变量在设备重启后依然有效,使用以下命令保存设置:

saveenv

4 总结

通过设置 serveripipaddrgatewayipnetmaskethaddrbootcmdbootargs,并保存这些设置,应该可以正确设置 U-Boot 的网络。


参考链接

封面

由 DALL-E-3 生成
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__Witheart__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值