Я построил образ для моего Jetson Nano с помощью yocto, используя слой meta-tegra.
Эта сборка использует u-boot в качестве загрузчика, который настроен на сохранение среды на разделе MMC (mmcblk0p14).
gdisk -l /dev/mmcblk0
показывает следующее:
Number Start (sector) End (sector) Size Code Name
...
14 20996096 20998143 1024.0 KiB 8300 UBOOTENV
...
И размер сектора составляет 512.
Затем я настроил u-boot-tegra/include/configs/p3450-porg.h
с:
...
/* Env is located in it's own partition */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 1
#define CONFIG_ENV_OFFSET (20996096 * 512)
...
Где CONFIG_ENV_OFFSET
= Start_Sector * Block_Size
Это прекрасно работает (насколько я вижу), поскольку среда успешно сохраняется в MMC при использовании saveenv
.
Однако среда, которую я получаю, когда печатаю ее в оболочке u-boot, НЕ является той же, что и при печати среды с помощью инструмента fw_printenv
u-boot. Я установил /etc/fw_env.config
на:
# Device name Device offset Env size
/dev/mmcblk0p14 0 0x2000
Итак, я понял, что либо fw_env.config
задан неправильно, либо среда u-boot сохраняется где-то еще в MMC, и нетраздел 14.
У кого-нибудь есть предложения, что я могу попробовать?
*****************************************************РЕДАКТИРОВАТЬ:*****************************************************
Выполнение dd if=/dev/mmcblk0p14 of=tmp.txt
и чтение tmp.txtФайл показывает среду, которую показывает fw_printenv
, а не среду, которую я вижу в оболочке u-boot.
Так что, возможно, что-то не так в конфигурации u-boot-tegra/include/configs/p3450-porg.h
. Мне просто интересно, куда это на самом деле записывает окружение, когда я делаю saveenv
...
Любая идея, что я могу попытаться изменить?