Emular RaspberryPi usando QEMU

8

Gostaria de executar um sistema RaspberryPi no meu MacOSX usando o QEMU. Eu tentei o seguinte, usando este tutorial :

./qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda ArchLinuxARM-2014.06-rpi.img -kernel kernel.img -append "root = / dev / sda" -sdial stdio

De onde ArchLinuxARM-2014.06-rpi.imgvem minha imagem RPi e com kernel.imgprecisão ArchLinuxARM-2014.06-rpi.img(eu fiz uma cópia dela, não tenho certeza se foi uma ideia brilhante).

Recebo duas janelas QEMU como resultado. Um deles possui um menu "Máquina" e "Visualização" e uma tela preta mostrando a seguinte mensagem:

O convidado ainda não inicializou a exibição.

O segundo é simplesmente uma janela preta.

Eu tive o mesmo problema usando uma imagem Raspbian e o mesmo comando. O que estou fazendo errado?

JonasVautherin
fonte

Respostas:

6
  • Primeiro de tudo, eu tive que usar outro kernel, kernel-qemuque encontrei aqui .

  • Então, eu poderia fazê-lo funcionar usando o QEMU 1.7.1 :

    Com Raspbian:

    ./qemu-system-arm -kernel / path / to / kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root = / dev / sda2 panic = 1 rootfstype = ext4 rw" -hda /path/to/2013-12-20-wheezy-raspbian.img

    Com o Arch Linux, eu tive que:

    1. Inicie no modo terminal (embora não tenha certeza se necessário) usando:

      ./qemu-system-arm -kernel / caminho / para / kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append " root = / dev / sda5 panic = 1 rootfstype = ext4 rw init = / bin / bash "-hda /path/to/ArchLinuxARM-2014.06-rpi.img

      (Observe que init = / bin / bash foi adicionado aqui e o Arch Linux requer root = / dev / sda5 em vez de sda2)

    2. Modifique da /etc/fstabseguinte maneira (a partição estava incorreta):

      # <file system> <dir>   <type>  <options>       <dump>  <pass>
      /dev/sda1       /boot   vfat    defaults        0       0
      
    3. Comece normalmente usando:

      ./qemu-system-arm -kernel / path / to / kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root = / dev / sda5 panic = 1 rootfstype = ext4 rw" -hda /path/to/ArchLinuxARM-2014.06-rpi.img

  • Finalmente percebi que poderia usar a versão mais recente do QEMU (2.1.1) , mas precisava especificar a saída do console:

    ./qemu-system-arm-caminho do kernel / para / kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -sdial stdio -append " console = root ttyAMA0 = / dev / sda5 rootfstype = ext4 rw" - hda /path/to/ArchLinuxARM-2014.06-rpi.img

    (Observe que eu especifiquei o console usando console = ttyAMA0 )

JonasVautherin
fonte
Alguém tem um link para o kernel ligado aqui - Eu tenho o mesmo problema ea página é gone :(
djsmiley2kStaysInside
2
O que eu usei na minha resposta está aqui
JonasVautherin
Tentei recriar isso com meu próprio ArchLinuxARM-2014.06-rpi.img, mas o arch inicializa no modo de emergência. Alguma chance de você ter essa imagem ainda em algum lugar? Ou alguma outra dica para iniciar o sistema normalmente? Ele reclama de / dev / sda1 não sendo o dispositivo de inicialização correto
rien333