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

Virtualisation KVM pour plateforme ARM Arndale

Guide pour le portage de KVM sur la plateforme de développement Exynos5250 Arndale

Dans ce guide détaillé, Virtual Open Systems expose les étapes pour mettre en place un système de virtualisation KVM sur la carte de développement Arndale Exynos5250 basée sur ARM; Dedans, vous trouverez des instructions sur la façon de compiler un bootloader pour KVM jusqu'à la création d'un espace utilisateur d'Ubuntu OS. Ceci a été la première démonstration de KVM-sur-ARM pour une plate-forme matérielle commerciale d'ARM Cortex-A15.

Introduction à la virtualisation sur plateforme Arndale

Encore récemment, beaucoup de travaux sur le portage de KVM sur l'architecture ARM ont été faits grâce aux Fast Models. En raison d'un manque de matériel Cortex-A15, les Fast Models se sont révélés être des outils essentiels pour lancer le développement d'un projet. Bien qu'ils fournissent une alternative directe et facile à utiliser, les Fast models présentent quelques insuffisances en ce qui concerne les performances en fonction de la charge de travail.

La seule alternative jusqu'à présent était le port de KVM sur la plate-forme Versatile Express d'ARM. Alors que précédemment, elle a été un outil précieux, sa faible disponibilité, mais surtout son coût prohibitif, la rendent irréaliste pour un usage massif.

Mais à l'heure actuelle Cortex-A15/A7 sont suffisamment matures, et plusieurs entreprises ont mis en oeuvre leurs propres platesformes/solutions basées sur ARMv7 avec les extensions de la virtualisation. Samsung a sorti la plate-forme Exynos5250 qui intègre un double coeur Cortex-A15 à 1,7 GHz et un GPU Mali-T604 sur un circuit intégré de 32nm. La version suivante du Exynos met la barre plus haute, en utilisant une architecture big.LITTLE avec un quad-core Cortex-A15 à 1.8 GHz et un quad-core Cortex-A7 à 1,2 GHz.

Exynos5250 dès aujourd'hui se trouve déjà dans le Chromebook ARM de Samsung, le Nexus 10 de Google et sur une carte de développement d'Insignal, le Arndale. Dans ce guide, nous allons décrire en détail, comment mettre en place un système complet de virtualisation sur la carte de développement Arndale, couvrant des sujets de bas niveau, comme la façon de compiler un bootloader compatible avec KVM, jusqu'à la création des binaires de l'espace utilisateur d'Ubuntu et l'utilisation des invités dans une telle configuration.

Composants Requis

Les composants de base nécessaires au port de KVM sur la carte de développement Arndale Exynos sont :

bullet Une carte Arndale avec alimentation et câble série (Ethernet également conseillé)

bullet Carte microSD (4 Go recommandé)

bullet Ordinateur personnel avec Ubuntu 12.04 LTS ou distribution similaire

/static/vosapp/images/guides/kvm_virtualization_on_arndale/images/arndale.jpg

La carte de développement Arndale Exynos5250

Le système Linux hôte

Afin de créer un système de démarrage de base sur la carte de développement Arndale Exynos, nous avons besoin de :

bullet Compilateur croisé et les paquets requis

bullet Le noyau Linux hôte

bullet Device Tree Blob

bullet Bootloader

bullet Système de fichiers

Compilateur croisé et les paquets requis

Pour compléter les étapes suivantes nous avons besoin d'installer un compilateur croisé, et quelques paquets nécessaires sur la distribution de notre poste de travail (Ubuntu 12.04 LTS):

$ sudo apt-get install build-essential git u-boot-tools qemu-user-static libncurses5-dev

et pour le compilateur croisé:

$ sudo apt-get install gcc-arm-linux-gnueabi

Le noyau Linux hôte

Une image du noyau pré-compilé peut être téléchargé à partir de:

$ wget http://www.virtualopensystems.com/downloads/guides/kvm_virtualization_on_arndale/uImage

Nous utilisons un noyau Arndale qui est basé sur la version 3.8 du noyau Linux avec le patchset KVM-sur-ARM appliqués en dessus (v17). Pour télécharger le noyau du depôt Virtual Open Systems, voici comment procéder:

$ git clone git://github.com/virtualopensystems/linux-kvm-arm.git
$ cd linux-kvm-arm
$ git checkout origin/lue_arndale-kvm-3.8 -b arndale-kvm-3.8

Pour la configuration du noyau spécifique à la carte Arndale exécutez:

$ curl http://www.virtualopensystems.com/downloads/guides/kvm_virtualization_on_arndale/ \
                                                                 arndale-config > .config
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make menuconfig

Nous pouvons maintenant procéder à la compilation du noyau:

$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make uImage

Identifiant ou inscription pour visualiser l'information complète