<div class='slidealt'>Expérimentez des extensions de <a title='virtualisation pour plateformes hétérogènes à base de processeurs ARM' href='/fr/produits/'>virtualisation KVM</a></div> <div class='slidealt'>Faites appelle à des <a title='services de full virtualisation pour kvm sur coeur ARM' href='/fr/services/'>services de virtualisation sur mesure</a></div> <div class='slidealt'>Virtualisation KVM des E/S's pour coeurs ARMv7, ARMv8 <a title='extensions de virtualisation de plateforme VFIO des E/S par kvm sur arm en logiciel libre' href='/fr/solutions/guides/vfio-sur-arm/'>par extensions VFIO/IOMMU</a></div> <div class='slidealt'>Projets de recherche de virtualisation <a title='kvm en logiciel libre pour ARM multicoeur' href='/fr/innovation/'>pour les systèmes embarqués et le cloud</a></div> <div class='slidealt'>Solutions de virtualisation pour systèmes <a title='solutions en logiciels libres de virtualisation pour ARMv7-ARMv8' href='/fr/solutions/'>hétérogènes multicoeur ARM</a></div>

Comment installer et utiliser VOSySmonitor sur une carte Raspberry Pi 4B

Un guide pour implémenter plusieurs OS sur Raspberry Pi 4B

La solution VOSySmonitor de VOSyS a été adaptée pour fonctionner sur la carte Raspberry Pi 4 Model B, permettant ainsi l'exécution simultanée d'un système d'exploitation en temps réel critique pour la sécurité et d'un système d'exploitation non critique. Bien que ce guide soit destiné à cette plateforme d'architecture ARM, la solution de criticité mixte VOSySmonitor est également portable sur les architectures x86 (VOSySmonitorX86) et RISC-V (VOSySmonitoRV).

La plateforme Raspberry Pi est conforme aux exigences requises pour l'installation de VOSySmonitor, en particulier en ce qui concerne les extensions matérielles de sécurité ARM et les dispositions relatives aux différents niveaux d'exception de sécurité; de plus, cette plateforme dispose d'un contrôleur d'interruption générique qui permet de configurer chaque interruption comme étant sécurisée ou non sécurisée; enfin, la puissance de son processeur permet l'exécution de plusieurs systèmes d'exploitation.

Attention!

Ce SoC ne dispose pas d'un contrôleur de mémoire sécurisé: en conséquence, l'installation de VOSySmonitor sur la carte Raspberry Pi 4 n'offre aucune garantie réelle que les mondes RTOS et GPOS sont isolés. Cela est dû au fait que dans ce SoC, il n'y a pas de support pour l'isolation DRAM entre le monde sécurisé et le monde non sécurisé.

Ce guide présente toutes les étapes nécessaires à l'installation de VOSySmonitor sur la carte Raspberry Pi 4 et à la coordination de l'exécution d'un FreeRTOS et d'un système d'exploitation général 32 bits Raspberry Pi.

/static/vosapp/images/guides/vosysmonitor_on_raspberry_pi4/images/vosysmonitor-rpi4-arch.png

Figure 1 - Architecture

Toutes les commandes et la VM de ce guide peuvent être exécutées en ligne de commande via un terminal ou une connexion série/SSH.

1. Génération binaire de VOSySmonitor

Sur la carte Raspberry Pi 4B, VOSySmonitor et FreeRTOS sont chargés en tant que binaire exécutable unique à partir du firmware RPI. Le binaire final de VOSySmonitor peut être généré après avoir étendu et compilé FreeRTOS avec l'application de votre choix. Ainsi, la première étape de la génération du binaire VOSySmonitor consiste à compiler FreeRTOS à partir des sources. Une fois FreeRTOS compilé, le binaire final de VOSySmonitor peut être généré.

Compilation de FreeRTOS

Les pré-requis pour la compilation de FreeRTOS sont :

  • Avoir accès au code source de FreeRTOS
  • Installation du compilateur croisé aarch64_none_elf

Ensuite, l'étape de compilation de FreeRTOS aboutira à la génération de FreeRTOS.bin et peut être effectuée comme suit:

# Clone FreeRTOS code
$ git clone git@git.virtualopensystems.com:enoch/freertos.git
$ cd freertos

# Build Application of choice
$ make PLAT=rpi4 ARCH=a64 APP={APP NAME} CROSS_COMPILE=/path/to/aarch64-none-elf-

Compilation binaire de VOSySmonitor

Étant donné que FreeRTOS.bin est à ce stade disponible, la dernière étape vers la génération de vosysmonitor.bin demande:

  • FreeRTOS.bin
  • le fichier objet vosysmonitor.axf, qui est basé sur le code de VOSySmonitor uniquement
  • Le compilateur croisé installé aarch64-linux-gnu-objcopy

Ensuite, la génération de vosysmonitor.bin peut être effectuée en deux étapes comme suit :

# Commande pour placer FreeRTOS.bin sous la section correcte
$ aarch64-linux-gnu-objcopy \
             --update-section "SecWorld_EntryPoint"=/path/to/FreeRTOS.bin \
                    vosysmonitor.axf vosysmonitor-rtos.axf

# Commande pour produire le binaire final de vosysmonitor
$ aarch64-linux-gnu-objcopy -O binary vosysmonitor-rtos.axf vosysmonitor.bin

Le binaire de VOSySmonitor incluant FreeRTOS est maintenant prêt, nous pouvons donc passer à l'étape suivante.

2. Installation de VOSySmonitor pour le système d'exploitation GPOS 32 bits de Raspberry Pi GPOS

Chaque distribution Linux est fournie avec des fichiers de configuration qui sont utilisés pour configurer les chargeurs d'amorçage antérieurs à Linux. Nous profitons de cette fonctionnalité pour présenter VOSySmonitor comme un binaire à exécuter lors des étapes initiales de démarrage. Ces instructions de configuration sont spécifiques à chaque distribution, puisqu'elles dépendent des fichiers de configuration que chaque distribution exporte.

Pour une configuration Raspberry Pi OS 32-bit, deux étapes principales sont nécessaires pour faire démarrer VOSySmonitor sur la carte. La première étape concerne certains arguments de configuration de démarrage qui doivent être intégrés. La deuxième étape concerne certaines personnalisations de l'arbre des périphériques. zations. Ces étapes sont expliquées dans les sections suivantes.

Identifiant ou inscription pour visualiser l'information complète