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
[…] Virtualisation de Raspberry Pi OS avec Qemu […]