Desde ontem, não consigo mais iniciar o qemu
com um kernel externo compilado no meu laptop (executando o Arch Linux).
Se eu compilar um kernel Linux vanilla (versão 4.13, do repositório github de Linus Torvalds), tente inicializar qemu
desta maneira:
qemu-system-x86_64 --enable-kvm -boot c -kernel arch/x86/boot/bzImage
Isso inicia a exibição, mostrando essa saída do SeaBIOS sendo atualizada a cada 2-3 segundos:
Booting from ROM...
Probing EDD (edd=off to disable)... ok
early console in extract_kernel
input_data: 0x0000000002c773b4
input_len: 0x000000000090c470
output: 0x0000000001000000
output_len: 0x000000000173a968
kernel_total_size: 0x00000000025a7000
Decompressing Linux... Parsing ELF...
Se eu adicionar esses sinalizadores a qemu
para habilitar a saída de depuração do SeaBIOS:
-chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios
Recebo esta saída que continua repetindo: link
Engraçado, se eu compilar o mesmo kernel, com o mesmo arquivo de configuração em outra máquina (rodando o Debian) e copiar o bzImage
para a minha máquina, ele inicializa muito bem. Então eu acho que algo aconteceu no meu toolchain. Houve uma atualização de gcc
recentemente, mas voltar para a versão anterior do pacote (a que eu tinha quando não havia problema) não resolve o problema.
Como uma solução temporária, eu pensei que poderia compilar na máquina Debian usando distcc
para evitar copiar arquivos, mas o problema ainda ocorre, então eu acho que o problema está nas etapas finais do processo de compilação ( da ligação até o fim, já que isso acontece no meu laptop).
Informação adicional:
-
gcc
version no meu laptop (ArchLinux): 8.2.0 (pkg version = 8.2.0-2)
-
gcc
version na minha máquina Debian: 6.3.0 (pkg version = 4: 6.3.0-4)
Editar : saída SeaBIOS concluída