我使用imx.6 sabresd板,它可以使用SD卡或emmc启动。我可以使用u-boot正确引导linux,并为rootfs提供正确的bootargs。 但是当使用eMMC启动Linux时,当未插入SD卡时,当SD卡插入/ dev / mmcblk0时,设备名称会从/ dev / mmcblk1更改。
现在,当我不知道要使用哪个设备时,如何使用bootargs参数在u-boot中提供正确的root =?
当然我可以在u-boot中做一些测试来检查是否插入了SD卡并更改了bootargs参数(只是一个想法但尚未测试)但实际上我希望有一个更优雅的解决方案这个? 有什么建议吗?
答案 0 :(得分:0)
如果你的内核和rootfs位于同一台设备(sd-card或emmc),你可以先尝试从sd-card然后再从emmc开始系列启动。看到想法:
boot_sdcard=setenv bootargs 'root=/dev/mmcblk1 ...'; run load_kernel_sdcard; bootm
boot_emmc=setenv bootargs 'root=/dev/mmcblk0 ...'; run load_kernel_emmc; bootm
bootcmd=run boot_sdcard; run boot_emmc
如果没有SD卡并且u-boot继续启动emmc,内核将无法启动。