我正在通过 Yocto 的命令在 QEMU 中启动 U-Boot runqemu
,并尝试让 U-Boot 从 FAT 分区加载环境。Yocto 是从master
(312488228ad408fb0f29b2aa272e72cf87de8e93) 分支构建的MACHINE=genericarm64
。
U-Boot 版本是 2024.07,它似乎包含添加从 virtio 接口加载环境的支持的提交,请参阅此StackOverflow 评论。
我已启用以下选项:
CONFIG_ENV_IS_IN_FAT=y
# CONFIG_ENV_IS_IN_FLASH is not set
CONFIG_ENV_FAT_INTERFACE="virtio"
CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
CONFIG_ENV_FAT_FILE="uboot.env"
启用时会出现以下选项CONFIG_ENV_IS_IN_FAT
:
CONFIG_SYS_MMC_ENV_DEV=0
CONFIG_SYS_MMC_ENV_PART=0
我假设设备和部件配置正确,CONFIG_ENV_FAT_DEVICE_AND_PART
因为fatls virtio 0:1
正确列出了分区内容。并且还启用了 FAT 支持:
CONFIG_FS_FAT=y
CONFIG_FAT_WRITE=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
但是我收到不支持 virtio 的错误:
Loading Environment from FAT... ** Bad device specification virtio 0 **
我是否遗漏了某些关键的东西?
定义
genericarm64.conf
如下QB_ROOTFS_OPT
:但将其改为:
使环境加载工作。因此只需将其替换
virtio-blk-pci
为virtio-blk-device
。但我不知道为什么这会使其工作。