带eMMC的树莓派计算模块4加J2跳线仍从eMMC启动,如何设置SD卡启动
树莓派CM4实现SD卡启动的配置方法
现象对应原理说明
你目前测试到的跳线现象属于完全正常的硬件逻辑:
- 载板J2位置的跳线本质是eMMC供电使能开关,加装跳线时eMMC供电被切断,此时CM4没有可识别的内置启动介质,自然完全无引导反应;移除跳线后eMMC供电恢复,芯片按照默认启动优先级直接从内置eMMC引导。
- CM4出厂默认固化的启动优先级为eMMC优先于SD卡,这个优先级无法通过外置硬件跳线直接修改,必须通过固件层面调整启动配置才能实现SD卡优先引导。
具体配置操作步骤
- 第一步:验证SD卡本身的可引导能力
不要仅以Imager烧录完成提示为判定标准,将烧录好的SD卡插入无内置eMMC的常规树莓派设备,确认可以正常引导进入系统,排除镜像不兼容CM4、SD卡烧录损坏的基础问题。 - 第二步:临时调整启动优先级(无需修改硬件烧写位)
从当前可正常启动的eMMC系统进入系统后,打开/boot/firmware/config.txt配置文件,在文件末尾追加如下配置:
参数含义:该配置将临时调整启动顺序为「SD卡优先检索 > 回落eMMC启动」,开机时先扫描SD卡的可引导分区,检测到有效引导内容则从SD卡启动;若SD卡无引导内容则自动切换到eMMC启动。设备回到默认的eMMC优先逻辑时,该参数值为boot_order=0xf120xf21。 - 第三步:永久固化启动优先级(避免配置失效)
在eMMC可正常运行的系统中,执行rpi-eeprom-config工具修改EEPROM固件配置:
在弹出的编辑界面中将sudo rpi-eeprom-config --editBOOT_ORDER字段修改为0xf12,保存退出后系统会自动重启更新EEPROM配置。后续设备无需额外修改config.txt,就会默认按照SD卡优先的逻辑检索启动介质。
常见排查注意事项
- 不要试图通过加装外置跳线强制切断eMMC供电来触发SD卡引导,CM4芯片没有设计硬件层面的eMMC启动强制禁用引脚,切断eMMC供电只会让设备失去启动源,不会触发SD卡引导流程。
- 如果你的载板为第三方自研载板,需要确认载板的SD卡座引脚已经和CM4的对应SD功能引脚正确连通,部分载板会因为引脚复用配置错误,导致CM4无法识别插入的SD卡。
- 如果当前eMMC内没有可正常运行的完整系统,可以通过rpiboot工具将CM4连接到Ubuntu主机,直接加载EEPROM更新镜像完成启动优先级配置,无需依托eMMC内的完整系统即可操作。
内容的提问来源于stack exchange,提问作者Johan Alexis Duque Cadena
相关产品推荐
相关产品推荐

