我已经使用 meta-tegra 层使用 yocto 为我的 Jetson Nano 构建了一个图像。
此版本使用 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
这很好用(据我所知),因为当我使用saveenv
.
但是,我在 u-boot shell 中打印它时得到的环境与我使用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 shell 中看到的环境。
所以配置中一定有问题u-boot-tegra/include/configs/p3450-porg.h
。我只是想知道当我执行saveenv
...时它实际上将环境写入何处
知道我可以尝试改变什么吗?