У меня BBB и успешно прошил MMC на плате. Он прекрасно загружается из mmc, пока вставлена SD-карта. Если SD-карта не вставлена, загрузочное устройство mmc изменится с mmcblk1p2 на mmcblk0p2, и процесс загрузки зависнет. Есть ли способ изменить файл uEnv.txt, соответственно, что он берет mmcblk1p2, если SD-карта вставлена, и mmcblk0p2, если SD-карта отсутствует, без необходимости перестраивать 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.