Comment démarrer la virtualisation assistée par matériel d'Intel (hyperviseur) sur Linux pour accélérer l'émulateur x86 Android

Tao Wang

Traducteur

Francis Walter

N'hésitez pas à donner vos avis par rapport à ce tutoriel. Commentez

- Titre : Comment démarrer la virtualisation assistée par matériel d'Intel (hyperviseur) sur Linux pour accélérer l'émulateur x86 Android

- Auteur : Tao Wang

- Traducteur : Francis Walter

- Parution : 27 décembre 2014

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2014 Tao Wang. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Installation de KVM

- III. Utilisez un noyau 64 bits

- IV. Installez KVM

- V. Vérifiez l'installation

- VI. Démarrez l'appareil virtuel Android (AVD) depuis le SDK Android directement à partir du terminal

- VII. Démarrez l'appareil virtuel Android par le gestionnaire d'appareil virtuel Android dans Eclipse

- VIII. Conclusion

- IX. Ressources

I - Introduction

Le Gestionnaire d'exécution avec accélération matérielle d'Intel (Intel® HAXM) est un moteur d'assistance matérielle à la virtualisation (hyperviseur) qui utilise la technologie de virtualisation d'Intel (VT-X) pour accélérer l'émulation d'applications Android sur un ordinateur hôte. En combinaison avec les images d'émulateur Android x86 fournies par Intel et le gestionnaire officiel du SDK Android, Intel HAXM permet une émulation Android plus rapide sur les systèmes activés Intel VT-X. HAXM est disponible pour Windows et Mac OS X.

Puisque Google supporte en grande partie la compilation Android sur la plateforme Linux (avec l'OS Ubuntu 64 bits comme première plateforme et Mac OS X comme seconde) et que beaucoup de développeurs utilisent les appareils virtuels Android (AVD) sur Eclipse installé sur un système Linux, il est très important que les développeurs Android profitent de la virtualisation KVM assistée par matériel d'Intel pour Linux tout comme HAXM pour Windows et OS X.

Retrouvez ci-dessous les étapes pour installer et activer KVM sur une plateforme hôte Ubuntu et comment démarrer l'émulateur d'Intel Android Gingerbread x86 avec la virtualisation Intel assistée par matériel (hyperviseur). Le résultat est très esthétique et l'appareil virtuel Android (AVD) fonctionne de manière plus rapide et plus fluide que sans hyperviseur.

II - Installation de KVM

Je me suis référé à la page de documentation de la communauté Ubuntu pour installer KVM. Pour voir si votre processeur supporte le matériel de virtualisation, vous pouvez examiner la sortie à partir de la commande :

$ egrep -c '(vmx|svm)' /proc/cpuinfo

vous obtenez 64. Si vous obtenez 0, cela signifie que votre processeur ne supporte pas la virtualisation matérielle.

La prochaine étape consiste à installer cpu-checker.

$ sudo apt-get install cpu-checker

Vous pouvez maintenant vérifier si votre processeur supporte KVM :

$kvm-ok

Si vous obtenez :

INFO: Your CPU supports KVM extensions
INFO: /dev/kvm exists
KVM acceleration can be used

cela signifie que vous pouvez exécuter une machine virtuelle plus rapidement avec les extensions KVM.

Si vous obtenez :

INFO: KVM is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
and then hard poweroff/poweron your system
KVM acceleration can NOT be used

vous avez besoin d'aller dans le setup du BIOS pour activer le VT.

III - Utilisez un noyau 64 bits

L'exécution d'un noyau 64 bits sur un système d'exploitation hôte est recommandée, mais pas obligatoire. Pour attribuer plus de 2 Go de RAM à vos machines virtuelles, vous devez utiliser un noyau 64 bits (voir 32 bits et 64 bits). Sur un noyau 32 bits installé, vous ne pourrez donner qu'au maximum 2 Go de RAM à vos machines virtuelles.

Par contre, un noyau 64 bits peut accueillir des hôtes 32 bits et 64 bits. Un noyau 32 bits ne peut accueillir qu'un invité 32 bits.

Pour voir si votre processeur est 64 bits, vous pouvez exécuter la commande suivante :

$ egrep -c ' lm ' /proc/cpuinfo

Si 0 s'affiche à l'écran, alors votre processeur n'est pas 64 bits.

Si vous obtenez 1 ou un nombre supérieur, alors c'en est un.

Je suis en « Long Mode », ce qui équivaut à un processeur 64 bits.

Maintenant, vérifiez si votre noyau en cours d'exécution est 64 bits en exécutant la commande suivante :

$ uname -m

x86_64 indique que vous utilisez un noyau 64 bits. Si vous obtenez i386, i486, i586 ou i686 alors vous utilisez un noyau 32 bits.

IV - Installez KVM

Pour Ubuntu Lucid (10.04) et version supérieure :

$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

vous pouvez ignorer la configuration de Postfix ci-dessous en choisissant l'option « No Configuration ».

Ce qui suit permet d'ajouter votre compte utilisateur <username> aux groupes KVM et libvirtd :

$ sudo adduser your_user_name kvm
$ sudo adduser your_user_name libvirtd

Après l'installation, vous avez besoin de vous relogger afin que votre compte devienne un membre effectif des groupes d'utilisateurs KVM et libvirtd. Les membres de ces groupes peuvent exécuter des machines virtuelles.

V - Vérifiez l'installation

Vous pouvez tester si votre installation a été faite correctement avec la commande suivante :

$ sudo virsh -c qemu:///system list

Votre écran devra afficher ce qui suit :

Id Name                 State
----------------------------------

VI - Démarrez l'appareil virtuel Android (AVD) depuis le SDK Android directement à partir du terminal

Maintenant, démarrez Android pour l'émulateur x86 d'Intel en utilisant la commande qui suit :

$ <SDK directory>/tools/emulator-x86 -avd Your_AVD_Name -qemu -m 2047 -enable-kvm

Seul un système Ubuntu 64 bits vous permet d'utiliser une mémoire allouée de 2 Go ou plus. Mon Ubuntu 64 bits a 6 Go de mémoire RAM, j'ai utilisé le tiers pour mon appareil virtuel Android. Le nom de ce dernier est Intel_Atom_x86_64. qemu offre des options pour QEMU et -m spécifie l'espace mémoire attribué à l'Android émulé (ex. : invité). Si vous attribuez un espace mémoire trop petit, il est possible que les performances soient mauvaises à cause des activités de swap fréquentes. Ajoutez -show-kernel pour voir le message provenant du noyau.

VII - Démarrez l'appareil virtuel Android par le gestionnaire d'appareil virtuel Android dans Eclipse

Ci-dessous les procédures recommandées par Google. Si vous exécutez un émulateur à partir d'Eclipse, exécutez votre application Android avec un appareil virtuel basé x86 et incluez les options KVM.

Dans Eclipse, cliquez sur le dossier de votre projet Android et sélectionnez Run > Run Configurations.

- Dans le panneau à gauche de la boîte de dialogue « Run Configurations », sélectionnez la configuration d'exécution de votre projet Android ou créez une nouvelle configuration.

- Cliquez sur l'onglet « Target ».

- Sélectionnez l'appareil virtuel Android basé x86 que vous avez créé précédemment.

- Dans le champ des options de commande de ligne de l'émulateur complémentaire, entrez :

-qemu -m 2047 -enable-kvm

- Exécutez votre projet Android en utilisant la configuration d'exécution.

Également disponible : l'image officielle Intel x86 de Ice Cream Sandwich.

VIII - Conclusion

Merci d'avoir suivi ce tutoriel.

Rendez-vous sur la zone des développeurs Intel Android pour découvrir l'ensemble des outils de développement.

Intel HAXM est également disponible depuis la suite de développement Intel INDE.

N'hésitez pas à donner vos avis par rapport à ce tutoriel. Commentez

IX - Ressources

- Outils Intel Android

- Forum Intel Android

- Intel HAXM

- Intel INDE

- Intel XDK

- Android SDK Manager

- Article Original