You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BeagleBone Black从eMMC启动时,U-Boot命令添加位置咨询

BeagleBone Black eMMC启动时执行U-Boot命令的解决方案

方案一:直接修改并保存U-Boot环境变量

这是快速生效的方式,配置后永久生效(除非U-Boot被更新覆盖):

  • 启动BeagleBone Black时,快速按下空格键或任意键中断U-Boot自动启动,进入U-Boot命令行。
  • 输入修正后的U-Boot命令(注意修正原命令中的变量名笔误:fdrovaddr改为fdtovaddr):
setenv fdtaddr 0x87f00000
setenv fdtovaddr 0x87fc0000
load mmc 1:1 ${fdtaddr} /boot/dtbs/4.14.71-ti-r80/am355x-boneblack-uboot-univ.dtb
load mmc 1:1 ${fdtovaddr} /lib/firmware/PCDEV0.dtbo
fdt addr $fdtaddr
fdt resize 8192
fdt apply $fdtovaddr
  • 执行saveenv命令保存环境变量,重启后这些命令会自动执行。

方案二:修改boot.scr启动脚本(更稳定)

BeagleBone Black启动时会优先加载/boot/boot.scr(由boot.cmd编译生成),修改这个脚本可以确保命令稳定执行:

  1. 在文件系统中创建boot.cmd文件,内容包含你的设备树加载命令,同时保留原有启动流程(示例如下,根据实际内核路径调整):
# 自定义设备树加载命令
setenv fdtaddr 0x87f00000
setenv fdtovaddr 0x87fc0000
load mmc 1:1 ${fdtaddr} /boot/dtbs/4.14.71-ti-r80/am355x-boneblack-uboot-univ.dtb
load mmc 1:1 ${fdtovaddr} /lib/firmware/PCDEV0.dtbo
fdt addr $fdtaddr
fdt resize 8192
fdt apply $fdtovaddr

# 原有系统启动流程(示例,需匹配你的实际内核文件)
load mmc 1:1 ${loadaddr} /boot/vmlinuz-4.14.71-ti-r80
load mmc 1:1 ${ramdiskaddr} /boot/initrd.img-4.14.71-ti-r80
bootz ${loadaddr} ${ramdiskaddr}:${filesize} ${fdtaddr}
  1. 使用mkimage工具将boot.cmd编译为boot.scr:
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Custom Boot Script" -d boot.cmd boot.scr
  1. 将生成的boot.scr替换到/boot/目录下,重启后命令会自动执行。

关于uEnv.txt失效的说明

你的/boot/uEnv.txt未生效,大概率是U-Boot配置中未启用uEnv.txt解析功能,或是文件路径、语法格式不符合要求(比如变量名错误)。上述两种方案可绕过此问题,直接实现需求。

内容的提问来源于stack exchange,提问作者JP Hayes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:05:18