Link para o Tutorial 2: Building and booting a custom Linux kernel for ARM using kw

Nesse tutorial aprendemos a compilar o kernel linux e depois realizar um boot em um máquina virtual utilizando esse kernel.

Seguindo o conceito do blog vou discorrer apenas sobre os pontos do tutorial em que tive algum tipo de problema.

Passo 3:

Na primeira vez que segui o tutorial defini o IP da VM para o IP obtido através do comando:

sudo virsh net-dhcp-leases default

Que dentre as outras informações retornados, temos o IP 192.168.122.24/24, então rodei:

kw remote --add arm64 root@192.168.122.24 --set-default

Segui o tutorial até o passo 5 mas precisei desligar a minha máquina para tratar de outro assunto, quando retomei o tutorial notei que o comando kw ssh estava falhando pois o IP definido não estava correto, executei o comando sudo virsh net-dhcp-leases default novamente o obtive o IP 192.168.122.166. Então configurei o kw para utilizar o novo IP:

kw remote --add arm64 root@192.168.122.166 --set-default

Passo 4:

Ao executar o comando kw ssh --get '~/vm_mod_list' me deparei com o seguinte erro:

bash: line 1: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(232) [Receiver=3.2.7]
An error occurred while uploading the file(s). rsync return code: 12

Após uma breve pesquisa entendi que isso estava ocrrendo pela falta da ferramenta rsync na VM, o que foi rapidamente resolvido através da instalação da mesma:

sudo apt update
sudo apt install rsync

Passo 6:

Ao executar kw deploy --modules me deparei com alguns erros além dos erros apontados pelas ferramentas strip e make:

log mostrando erro rodar kw deploy --modules

Mas o deploy finalizou com sucesso.

De inicio achei que o boot utilizando o novo kernel não tinha funcionado, pois fiz as alterações nos scripts launch_vm_qemu e create_vm_virsh e quando executei as funções não obtive nenhum log. O que me fez “criar” mais duas funções launch_vm_qemu_original e create_vm_virsh_original que utilizam o kernel obtido da imagem baixada no Tutorial 1 e essas rodaram com sucesso. O que me fez pensar que o novo kernel poderia estar com problema, então refiz o tutorial para garantir que não pulei nenhuma etapa e mesmo assim o problema continou. A solução para esse caso é subir a VM e aguardar alguns momentos, já que não sabemos o que está acontecendo pela falta de logs, então entrar nela via ssh para verificar que novo kernel estava lá:

evidência de filesystem compartilhado

Considerações finais

Achei o tutorial bem explicativo, no geral nenhum dos problemas encontrados foi complicado de resolver.