Emular o RaspberryPi usando o 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" -serial stdio

Onde ArchLinuxARM-2014.06-rpi.img é minha imagem RPi e kernel.img é precisamente proveniente de ArchLinuxARM-2014.06-rpi.img (eu fiz uma cópia dela, mas não tenho certeza se foi uma ideia brilhante).

Eu obtive duas janelas QEMU como resultado. Um deles tem um menu "Máquina" e um "Visualizar" e uma tela preta mostrando a seguinte mensagem:

Guest has not initialized the display (yet).

O segundo é simplesmente uma janela preta.

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

    
por JonesV 22.09.2014 / 13:27

1 resposta

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

  • Então, eu poderia fazer isso 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, tive que:

    1. Inicie no modo de terminal (não tenho certeza se necessário) 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 init=/bin/bash" -hda /path/to/ArchLinuxARM-2014.06-rpi.img

      (Note que init = / bin / bash foi adicionado aqui, e o Arch Linux requer root = / dev / sda5 ao invés de sda2)

    2. Modifique /etc/fstab da seguinte forma (a partição estava errada):

      # <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

  • Eu finalmente percebi que eu poderia usar a última versão do QEMU (2.1.1) , mas eu tinha que especificar a saída do console:

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

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

por 06.10.2014 / 20:20