Virtualiser le Raspberry Pi avec QEmu sous Debian dans Virtualbox

Si vous êtes sur ce site c’est surement pour un tutoriel. Vous pouvez aussi avoir envie de savoir ce que vous pourriez faire avec cette petite machine. Avec Virtualbox vous allez pouvoir tester avant d’acheter !

rpi+vb-300x187

Cela fait un moment que je regardai pour voir comment faire des tests sans avoir à refaire des images toutes les deux minutes. J’avais en tête une virtualisation qui facilite l’usage du Raspberry sans Raspberry 🙂 J’ai jamais réussi à trouver un moyen de le faire de simplement. Jusqu’à ce que je trouve un post sur le forum du Raspberry.

Ce qui m’a surpris c’est qu’au final la mise en place est vraiment simple ! Voici donc comment j’ai procédé pour installer une distribution Moebius dans

Un grand merci à tonyhughes pour les explications !

  1. Je passe les explications sur comment installer VirtualBox et installer Ubuntu ou Debian dans VirtualBox. Je suis parti d’une machine avec Debian installé :Debian__Running_
  2. Dans votre machine virtuelle, mettez à jour tous les paquets. Depuis une console (vous pouvez aussi bien le faire depuis:
    sudo apt-get update
    
    sudo apt-get upgrade
  3. Mon choix a été d’installer l’ensemble des données (kernel et image) dans le home de mon utilisateur. A vous de choisir où vous voulez les mettre. J’ai donc créé un répertoire qemu
    mkdir qemu
    
    cd qemu
  4. Dans ce répertoire vous allez installer le noyau qui sera utilisé par Qemu. Pour cela vous pouvez le télécharger à cette adresse : http://xecdesign.com/downloads/linux-qemu/kernel-qemu (je n’ai pas réussi ni trop cherché par wget).Vous devriez donc avec maintenant dans le répertoire qemu créé à l’étape 2, le fichier kernel-qemu.
  5. Ensuite vous copiez l’image que vous souhaitez exécuter toujours dans ce répertoire qemu. J’y ai copié Raspbian et Moebius.Capture_d_écran_02_06_13_18_26-2
  6. Maintenant nous allons monter la partition ext4 de votre image pour faire une petite modification sur le filesystem. Pour cela, nous avons besoin de savoir où se trouve le début de cette partition. Utilisez la commande file puis prenez le secteur de début qu’il faut multiplier par 512 :capture_d_c3a9cran_02_06_13_18_28-2
    Ici le secteur de début de la seconde partition est 122880. Il faudra donc passer à la commande mount le paramètre 62914560.
  7. Monter la partition (ici j’utilise toujours Moebius) :
    mount /home/chris/qemu/moebius-1.1.1.img  -o offset=62914560 /mnt
  8. Modifier le fichier /mnt/etc/ld.so.preload pour mettre en commentaire la ligne. Ajoutez un # en début de ligne, ça suffira pour désactiver le chargement de la librairie ELF.
    #/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
  9. Démonter l’image
    umount /mnt
  10. Installer Qemu
    apt-get install qemu-system
  11. Lancer Qemu avec l’image que vous souhaitez émuler
    sudo qemu-system-arm -kernel /home/chris/qemu/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda /home/chris/qemu/moebius-1.1.1.img -redir tcp:5022::22
  12. Lors du premier lancement vous allez avoir une erreur sur l’intégrité de la partition. Vous allez vous retrouver avec un prompt demandant le mot de passe root. A vous de la saisir. Attention c’est du qwertz !Contrôler le disque
    fsck /dev/sda2

    Puis arrêter le système

    halt
  13. Vous pouvez relancer maintenant Qemu avec la même commande qu’à l’étape 11 :
    sudo qemu-system-arm -kernel /home/chris/qemu/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda /home/chris/qemu/moebius-1.1.1.img -redir tcp:5022::22
  14. Vous devriez arriver au prompt sans erreurDebian__Running_

Alors maintenant que vous avez votre système lancé, plusieurs contraintes :

  • C’est de l’émulation dans de la virtualisation. C’est pas top mais pour un processeur ARM ça semble suffire (j’ai pas non plus fait 50 tests). Ca fonctionne
  • Vous ne pouvez pas étendre la partition étant donné que le fichier image ne peut être agrandi. Vous pouvez par exemple copier l’img sur une SD card, faire une image de la SD et utiliser cette nouvelle image.

Je n’ai pas testé avec Raspbian mais à priori les performances sous X ne sont pas mauvaises.

A vous de tester !

 

Vous aimez cet article ? Supportez-moi sur Patreon!

Vous aimerez aussi...