Relato Tutorial 1
Link para o Tutorial 1: Setting up a test environment for Linux Kernel Dev using QEMU and libvirt
Como o próprio nome já diz, o primeiro tutorial nos ensina a realizar o setup inical do QEMU e do libvirt para desenvolvimento do Kernel Linux.
- QEMU: Emulador utilizado para subir máquinas virtuais.
- libvirt: Gerenciador de máquinas virtuais.
- Kernel Linux: Núcleo utilizado por diversos sistemas operacionais.
Já que a finalidade desse blog é contar como foi a minha experiência seguindo o tutorial, vamos lá…
PS: Vou fazer comentários apenas sobre os passos em que tive algum tipo de problema.
Passo 1:
Tive problemas para inserir o usuário no grupo libvirt-qemu. No tutorial é informado que basta fazer logout + login e seguir, mas precisei reiniciar minha máquina para que as configurações fossem persistidas.
Passo 2:
Passo 2.1: O único problema que tive foi para baixar a imagem. A imagem informada no tutorial não está mais disponível, então baixei a http://cdimage.debian.org/cdimage/cloud/bookworm/daily/latest/debian-12-nocloud-arm64-daily.qcow2.
Passo 2.3: cometi um erro no script launch_vm_qemu, invés de vda2 coloquei <vda2> sem perceber, ai estava tomando o seguinte erro:
...
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
done.
Gave up waiting for root file system device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/<vda2> does not exist. Dropping to a shell!
(initramfs) ^[[Aqemu-system-aarch64: terminating on signal 15 from pid 9100 ()Acabei demorando um pouco para perceber que o erro era por conta dos sinais de maior que e menor que. Mas no final consegui subir a vm com sucesso:

Passo 3:
Para que esse passo desse certo precisei instalar o openssh-server na vm e iniciar o serviço do ssh:
sudo apt-get update
sudo apt-get install openssh-server
sudo systemctl enable sshPasso 5:
Fiquei um pouco confuso sobre onde era para rodar o comando, já que no tutoral não existe indicação de @host nem de @VM no snippet:
sudo EDITOR=vim; sudo virsh edit iio-arm64Porém fica evidente que deveria ser no host devido ao uso do comando virsh.
Além disso o nome io-arm64 não segue o padrão arm64 adotado no resto do tutorial, o que também deixa um pouco confuso.
Após rodar o comando e instalar o virtiofs no host tive que reiniciar a vm para que a configuração do filesystem compartilhado fosse persistida. O que funcionou perfeitamente:

Considerações finais
Achei o tutorial bem explicativo, no geral nenhum dos problemas encontrados foi complicado de resolver.