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 :
Une carte Arndale avec alimentation et câble série (Ethernet également conseillé)
Carte microSD (4 Go recommandé)
Ordinateur personnel avec Ubuntu 12.04 LTS ou distribution similaire
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 :
Compilateur croisé et les paquets requis
Le noyau Linux hôte
Device Tree Blob
Bootloader
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