Windows

Install Hyper-V and HAXM on the same machine

Advertisements

If you are into mobile application development and wanted to install both Hyper-V (Microsoft’s hardware virtualization component) and HAXM (Intel’s Hardware Execution Manager) on the same machine, chances are you probably faced an error on installing the second one after installing one. And who likes working on slow emulators when you can give them adrenaline shots using virtualization? Even though your computer supports virtualization, you might get an error saying you need to enable hardware assisted virtualization.

In my case, the error shown every time I installed HAXM was:

HAXM cannot be installed until VT-x is enabled

 

But my computer obviously did support virtualization since I was running Hyper-V. The problem was that HAXM and Hyper-V couldn’t be installed at the same time. They both use hardware virtualization and only one can be active at a time since they both lock vt-x.

But I wanted a way which involved using both the virtualizations hyper-v and haxm. I did not want to completely disable one and work on the other only.

The solution to this problem was that I had to create a new boot entry to start Windows without hyper threading turned on in it. By doing so, I was able to resolve this error. I could have disabled Hyper-V altogether for this. But I had to do Windows Phone development at times too. Hence, I wanted both the options available on demand so as to be able to juggle between the two easily.

Essentially, what you have to do is edit your boot.ini file and add another option to start windows with Hyper-V turned off. Using this method, you can switch to the profile you want on boot, depending on whether you wish to do android development or Windows Phone development. Both emulators will be accelerated using the respective virtualization according to the entry selected.

Steps to do so are:

  1. Open command prompt in elevated mode (administrator privileges).
  2. Put in the command
    bcdedit /copy {current} /d “Windows with hypervisor”
    This step copies your current boot entry into a new one with a different name. You can name this profile to whatever you wish to, this is just the display name in the booting up section.
  3. You can then type in the next command as
    bcdedit /set “{current}” hypervisorlaunchtype off
    which sets the hypervisor off for the current boot entry and then you can install HAXM for android development on this boot entry.

So after these steps, you can decide which profile to load at boot and then work accordingly on Android or Windows Phone development. Let us know any alternative ways in comments if you have any!

Saransh Kataria

Born in Delhi, India, Saransh Kataria is the brain behind Wisdom Geek. Currently, Saransh is a software developer at a reputed firm in Austin, and he likes playing with new technologies to explore different possibilities. He holds an engineering degree in Computer Science. He also shares his passion for sharing knowledge as the community lead at Facebook Developer Circle Delhi, NCR which is a developer community in Delhi, India.

View Comments

Share
Published by
Saransh Kataria

Recent Posts

Remapping keyboard keys to avoid Carpal Tunnel

I am terrible at optimizing my keyboard layout for anything. But off lately, my little…

1 month ago

Fixing cookies are blocked for a website with shields down on Brave

I recently switched completely to the Brave browser and have set ad blocking to aggressive…

5 months ago

Generating a QR code using Node.js

I was preparing a slide deck for a hackathon and decided to put in a…

6 months ago

How to clear the global npx cache

I have been using npx a lot lately, especially whenever I want to use a…

7 months ago

Copy/Pasting output from the terminal

Manually copy-pasting the output of a terminal command with a mouse/trackpad feels tedious. It is…

7 months ago

How To Get The Hash of A File In Node.js

While working on a project, I wanted to do an integrity check of a file…

8 months ago
Advertisements