我有一个BBB,并成功将MMC刷新到板上。只要插入SD卡,它就可以从mmc启动。如果未插入SD卡,则mmc引导设备将从mmcblk1p2更改为mmcblk0p2,并且引导过程将挂起。有没有一种方法可以相应地更改uEnv.txt,如果插入了SD卡,则需要花费mmcblk1p2;如果不存在SD卡,则需要花费mmcblk0p2,而无需重建uBoot?
我的uEnv.txt看起来像这样,然后插入了SD卡。
uname_r=4.1.36-bone24
dtb=am335x-boneblack-emmc-overlay.dtb
optargs="consoleblank=0"
mmcdev=1
mmcpart=2
它可以正常启动。
如果我将uEnv.txt更改为此:
uname_r=4.1.36-bone24
dtb=am335x-boneblack-emmc-overlay.dtb
optargs="consoleblank=0"
mmcdev=0
mmcpart=2
BBB在没有插入SD卡的情况下启动。
从beaglebone的调试中,我看到uEnv.txt已加载
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
105 bytes read in 18 ms (4.9 KiB/s)
Loaded environment from /boot/uEnv.txt
我在uEnv.txt中尝试了不同的配置。但这些似乎没有影响。
uname_r=4.1.36-bone24
dtb=am335x-boneblack-emmc-overlay.dtb
optargs="consoleblank=0"
bootpartition=mmcblk0p2
set_mmc1=if mmc rescan; then setenv bootpartition mmcblk1p2; fi
set_bootargs=setenv bootargs console=ttyO0,115200n8 root=/dev/${bootpartition} ro rootfstype=ext4 rootwait
uenvcmd=run set_mmc1; run set_bootargs;printenv bootargs
我也尝试过:
uname_r=4.1.36-bone24
dtb=am335x-boneblack-emmc-overlay.dtb
optargs="consoleblank=0"
if mmc rescan;then setenv mmcdev 1;else setenv mmcdev 0;fi
mmcpart=2
我还尝试将uEnv.txt放入SD卡。 看起来像这样:
mmcdev=1
bootpart=1:2
mmcroot=/dev/mmcblk1p2 ro
optargs=quiet
我在网上搜索,但找不到答案。如果有人可以告诉我这是否可行,那就太好了。或者,如果有人在哪里可以找到很好的文档资料或uEnv.txt的示例。