Estou tentando definir uma configuração buildroot (versão 2017.02.4) e preciso separar os problemas relacionados ao kernel dos problemas do ambiente de software.
Então, tentei construir uma imagem de disco simples que funcionará tanto em um ambiente Buildroot quanto em uma máquina real.
Peguei uma configuração genérica, construí-a em uma imagem, converti-a em um vdi e anexei-a a uma VM do Virtualbox.
make pc_x86_64_bios_defconfig
make clean
make
VBoxManage output/images/disk.img output/images/disk.vdi
Esta bota, mas trava em 'Booting Buildroot
'
Eu fiz isso também com um qemu_x86_64_defconfig (ligeiramente modificado para criar uma imagem de disco grub2 usando genimage) e obtive o mesmo resultado. Eu fiz isso antes alguns anos atrás, então não entendo por que não funcionaria agora.
Qual configuração está causando isso para travar?
Os convidados do Virtualbox precisam de um gancho especial para inicializar corretamente?
ATUALIZAÇÃO: Essas imagens parecem funcionar no qemu kvm
, portanto, deve ser um problema de configuração ou especificação do Virtualbox.
O
pc_x86_64_bios_defconfig
parece ser de 64 bits. No Oracle VirtualBox, o suporte de hardware para virtualização (Intel VT-x ou AMD-v) é necessário para todas as VMs de 64 bits, mesmo quando o sistema operacional host é de 64 bits. KVM apenas faz a virtualização de forma diferente.Como a string "Buildroot" não é conhecida pelo Virtualbox, ao criar a máquina oferece o tipo "Other" e a versão "Other/Unknown".
Como o nome parecia muito genérico, presumi que isso significava que era agnóstico bit a bit*.
Sob o capô, esta é uma opção de 32 bits e há uma "versão" chamada "Outro / Desconhecido (64 bits)".
Assim que mudei isso para uma opção de 64 bits, tudo funcionou. Provavelmente funcionou pela metade porque o Grub, sendo inteligente sobre o estado inicial da CPU, é principalmente código de 32 bits.
*Alguns sites implicavam que o VT simplesmente passava o tamanho de bits do host, que no meu caso era de 64 bits, o que complicou ainda mais minhas suposições.