Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Emuler une Raspberry pi sur un linux avec QEMU

Par Kevin TAVENETAT Publié le 16/09/2017 à 18:24:17 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Présentation rapide de QEMU

QEMU est un programme open source qui permet d'émuler ou de virtualiser une machine (un peu comme Virtual Box ou VMware).

Son intérêt principal est d'être moins lourd et surtout de permettre d'émuler des architecture ARM (c'est ce que nous utiliserons), ce qui fais qu'il est surtout utilisé dans l'électronique embarquée.

QEMU est distribué sous licence "GNU General Public Licenses": http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Téléchargement des ressources

Premièrement nous devons avoir QEMU pour cela un simple apt-get suffiras (J’utilise Parrot comme distrib linux pendant cette installation) :

$ apt-get update

$ apt-get install qemu-system-arm

Vous aurez besoin de pouvoir émuler un ARM1176 sur QEMU pour vérifier que votre QEMU le supporte bien, tapez:

$ qemu -arm -cpu ? | grep arm

vous devriez avoir quelque chose comme ça:

si vous voyez bien le arm1176 c'est bon.

Ensuite il nous faut télécharger l'image de Raspbian (l'os de base de la Raspberry mais vous pouvez faire la manip avec une autre distrib) :https://www.raspberrypi.org/downloads/raspbian/

pour finir il nous faut le kernel de la Raspberry pi que nous pouvons prendre avec cette adresse: https://github.com/dhruvvyas90/qemu-rpi-kernel

ou directement depuis le shell: $git clone https://github.com/dhruvvyas90/qemu-rpi-kernel.git

Déplacer tous les fichiers dans le même dossier et dézipper l'image Raspbian (si elle est en .zip biensur...).

Vous devriez avoir un dossier avec:

-votre image Raspbian

-le dossier avec les kernels

Nous pouvons maintenant passer à la configuration !

Configuration

Maintenant on vas pouvoir lancer QEMU, pour cela (placez vous dans le bon dossier avec cd /path/to/folder) :

$ qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda 2017-09-07-raspbian-stretch.img

Attention à mettre le bon nom correspondant à ce que vous avez téléchargé !

vous aurez une fenêtre avec un shell:

Maintenant vous devez faire quelque changement pour que la Raspberry Pi boot correctement.

ouvrez: (dans le shell de la Raspberry Pi , remarque: si votre souris est bloquée dessus ctrl +alt pour quitter)

$ nano /etc/ld.so.preload

et commentez la seule ligne dans le fichier avec un # (maj + 3 en qwerty)

Enregistrez avec ctrl + X et validez.

Maintenant il faut définir l'endroit où la Raspberry Pi va écrire, sa SD virtuelle en quelque sorte; pour cela créer ce fichier:

$ nano /etc/udev/rules.d/90-qemu.rules

Remplissez le comme ceci et enregistrez

La configuration est fini et vous pouvez fermée la fenêtre QEMU, nous allons pouvoir la reboot.

Pour pouvoir la relancer en mode fonctionnel lancer la avec la commande: (pensez à être dans le bon dossier dans votre shell)

qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu-4.4.34-jessie -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2017-09-07-raspbian-stretch.img

Vous pouvez en faire un script pour la relancer plus facilement.(pensez au chmod +x pour les droit d'exécution du script)

Votre Raspberry virtuel est prête pour vos test !

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels