Émuler RaspberryPi à l'aide de QEMU

8

Je voudrais exécuter un système RaspberryPi sur mon MacOSX en utilisant QEMU. J'ai essayé ce qui suit, en utilisant ce tutoriel :

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

D'où ArchLinuxARM-2014.06-rpi.imgvient mon image RPi et d'où kernel.imgvient précisément ArchLinuxARM-2014.06-rpi.img(j'en ai fait une copie, je ne suis pas sûr que ce soit une idée géniale).

Par conséquent, j'obtiens deux fenêtres QEMU. L'un a un menu "Machine" et un "Affichage", et un écran noir affichant le message suivant:

L'invité n'a pas encore initialisé l'affichage.

Le second est simplement une fenêtre noire.

J'ai eu le même problème en utilisant une image Raspbian et la même commande. Qu'est-ce que je fais mal?

JonasVautherin
la source

Réponses:

6
  • Tout d'abord, j'ai dû utiliser un autre noyau, kernel-qemuque j'ai trouvé ici .

  • Ensuite, je pourrais le faire fonctionner en utilisant QEMU 1.7.1 :

    Avec 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

    Avec Arch Linux, je devais:

    1. Commencez en mode terminal (cependant pas sûr si nécessaire) en utilisant:

      ./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

      (Notez que init = / bin / bash a été ajouté ici, et Arch Linux nécessite root = / dev / sda5 au lieu de sda2)

    2. Modifiez /etc/fstabcomme suit (la partition était incorrecte):

      # <file system> <dir>   <type>  <options>       <dump>  <pass>
      /dev/sda1       /boot   vfat    defaults        0       0
      
    3. Commencez normalement en utilisant:

      ./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

  • J'ai finalement réalisé que je pouvais utiliser la dernière version de QEMU (2.1.1) , mais j'ai dû spécifier la sortie de la 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

    (Notez que j'ai spécifié la console en utilisant console = ttyAMA0 )

JonasVautherin
la source
Quelqu'un at-il un lien vers le noyau lié ici - J'ai le même problème et la page a disparu :(
djsmiley2kStaysInside
2
Celui que j'ai utilisé dans ma réponse est ici
JonasVautherin
J'ai essayé de recréer cela avec mon propre ArchLinuxARM-2014.06-rpi.img, mais arch démarre en mode d'urgence. Y a-t-il une chance que cette image traîne encore quelque part? Ou d'autres conseils pour que le système démarre normalement? Il se plaint que / dev / sda1 ne soit pas le bon périphérique de démarrage
rien333