Virtualisation de Raspberry Pi OS avec Qemu

Virtualisation de Raspberry Pi OS avec Qemu.

Distribution de travail : Ubuntu 18.04
Architecture : x86_64

I/ Installation de Qemu.

Lien :
https://www.qemu.org/

1/ Installation des paquets de développement.


util01@station66:~$ sudo apt-get install libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev

2/ Création du répertoire de travail.


util01@station66:~$ mkdir -p VIRTRP/lib
util01@station66:~$ cd VIRTRP/
util01@station66:~/VIRTRP$

3/ Téléchargement du code source.


util01@station66:~/VIRTRP$ wget https://download.qemu.org/qemu-5.2.0-rc1.tar.xz

4/ Décompression de l’archive.


util01@station66:~/VIRTRP$ tar xvJf qemu-5.2.0-rc1.tar.xz


util01@station66:~/VIRTRP/$ cd qemu-5.2.0-rc1

5/ Configuration de la compilation.


util01@station66:~/VIRTRP/qemu-5.2.0-rc1$ ./configure --enable-virglrenderer --enable-opengl --enable-sdl --enable-system --enable-modules --enable-libusb --target-list=x86_64-softmmu,arm-softmmu --enable-kvm --audio-drv-list=alsa

6/ Compilation.


util01@station66:~/VIRTRP/qemu-5.2.0-rc1$ make -j 4

7/ Installation du script de copie de bibliothèque partagé et/ou statique.

Lien :
https://github.com/COMBINE-lab/matryoshka/blob/master/scripts/cpld.bash


util01@station66:~/VIRTRP/qemu-5.2.0-rc1$ cd ../lib


util01@station66:~/VIRTRP/lib$ wget https://raw.githubusercontent.com/COMBINE-lab/matryoshka/master/scripts/cpld.bash
util01@station66:~/VIRTRP/lib$ chmod +x cpld.bash

8/ Copie des bibliothèques partagéess et/ou statiques.


util01@station66:~/VIRTRP/lib$ bash ./cpld.bash ../qemu-5.2.0-rc1/build/x86_64-softmmu/qemu-system-x86_64 .
util01@station66:~/VIRTRP/lib$ bash ./cpld.bash ../qemu-5.2.0-rc1/build/arm-softmmu/qemu-system-arm .


util01@station66:~/VIRTRP/lib$ cd ..

II/ Préparation de l’image Raspberry Pi OS.

1/ Téléchargement de Raspberry Pi OS.

Lien :
https://www.raspberrypi.org/downloads/raspberry-pi-os/

Version :

Raspberry Pi OS (32-bit) with desktop
Image with desktop based on Debian Buster
Version: August 2020
Release date: 2020-08-20
Kernel version: 5.4
Size: 1133 MB


util01@station66:~/VIRTRP$ wget https://downloads.raspberrypi.org/raspios_armhf_latest

2/ Décompression de l’archive.


util01@station66:~/VIRTRP$ mv raspios_armhf_latest raspios_armhf_latest.zip


util01@station66:~/VIRTRP$ unzip raspios_armhf_latest.zip

3/ Vérification.


util01@station66:~/VIRTRP$ ls -l 2020-08-20-raspios-buster-armhf.img
-rw-r--r-- 1 util01 util01 3821010944 août 20 12:54 2020-08-20-raspios-buster-armhf.img

III/ Virtualisation de Raspberry Pi OS.

Lien :
http://codingadventures.org/2020/09/19/raspberry-pi-qemu-and-network-access/

1/ Téléchargement des kernels.

Lien :
https://github.com/dhruvvyas90/qemu-rpi-kernel


util01@station66:~/VIRTRP$ git clone https://github.com/dhruvvyas90/qemu-rpi-kernel.git

2/ Conversion de l’image ‘img’ en ‘qcow2’.


util01@station66:~/VIRTRP$ qemu-5.2.0-rc1/build/qemu-img convert -f raw -O qcow2 2020-08-20-raspios-buster-armhf.img 2020-08-20-raspios-buster-armhf.qcow2

3/ Vérification.


util01@station66:~/VIRTRP$ ls -l *.qcow2
-rw-r--r-- 1 util01 util01 3028680704 nov. 11 22:50 2020-08-20-raspios-buster-armhf.qcow2


util01@station66:~/VIRTRP$ qemu-5.2.0-rc1/build/qemu-img info 2020-08-20-raspios-buster-armhf.qcow2
...
virtual size: 3.56 GiB (3821010944 bytes)
disk size: 2.82 GiB
...

4/ Redimensionnement de l’image.


util01@station66:~/VIRTRP$ qemu-5.2.0-rc1/build/qemu-img resize 2020-08-20-raspios-buster-armhf.qcow2 +6G

5/ Vérification.

Lien :
https://www.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.ldva/ldva_r_qemu-imgCommand.html


util01@station66:~/VIRTRP$ qemu-5.2.0-rc1/build/qemu-img info 2020-08-20-raspios-buster-armhf.qcow2
...
virtual size: 9.56 GiB (10263461888 bytes)
disk size: 2.82 GiB
...

6/ Lancement de l’image avec Qemu.

Note : ‘qemu arm’ est limité à 256 Mo de Ram et à 1 processeur.


util01@station66:~/VIRTRP$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/home/util01/VIRTRP/lib \
qemu-5.2.0-rc1/build/qemu-system-arm \
-M versatilepb \
-cpu arm1176 \
-m 256 \
-smp 1 \
-drive "file=2020-08-20-raspios-buster-armhf.qcow2,if=none,index=0,media=disk,format=qcow2,id=disk0" \
-device "virtio-blk-pci,drive=disk0,disable-modern=on,disable-legacy=off" \
-net "user,hostfwd=tcp::5022-:22" \
-dtb qemu-rpi-kernel/versatile-pb-buster.dtb \
-kernel qemu-rpi-kernel/kernel-qemu-5.4.51-buster \
-append 'root=/dev/vda2 panic=1' \
-no-reboot

7/ Capture d’écran.

8/ Accélération de la virtualisation.

Selon la machine hôte :
– activer l’accélération matériel de la virtualisation.
– activer l’accélération logiciel de la virtualisation :


util01@station66:~/VIRTRP$ sudo modprobe kvm-amd
util01@station66:~/VIRTRP$ sudo adduser $USER kvm
L'utilisateur « util01 » appartient déjà au groupe « kvm ».
util01@station66:~/VIRTRP$ sudo chown root:$USER /dev/kvm

novembre 11, 2020