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

如何让U-Boot通用检测U盘任意分区中的boot.scr脚本

实现U-Boot检测U盘任意分区的boot.scr脚本

当前U-Boot通过CONFIG_EXTRA_ENV_SETTINGS宏配置的环境变量仅检测U盘第一个分区(usb 0:1)中的boot.scr脚本。以下是修改后的配置,实现遍历U盘所有分区查找并执行该脚本:

"usb_scan_bootscript=setenv part 1; while test ${part} -le 10; do " \
    "if load usb 0:${part} ${scriptaddr} ${bsp_script}; then " \
        "source ${scriptaddr}; setenv part 11; " \
    "else " \
        "setexpr part ${part} + 1; " \
    "fi; " \
"done\0" \
"usb_bootcmd=usb start ; run usb_scan_bootscript; usb stop;\0" \
"bsp_bootcmd=echo Running BSP bootcmd ...; " \
    "run usb_bootcmd " \
    "mmc dev ${mmcdev}; if mmc rescan; then " \
       "if run loadbootscript; then " \
           "run bootscript; " \
       "else " \
           "if run loadimage; then " \
               "run mmcboot; " \
           "else run netboot; " \
           "fi; " \
       "fi; " \
   "fi;"

关键改动说明

  • 新增usb_scan_bootscript命令:
    • 初始化分区计数器part为1
    • 通过while循环遍历最多10个分区(可根据实际需求调整分区上限值)
    • 对每个分区尝试执行load命令加载boot.scr,成功则立即执行脚本并设置part为11终止循环
    • 加载失败则自动递增分区号,继续尝试下一个分区
  • 修改usb_bootcmd:启动USB控制器后调用遍历脚本,无论是否找到脚本,最后统一停止USB设备

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:43:11