Rodando o kernel recem compilado no QEMU [RESOLVIDO]

1. Rodando o kernel recem compilado no QEMU [RESOLVIDO]

Guilherme Giacomo Simoes
simoes_png

(usa elementary OS)

Enviado em 12/08/2024 - 21:57h

BREVE DESCRICAO DO QUE ESTOU TENTANDO FAZER
Recem compilei o kernel 6.11-rc2 depois de ter feito uma alteracao no subsistema de PCIe.
A compilacao funcionou normalmente, e a instalcao do novo kernel tambem.
Porem, gostaria de testar um simples bridge de PCIe simulando isso com o qemu, mas encontrei dificuldades para iniciar o qemu com o kernel recem compilado.

PASSOS QUE EXECUTEI
Primeiro, criei um initramfs:
mkinitcpio -c /etc/mkinitcpio.conf -g initramfs.img  

Depois criei uma imagem simples
dd if=/dev/zero of=rootfs.img bs=1M count=2048 

Depois criei o file system nessa nova imagem
mkfs.ext4 rootfs.img 

criei um diretorio para fazer uma instalacao simples do Arch Linux
mkdir mnt 

montei a nova imagem nesse diretorio
sudo mount rootfs.img mnt  

Fiz uma isntalacao simples do ARch Linux nesse direotio
sudo pacstrap mnt/ base base-devel 

depois desmontei
sudo umount mnt 

e executei o qemu

qemu-system-x86_64 -kernel arch/x86_64/boot/bzImage \
-append "root=/dev/sda console=ttyS0" \
-hda rootfs.img \
-m 2048 \
-initrd initramfs.img \
-nographic


ERRO RECEBIDO AO TENTAR EXECUTAR O QEMU
[ TIME ] Timed out waiting for device /dev/sda



  


2. MELHOR RESPOSTA

Patrick Ernandes
patrickernandes

(usa Debian)

Enviado em 15/08/2024 - 22:00h

Acredito que seja isso que vc precisa para o sata:

-drive if=none,file=rootfs.img,format=raw,id=disk -device ahci,id=ahci -device ide-drive,drive=disk, bus=ahci.0


flw..

---
Linux para suporte: http://sino.ernandes.info

3. Re: Rodando o kernel recem compilado no QEMU [RESOLVIDO]

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 12/08/2024 - 21:57h

Olá! Vamos analisar o problema e os passos que você executou.

Pelo que você descreveu, você está fazendo tudo corretamente, mas o erro "Timed out waiting for device /dev/sda" indica que o QEMU não consegue encontrar ou acessar o dispositivo que você está tentando inicializar. Isso pode acontecer por algumas razões. Aqui vão algumas sugestões para resolver esse problema:

1. **Verifique o parâmetro `-append`**: O parâmetro `root=/dev/sda` deve apontar para o dispositivo correto. Quando você cria uma imagem de disco com o QEMU, ele pode nomear o disco de forma diferente. Tente usar `root=/dev/vda` em vez de `/dev/sda` na linha de comando.

2. **Configuração do QEMU**: Use a opção `-hda` para especificar qual disco usar. Como você já fez isso, é importante garantir que o QEMU esteja ciente da estrutura do seu sistema de arquivos.

3. **Use uma imagem do initramfs válida**: Certifique-se que a imagem `initramfs.img` foi criada corretamente e que contém os módulos necessários para o seu kernel e as ferramentas para montar o sistema de arquivos.

4. **Verifique a instalação do Arch Linux**: Certifique-se de que a instalação do Arch Linux foi feita corretamente na nova imagem. Você pode montar a imagem de volta e verificar a estrutura do sistema de arquivos para garantir que ela esteja correta


4. Re: Rodando o kernel recem compilado no QEMU [RESOLVIDO]

Patrick Ernandes
patrickernandes

(usa Debian)

Enviado em 13/08/2024 - 23:49h

Jovem,

Talvez esteja faltando parâmetros no seu "mkinitcpio.conf"?
Veja se isso lhe ajuda:

https://m47r1x.github.io/posts/linux-boot


---
Linux para suporte: http://sino.ernandes.info


5. Re: Rodando o kernel recem compilado no QEMU [RESOLVIDO]

Guilherme Giacomo Simoes
simoes_png

(usa elementary OS)

Enviado em 15/08/2024 - 15:11h


patrickernandes escreveu:

Jovem,

Talvez esteja faltando parâmetros no seu "mkinitcpio.conf"?
Veja se isso lhe ajuda:

https://m47r1x.github.io/posts/linux-boot


---
Linux para suporte: http://sino.ernandes.info


Pois abri esse link, e realmente talvez tenha faltado alguns parametros no meu mkinitcpio.conf. Porem, inclui os parametros e mesmo assim o mesmo problema persistiu.
O proprio autor desse blog, mencionou que o problema pode ser resolvido emulando uma entrada SATA que seria feito substituindo o parametro -hda da linha de comando do qemu. Ele deixou um link onde explica como efetuar essa mudanca e tentar resolver o problema da espera infica pelo /dev/sda, mas o link esta fora do ar kk

MAs como ele disse que precisamos simular uma conexao de SATA , entao eu tenho um norte e posso pesquisar e ler sobre como fazer isso.

Obrigado



6. Re: Rodando o kernel recem compilado no QEMU [RESOLVIDO]

Guilherme Giacomo Simoes
simoes_png

(usa elementary OS)

Enviado em 15/08/2024 - 22:22h


patrickernandes escreveu:

Acredito que seja isso que vc precisa para o sata:

-drive if=none,file=rootfs.img,format=raw,id=disk -device ahci,id=ahci -device ide-drive,drive=disk, bus=ahci.0


flw..

---
Linux para suporte: http://sino.ernandes.info


E exatamente isso, eu fiz aqui e deu certo.
Agradeco muito pela sua ajuda.


7. Re: Rodando o kernel recem compilado no QEMU [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 15/08/2024 - 22:56h


simoes_png escreveu:
...Agradeco muito pela sua ajuda.

Sugestão: marque o tópico como resolvido e escolha a resposta que pra vc foi a melhor. Isso é uma forma simples de gratidão pela ajuda, além de ficar gravada no histórico do perfil de quem lhe ajudou.