<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>

Creation d'une image Yocto NXP SDK6 avec QEMU et VOSYSwitch pour NXP LS2085A-RDB

Comment transformer une plateforme NXP LS2085A-RDB en hôte de virtualisation KVM avec support de VOSYSwitch

La NXP LS2085A-RDB est une plateforme de référence pour un grand nombre de scénarios de virtualisation sur ARM dans les domaines du vCPE edge, de IoT, du Mobile Edge Computing, etc. Cependant l'image d'origine fourni par NXP ne comprend pas d'outils de virtualisation. Pour aider les développeurs qui veulent bénéficier de machines virtuelles KVM sur la LS2085A-RDB, Virtual Open Systems propose ce guide qui explique comment créer et installer un système de fichiers, comprenant une couche de virtualisation et le commutateur virtuel VOSYSwitch.

Introduction à la virtualisation de la NXP LS2085A-RDB

La plateforme NXP LS2085A-RDB dispose, entre autres, de 8 Cortex-A57 cores, d'un processeur I/O avancé à 40Gbps et d'un commutateur L2 d'un débit total de 88Gbps. Ce qui en fait un choix logique lorsqu'il s'agit de projets de cloud computing et edge vCPE sur ARMv8.

Note

Ce guide ne décrit pas la procédure pour lancer une machine virtuelle sous Linux. Cependant cette information est disponible dans le guide .

Pré-requis pour virtualiser NXP LS2085A-RDB

Ce guide est basé sur la plateforme NXP LS2085A-RDB et Ubuntu 16.04 (Xenial Xerus). Les outils logiciel sont également disponible sur d'autres distributions Linux telles que Debian et CentOS. Les autres prérequis sont :

bullet Une station de travail avec Ubuntu 16.04 ou similaire

bullet Un câble Ethernet pour connecter l'ordinateur à la LS2085A

bullet Le port série "UART2" de la LS2085A-RDB connecté à la station de travail via un câble UART USB-to-RS232

bullet Un disque SATA connecté à la LS2085A-RDB

bullet Les firmwares NXP SDK EAR6 déjà installé sur la LS2085A-RDB (ex. U-boot, MC)

bullet Les images ISO de NXP LS2085A-SDK-SOURCE-<DATE>-yocto.iso et LS2085A-SDK-AARCH64-CACHE-<DATE>-yocto.iso

Installation d'un environnement SDK et compilation des images kernel et système de fichiers

Cette section décrit comment installer le SDK fourni par NXP et comment l'utiliser pour compiler une image noyau et une image du système de fichiers.

/static/vosapp/images/guides/yocto_qemu_kvm_vswitch_nxp_ls2085/images/NXPLS2085A_virtualization_fsimage_guide.png

build et exécution de l'image de filesystem avec NXP Yocto SDK 6

Installation des images ISO du NXP SDK 6

Avant tout, l'image ISO SOURCE doit être installée :

$ mkdir iso_image
$ sudo mount LS2085A-SDK-SOURCE-<DATE>-yocto.iso iso_image
$ cd iso_image
$ ./install
LS2085A-SDK-<DATE>-yocto: Checking ISO integrity ...
You are about to install the SDK built by Yocto
    LS2085A-SDK-<DATE>-yocto

    Before installing , you must read and accept the EULA
    (End User License Agreement) which will be presented next.

    Do you want to continue ? Y|n
Where to install LS2085A-SDK-<DATE>-yocto? (/home/<USER>)
<SDK6_INSTALL_DIRECTORY>
$ sudo umount iso_image

Ensuite, suivre la même procédure pour installer l'image ISO CACHE LS2085A-SDK-CACHE-<DATE>-yocto.iso. Le répertoire d'installation doit rester le même. Il n'y a pas besoin de recréer le répertoire iso_image.

Les commandes suivantes installent les outils et les librairies nécessaires sur la station de travail.

$ cd <SDK6_INSTALL_DIRECTORY>
$ ./poky/scripts/host-prepare.sh

Compilation du kernel et du système de fichiers

À ce stade l'environnement SDK est installé et la compilation des images peut être démarrée :

$ source ./poky/fsl-setup-poky -m ls2085ardb
$ bitbake fsl-image-virt

Une fois la compilation terminée, les images générées sont disponibles dans tmp/deploy/images/ls2085ardb :

$ cd tmp/deploy/images/ls2085ardb

U-boot étant le bootloader utilisé sur LS2085A-RDB, une image de type uImage doit être générée à partir de l'image noyau Image :

$ sudo apt-get install u-boot-tools
$ mkimage -A arm64 -O linux -T kernel -C none -a 0x80080000 -e 0x80080000 -d Image uImage

La dernière étape de la préparation des images consiste à intégrer l'uImage et le DTB dans l'image du système de fichiers :

$ mkdir filesystem
$ gunzip fsl-image-virt-ls2085ardb-<DATE>.rootfs.ext2.gz
$ sudo mount -o rw fsl-image-virt-ls2085ardb-<DATE>.rootfs.ext2 filesystem
$ sudo cp uImage filesystem/boot/
$ sudo cp Image-fsl-ls2085a-rdb.dtb filesystem/boot/fsl-ls2085a-rdb.dtb
$ sudo umount filesystem

Installer le système de fichiers pour la plateforme LS2085A et démarrer le nouveau système

Dans cette section l'image du système de fichiers créée au préalable est installée sur le disque SATA qui sera connecté à la plateforme LS2085A.

Note

Virtual Open Systems se décharge de toutes responsabilité en cas de dommages causés sur votre matériel en suivant les instructions ci-dessous. Bien que le contenu de ce guide ait été vérifié scrupuleusement, Virtual Open Systems ne peut garantir qu'une potentielle erreur d'utilisateur ne puisse endommager votre plate-forme.

Partitionnement du disque SATA et installation du système de fichiers

Une partition pour héberger le nouveau système de fichiers doit être créée sur le disque SATA. Le disque est ainsi connecté à la station de travail.

L'outil de partitionnement utilisé est parted. À ce stade, la table de partitions doit être modifiée individuellement, en tenant compte du partitionnement actuel. Il est recommandé d'allouer au moins 10Go d'espace. Le nom du disque dans les commandes ci-dessous est sda mais il est très probable que ce nom soit diffèrent et doive être adapté. Les commandes pour créer la partition pour le nouveau système de fichiers sont :

# parted
(parted) mkpart logical ext4 <START_POSITION> <END_POSITION>
(parted) print
Model: ATA KINGSTON SV300S3 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type      File system  Flags
1      1049kB  269MB   268MB   primary   fat16
2      269MB   43.2GB  42.9GB  primary   ext4
3      43.2GB  86.2GB  42.9GB  primary   ext4
4      86.2GB  240GB   154GB   extended
5      86.2GB  94.8GB  8590MB  logical   ext4
6      94.8GB  127GB   32.2GB  logical   ext4
7      127GB   170GB   42.9GB  logical   ext4
8      170GB   180GB   10.1GB  logical   ext4          lba
(parted) set 8 lba off
(parted) quit

La sortie de la commande print de parted est une manière de vérifier que la partition a bien été créée et de récupérer son numéro. Cependant il faut encore mettre à jour les informations de partitionnement dans le noyau :

# partprobe

Maintenant que la partition est disponible, il est nécessaire de créer le système de fichiers :

# mkfs.ext4 -L SDK6-YOCTO /dev/sda<PARTITION_NUMBER>

Ensuite le contenu du système de fichiers précédemment crée peut être copié dans la partition nouvellement créée :

# mkdir /media/image
# mount fsl-image-virt-ls2085ardb-<DATE>.rootfs.ext2 /media/image
# mkdir /run/media/sda<PARTITION_NUMBER>
# mount /dev/sda<PARTITION_NUMBER> /run/media/sda<PARTITION_NUMBER>
# cp -r /media/image/* /run/media/sda<PARTITION_NUMBER>/
# umount /media/image
# umount /run/media/sda<PARTITION_NUMBER>

On peut remarquer que l'image contenant le système de fichiers n'est pas transférée directement sur la partition au moyen d'un outil tel que **dd**. En effet, si tel été le cas, la taille du système de fichiers serait réduite à la taille de l'image, c'est-à-dire environ 400Mo, elle devrait alors être étendue.

Enfin le disque SATA peut être connecté sur la plateforme LS2085A-RDB.

Configuration de la connexion UART à la NXP LS2085A

Une fois le système de fichiers généré, une liaison série doit être établie entre le poste de travail et la plateforme LS2085A. Pour ce faire, un outil tel que minicom doit être installé sur le poste de travail:

$ sudo apt-get install minicom

Ensuite, on peut détecter le port UART utilisé sur le poste de travail :

$ dmesg | grep ttyUSB

Un message similaire a celui-ci devrait apparaître :

[2316635.684250] usb 3-10: pl2303 converter now attached to ttyUSB0

Cela signifie que l'interface UART est accessible sur ttyUSB0. L'étape suivant est la configuration du lien dans minicom :

$ sudo minicom -D /dev/ttyUSB0

La configuration est effectuée au moyen d'un menu:

bullet Appuyer Ctrl-A Z pour ouvrir Minicom menu

bullet Appuyer sur O (Minicom Configuration)

bullet Dans le menu de Configuration, selectionner "Serial port setup" avec les flèches

bullet Configurer l'UART comme ceci:

+-----------------------------------------------------------------------+
| A -                            Serial port : /dev/ttyUSB0             |
| B -                      Lockfile location : /var/lock                |
| C -                         Callin Program :                          |
| D -                        Callout Program :                          |
| E -                           Bps/Par/Bits : 115200 8N1               |
| F -                  Hardware Flow Control : No                       |
| G -                  Software Flow Control : No                       |
|                                                                       |
|    Change which setting ?                                             |
+-----------------------------------------------------------------------+

Appuyer sur "Entrer" pour sauvegarder la configuration, ensuite sélectionner "Exit" pour quitter le menu de Minicom.

Identifiant ou inscription pour visualiser l'information complète