跳到主要内容

U-Boot 常用环境变量速查

不同平台的 environment 差异很大。本页列出教程中常见变量,帮助你读懂启动脚本。

变量说明
bootcmd自动启动时执行的命令
bootdelay自动启动等待时间
bootargs传给 Linux kernel 的命令行参数
kernel_addr_rkernel 加载地址
fdt_addr_rDTB 加载地址
ramdisk_addr_rinitramfs/initrd 加载地址
scriptaddrboot script 加载地址
pxefile_addr_rPXE/extlinux 配置加载地址
serveripTFTP/NFS server IP
ipaddrU-Boot 本机 IP
ethaddr网卡 MAC 地址
stdinstdoutstderrconsole 输入输出设备
filesize最近一次加载文件的大小
fileaddr最近一次加载文件的地址,取决于命令支持
boot_targetsStandard Boot 常用启动目标顺序
bootmethsStandard Boot 启动方法顺序或子集
bootfile网络启动默认文件名
gatewayip网关 IP,网络启动时可能使用
netmask子网掩码
autoloadDHCP 后是否自动加载文件,配置相关
bootcount启动计数,具体后端取决于配置
bootlimit启动失败限制,配合 bootcount
altbootcmdbootlimit 超限后执行的备用启动命令

常见查看方式:

# [U-Boot]
printenv bootcmd bootargs kernel_addr_r fdt_addr_r ramdisk_addr_r

临时设置:

# [U-Boot]
setenv bootargs "console=ttyAMA0 root=/dev/vda2 rw rootwait"

删除变量:

# [U-Boot]
setenv my_temp_var
备注

环境变量是启动流程的“配置层”。如果手动命令能启动,而自动启动失败,优先检查 bootcmd 和相关脚本变量。

脚本变量示例

# [U-Boot]
setenv load_kernel 'load mmc 0:1 ${kernel_addr_r} /boot/Image'
setenv load_fdt 'load mmc 0:1 ${fdt_addr_r} /boot/<board>.dtb'
setenv boot_linux 'booti ${kernel_addr_r} - ${fdt_addr_r}'
setenv bootcmd 'run load_kernel load_fdt boot_linux'

需要运行时展开的变量,通常用单引号定义。

保存前检查

执行 saveenv 前至少确认:

  • environment 存储位置正确。
  • 当前变量不是临时调试值。
  • 有恢复默认环境的方法。
  • 有设备恢复方案。