Comment exécuter le Raspberry Pi OS dans une machine virtuelle avec Qemu et KVM
- 3097
- 415
- Clara Nguyen
Bien que de nombreux systèmes d'exploitation soient disponibles pour le Raspberry Pi, le officiel est le Raspberry Pi OS. Le système d'exploitation est conçu pour s'exécuter pour le bras Architecture, et peut être facilement installé sur la carte SD qui sera utilisée comme périphérique de stockage Raspberry Pi. Parfois, nous pouvons vouloir effectuer des tests ou essayer certaines applications sans avoir de machine à framboise PI physique; Dans ce tutoriel, nous verrons comment nous pouvons créer une machine virtuelle avec le système Raspberry Pi OS en utilisant Qemu et Kvm (Machine virtuelle du noyau).
Dans ce tutoriel, vous apprendrez:
- Comment installer Qemu et KVM
- Comment télécharger et vérifier l'intégrité de la dernière version Raspberry Pi OS (Buster)
- Comment exécuter le Raspberry Pi OS dans une machine virtuelle
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Distribution indépendante |
Logiciel | Qemu, Qemu-System-Arm, KVM et GIT |
Autre | Aucun |
Conventions | # - nécessite que les commandes Linux sont exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux sont exécutées en tant qu'utilisateur non privilégié régulier |
Installation de Qemu
Qemu, tel que défini sur le site officiel est un «émulateur de machine générique et open source et virtualiseur». Nous pouvons l'utiliser pour exécuter le système d'exploitation pour tout type de machine. Sur Linux, il est souvent utilisé en combinaison avec kvm, qui est une solution de virtualisation complète incluse dans le noyau. Pour pouvoir virtualiser notre Raspberry Pi OS, nous devons l'installer sur notre distribution préférée, ainsi que le ARME Qemu-System
package, qui fournit l'émulateur de système pour BRAS systèmes. Qemu et KVM sont disponibles dans les référentiels logiciels des principales distributions Linux. Pour les installer sur Fedora, nous pouvons utiliser le DNF directeur chargé d'emballage:
$ sudo dnf install @virtualization qemu-system-arm
Ici, nous avons installé le virtualisation groupe de packages (remarquez le @
préfixe): il comprend tout ce qui est nécessaire pour la virtualisation sur Fedora, sauf pour le ARME Qemu-System
package, que nous avons installé séparément.
Sur les distributions basées sur Debian et Debian, nous pouvons lancer les commandes suivantes pour synchroniser notre distribution avec les référentiels distants et installer les packages nécessaires sur notre système:
$ sudo apt-get updat && sudo apt-get install qemu-system-arm qemu-kvm libvirt-crients libvirt-daemon-system pont-utils virtinst libvirt-daemon vir-manager
Téléchargement et vérification de la dernière image Raspberry Pi OS
Nous pouvons télécharger la dernière version du Raspberry Pi OS à partir du site officiel de Raspberry Pi. Nous pouvons essentiellement choisir entre 3 versions du système: certains sont plus minimes, d'autres sont livrés avec un ensemble plus grand de packages et un
Bureau graphique déjà installé. Les liens de téléchargement sont les suivants:
- Raspberry Pi OS Lite
- Raspberry Pi OS avec bureau
- Raspberry Pi OS avec ordinateur de bureau et packages supplémentaires
Dans ce tutoriel, nous utiliserons la version «Lite» Raspberry Pi OS. Le télécharger à l'aide d'un navigateur Web, c'est juste une question de clic sur l'un des liens fournis ci-dessus. Si nous voulons le télécharger à partir de la ligne de commande, nous pouvons plutôt utiliser des outils comme wget ou boucle:
# Utilisation de wget $ wget https: // téléchargements.tarte aux framboises.org / raspios_lite_armhf / images / raspios_lite_armhf-2021-01-12 / 2021-01-11-raspios-buster-armhf-lite.zip # Utilisation de curl $ curl -o https: // téléchargements.tarte aux framboises.org / raspios_lite_armhf / images / raspios_lite_armhf-2021-01-12 / 2021-01-11-raspios-buster-armhf-lite.zipper
En exécutant l'une des deux commandes ci-dessus, l'image sera téléchargée dans le répertoire de travail actuel. Une fois le téléchargement terminé, nous pouvons vérifier l'intégrité de l'image en comparant son sha256sum avec celui fourni sur le site Web.
Dans notre cas, le hashsum devrait être d49d6fab1b8e533f7efc40416e98ec16019b9c034bc89c59b83d0921c2aefeef
. Pour le vérifier, nous pouvons exécuter la commande suivante:
$ sha256sum 2021-01-11-raspios-buster-armhf-lite.zipper
La commande ci-dessus, dans notre cas, renvoie le résultat suivant:
49d6fab1b8e533f7efc40416e98ec16019b9c034bc89c59b83d0921c2aefeef 2021-01-11-raspios-buster-armhf-lite.zipper
Vous pouvez voir que les deux hashsums correspondent, donc nous sommes prêts à y aller. Ce que nous devons faire maintenant, c'est d'extraire l'image, car il est zippé. Pour ce faire, nous pouvons exécuter la commande suivante:
$ unzip 2021-01-11-raspios-buster-armhf-lite.zipper
Étant donné que le noyau inclus dans l'image du système officiel ne peut pas être démarré directement à partir de Qemu, nous devons cloner un référentiel Git qui contient une série de noyau conçu à cet effet exact. Nous verrons comment faire cela dans la section suivante.
Obtention des noyaux prêts pour le QEMU de GitHub
Le référentiel dont nous avons besoin pour clone de GitHub est dhruvvyas90 / qemu-rpi-kernel
. Tout ce que nous avons à faire est d'exécuter la commande suivante:
$ git clone https: // github.com / dhruvvyas90 / qemu-rpi-kernel
Le processus de clonage pourrait prendre un certain temps à terminer, cela dépend de la vitesse de votre connexion Internet. Une fois le référentiel cloné, nous sommes prêts à partir. Voici son contenu:
$ ls Qemu-Rpi-Kernel Kernel-Qemu-3.dix.25-Readme wheezy.MD Kernel-Qemu-4.14.79 outils d'étirement Kernel-Qemu-4.19.50-buster polyvalent-pb-buster-5.4.51.DTB Kernel-Qemu-4.4.34-Jessie polyvalent-pb-buster.DTB Kernel-Qemu-5.4.51-buster polyvalent-pb.DTB natif-émotion
Puisque nous voulons imiter la dernière version du Raspberry Pi OS, les fichiers dont nous avons besoin sont noyau-qemu-4.19.50 buster
et polyvalent-pb-buster.dtb
. Le premier est l'image réelle du noyau, la seconde est un Blob de l'arborescence de l'appareil. Quel est le but de ce fichier?
Pour décrire le matériel disponible sur un système sur une carte Raspberry Pi, Dts (Source d'arborescence de périphérique) Les fichiers sont utilisés; La version compilée de ces fichiers est appelée Dtb et stocké dans des fichiers avec le .dtb
extension. Dans notre cas, nous pourrions également utiliser le noyau-qemu-5.4.51-buster
, avec la polyvalent-pb-buster-5.4.51.dtb
déposer.
Imiter la framboise PI OS
Avec tous les fichiers nécessaires en place, nous pouvons enfin virtualiser l'image Raspberry Pi OS. Veuillez noter que je suppose ici que le répertoire de travail est le même où nous avons téléchargé l'image du système. Avant d'exécuter la commande réelle, uniquement sur Debian, nous devons démarrer le réseau de ponts Nated par défaut, qui n'est pas démarré automatiquement; Pour ce faire, nous devons courir:
$ sudo virsh --connect = qemu: /// Système net-start défaut
Pour le faire démarrer automatiquement, nous pouvons courir:
$ sudo virsh --Connect = qemu: // système net-itostart par défaut
Maintenant, pour construire la machine virtuelle, nous devons exécuter la commande suivante:
$ sudo virgin-stall \ --name rpios \ --arch armv6l \ --machine polyvalent \ --cpu arm1176 \ --vcpus 1 \ --mory 256 \ --impport \ --disk 2021-01-11-raspios -buster-armhf-lite.IMG, format = brut, bus = virtio \ --network pont, source = virbr0, modèle = virtio \ --video vga \ --graphics spice \ --boot 'dtb = qemu-rpi-kernel / polyvalent-pb-buster.dtb, noyau = qemu-rpi-kernel / kernel-qemu-4.19.50-buster, kernel_args = root = / dev / vda2 panic = 1 '\ --events on_reboot = détruire
Une fenêtre Virt-Viewer doit apparaître; Là, nous devrions être en mesure de visualiser le démarrage du Raspberry Pi OS:
Jetons un bref aperçu des options que nous avons utilisées pour construire la machine virtuelle avec le verrouillage
commande; Certains sont assez évidents, d'autres un peu plus obscurs.
Tout d'abord, nous avons utilisé le --nom
Option: avec lui, nous pouvons définir le nom de l'instance de machine virtuelle (elle devrait être unique). La deuxième option que nous avons utilisée est --cambre
: il est nécessaire pour demander une architecture CPU non native pour l'invité
système; Si nous ne l'utilisons pas, l'architecture hôte est supposée.
Avec le --machine
Option Nous passons le type de machine à imiter à Qemu: Dans ce cas, nous avons utilisé polyvalent
. Avec le --CPU
Option Nous configurons le modèle et les fonctionnalités du CPU exposés à l'invité; Ici, nous avons utilisé ARM1176
, depuis le
Raspberry Pi est basé sur le bras architecture.
Le --VCPUS
Une option est nécessaire pour définir le nombre de processeurs virtuels pour la machine invitée, une seule dans ce cas. Comme il pourrait être facilement deviné, au lieu de cela --mémoire
L'option, à la place, est utilisée pour définir la mémoire sur allocation de l'invité.
Le --importer
L'option est vraiment importante ici, car elle est utilisée pour demander à l'application de sauter l'installation du système d'exploitation et de simplement construire un invité autour d'une image déjà existante, qui est plus tard spécifiée avec le --disque
option.
Nous utilisons --réseau
Pour connecter l'invité au réseau hôte. Dans ce cas, nous nous connectons via le virbr0
Bridge, qui est créé par défaut par libvirt. Avec le --vidéo
Option Nous spécifions quel type d'appareil vidéo doit être attaché à l'invité et avec --graphique
Nous spécifions comment l'affichage graphique de l'invité peut être accessible: dans ce cas, nous avons utilisé pimenter
, Pour utiliser le protocole avec le même nom.
Avec le --botte
option Il est possible de spécifier le dtb et le noyau fichier à utiliser, mais aussi la ligne de commande du noyau avec kernel_args
. Enfin, avec le --événements
Option Nous spécifions les valeurs des événements pour l'invité. Dans ce cas, nous détruire pour le on_reboot
événement.
Une fois la machine virtuelle démarrée, nous pouvons également le gérer graphiquement via le manager application. Nous pouvons maintenant profiter de notre Raspberry Pi OS virtualisé!
Conclusion
Dans ce didacticiel, nous avons vu comment nous pouvons exécuter une image RAPBERRY PI OS à l'aide de Qemu et KVM, sans matériel réel Raspberry Pi. Nous avons vu comment télécharger et vérifier l'image du système, comment l'extraire, comment cloner le référentiel GIT contenant le noyau et les fichiers DTB nécessaires pour démarrer l'image avec Qemu, et la commande réelle que nous devrions exécuter pour démarrer la virtualisation du système.
Tutoriels Linux connexes:
- Une introduction à l'automatisation Linux, des outils et des techniques
- Choses à installer sur Ubuntu 20.04
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Masterring Bash Script Loops
- Introduction aux moteurs de stockage MySQL
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Système linux hung? Comment s'échapper vers la ligne de commande et…
- Fichiers de configuration Linux: 30 premiers
- Comment vérifier une santé du disque dur à partir de la ligne de commande…
- Ubuntu 20.04 Guide
- « Comment déplacer le dossier sur Linux
- Comment vérifier l'utilisation du disque par dossier sur Linux »