Intel® HAXM vs. Microsoft® Hyper-V: risolvere il conflitto

Premessa

Intel® Beacon Mountain è un potente strumento realizzato per tutti gli sviluppatori software che desiderano realizzare apps destinate a dispositivi mobili basati su sistema operativo Android.
Questo tool permette, infatti, di installare in pochissimi semplici passi tutta la suite di strumenti necessari al fine di sviluppare nativamente applicazioni e di cross-compilarle sia per device basati su processore ARM*, che per device basati su architetture Intel® (e.s. Intel® Atom).
Il tool Intel® Beacon Mountain è reperibile nella sezione "Strumenti e Download" dell'area dedicata ad Android sul portale di Intel® Software.

Intel® Beacon Mountain fornisce anche un ambiente di emulazione per effetturare il deploy e testare le performance ed il corretto funzionamento delle applicazioni su dispositivi di varia natura, con differenti risoluzioni dello schermo, varie versioni dell'OS Android, diversi processori e diverse quantità di memoria RAM intallata.
Nelle prime fasi di installazioni del tool,.l'installer di Beacon Mountain testerà la possibilità di installare anche un componente chiamato Intel® HAXM (o, per esteso, Intel® Hardware Accelerated Execution Manager): questo software è un hardware-assisted virtualization engine (detto anche hypervisor) che utilizza la Intel® Virtualization Technology (Intel® VT) per velocizzare a livello hardware l'esecuzione dell'emulatore Android su una macchina host.

Su una stessa macchina però non possono convivere differenti hypervisor engine attivi. Per questo alcuni sviluppatori hanno trovato difficoltà nell'installare il componente Intel® HAXM di Intel® Beacon Mountain se sul loro pc era già stato installato ed abilitato un altro hypervisor, come ad esempio Microsoft* Hyper-V, strumento fondamentale per lo sviluppo, ad esempio, di applicazioni Windows* Phone.

É comunque importante sottolineare che l'installazione di Intel® Beacon Mountain può essere portata a termine anche senza necessariamente installare Intel® HAXM, viene solo notificato da parte dell'installer l'impossibilità di installare questo particolare componente, senza per questo precludere il portare a termine con successo l'installazione degli altri strumenti contenuti nella suite: questo però potrenbbe implicare una scarsa resa nelle performance di responsività dell'emulatore Android che Intel® Beacon Mountain andrà ad installare.

Ma allora com'è possibile risolvere il conflitto tra questi hypervisor, nel particolare tra Intel® HAXM e Microsoft* Hyper-V? Vediamo!

RISOLVERE IL CONFLITTO

Un modo semplice e veloce per risolvere il conflitto consiste in un'operazione semplice, ma molto al tempo stesso molto delicata. Infatti, sarà necessario intervenire con BCDEDIT per creare due differenti opzioni di boot di Windows* 8: la prima sarà la nostra opzione tradizionale che abiliterà di default (se presente/installato) Hyper-V, la seconda opzione ci consentirà di avviare Windows* 8 in una modalità in cui il demone Hyper-V sarà disabilitato, permettendoci di installare ed utilizzare in tutta tranquillità e senza conflitti tutta la suite di strumenti presenti in Intel® Beacon Mountain (e quindi anche l'accelerazione hardware regalataci da Intel® HAXM).

ATTENZIONE: un errore nella procedura descritta in seguito potrebbe costare il corretto avvio del vostro sistema operativo Windows. Nè Intel® nè l'autore della guida potranno essere ritenuti responsabili per eventuali malfunzionamenti dati dal sistema. BE CAREFUL!

Step 1.

Aprite un prompt dei comandi con privilegi di amministratore:

Step 2.

Nel prompt appena aperto digitiamo come segue:

C:\>bcdedit /copy {current} /d "Windows 8.1 Senza Hyper-V"

E ci sarà restituito un messaggio del tipo (ad esempio):

The entry was successfully copied to {08e28906-0ab9-11e3-9b2f-402cf41953d5}.

In cui {08e28906-0ab9-11e3-9b2f-402cf41953d5} corrisponde ad un GUID univoco del vostro sistema.

Step 3.

Ora possiamo modificare l'entry secondaria di boot appena creata disabilitandone però Microsoft Hyper-V, digitando semplicemente:

bcdedit /set {vostro-GUID} hypervisorlaunchtype off

Continuando l'esempio fatto in precedenza con il GUID risultante il comando da digitare diventerebbe:

bcdedit /set {08e28906-0ab9-11e3-9b2f-402cf41953d5} hypervisorlaunchtype off

Step 4.

Ora possiamo chiudere il promt e riavviare il sistema.

Dopo la prima fase di boot, cioè il caricamento del bios, il Windowsw 8 boot manager ci offrirà due opzioni di boot: la prima è il nostro vecchio sistema Windows 8 con abilitato Hyper-V, la seconda voce sarà sempre il nostro vecchio sistema Windows 8, ma il servizio Hyper-V sarà inibito ad essere avviato.

 

Grazie mille al Microsoft* MVP (Virtual Machine Expert) Francesco Valerio Buccoli per la preziosa consulenza tecnica.

Per informazioni più dettagliate sulle ottimizzazioni basate su compilatore, vedere il nostro Avviso sull'ottimizzazione.