Rodando o kernel recem compilado no QEMU [RESOLVIDO]

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

Guilherme Giacomo Simoes
simoes_png

(usa Arch Linux)

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 Arch Linux)

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 Arch Linux)

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.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts