Estou inicializando o U-Boot no QEMU via runqemu
comando do Yocto e estou tentando fazer o U-Boot carregar um ambiente da partição FAT. O Yocto é construído a partir master
do branch (312488228ad408fb0f29b2aa272e72cf87de8e93) com MACHINE=genericarm64
.
A versão do U-Boot é 2024.07, que parece conter o commit que adiciona suporte para carregar um ambiente da interface virtio, veja este comentário do StackOverflow.
Habilitei as seguintes opções:
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"
as seguintes opções vieram junto quando habilitado CONFIG_ENV_IS_IN_FAT
:
CONFIG_SYS_MMC_ENV_DEV=0
CONFIG_SYS_MMC_ENV_PART=0
Presumo que o dispositivo e a configuração da parte estejam corretos, CONFIG_ENV_FAT_DEVICE_AND_PART
pois fatls virtio 0:1
listam o conteúdo da partição corretamente. E o suporte a FAT também está habilitado:
CONFIG_FS_FAT=y
CONFIG_FAT_WRITE=y
CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
Mas recebo o erro de que virtio não é suportado:
Loading Environment from FAT... ** Bad device specification virtio 0 **
Estou esquecendo de algo crucial aqui?
O
genericarm64.conf
defineQB_ROOTFS_OPT
assim:mas mudando para isto:
faz o ambiente carregar o trabalho. Então só precisava substituir
virtio-blk-pci
porvirtio-blk-device
. Mas não sei por que isso faz funcionar.