Software Archive
Read-only legacy content
17061 Discussions

Can the Intel HAXM API be used outside of QEMU?

Gael_H_Intel
Moderator
704 Views

This question is currently on StackOverflow: 

http://stackoverflow.com/questions/20256974/can-the-intel-haxm-api-be-used-outside-of-qemu

The Intel HAXM driver enables KVM-like abilites on Mac OSX and Windows, but at the moment, it appears to only be used by Android's QEMU fork. The API also has a couple of QEMU-specific structures and IOCTLs (hax_qemu_version and HAX_VM_IOCTL_NOTIFY_QEMU_VERSION).

So does the HAXM driver only work with QEMU? Or can I utilize it in a different project?

0 Kudos
4 Replies
Joshua_B_Intel
Employee
704 Views

Gael-

HAXM is "officially" supported on the following platforms:

Windows 8 (32/64-bit), Windows 7 (32/64-bit), Windows Vista* (32/64-bit), Windows XP (32-bit only) and Mac OS X 10.6 and later (32/64-bit)

For HAXM on Linux, the basic instructions for setting it up under Linux (Ubuntu is assumed) are here:

http://software.intel.com/en-us/blogs/2012/03/12/how-to-start-intel-hardware-assisted-virtualization-hypervisor-on-linux-to-speed-up-intel-android-x86-gingerbread-emulator

As HAXM was built to use QEMU, and specifically, to work with the Android Virtual Device Manager, which is part of the Android SDK, it's not really a general purpose virtualization tool.

Without more context to the original question you reposted from StackOverflow (i.e., how is the developer thinking about using HAXM outside of QEMU?), I don't think we have enough information to say one way or the other whether what they have in mind will work. 

My answer would be "try it and see". If they're looking for an officially supported usage, though, that's limited to the OSes described above.

Hope that helps - let me know if you have more questions, or need more info.

0 Kudos
David_B_5
Beginner
704 Views

Josh,

Hi there. I'm the one who posted that question on SO originally.

I was working on an abstraction layer for virtualization APIs to use in a game console emulator and was hoping to include HAX support for Windows and Mac OSX. After I posted that question, I was able to separate the HAX code from QEMU and use the IOCTLs from a different process, so it seems doable. Unfortunately, I had to table the project and work on other things, so I didn't get very far.

Sorry for not posting the question here in the first place. Thank you for your reply and thanks to Gael for re-posting the link here.

0 Kudos
Joshua_B_Intel
Employee
704 Views

David-

That sounds like an interesting project. Let me know if you take it up again - I'd love to hear more about it, and help in any way I can. Have fun! :-)

0 Kudos
hlide_f_
Beginner
704 Views

Hey

I also want to use HAXM for some project involving some game console emulations but fail to find comprehensive API documentation to use it efficiently outside of QEMU.

Regards.

P.S.: I forgot to tell the only thing I found about HAXM outside QEMU is https://github.com/Nukem9/Haxm but the sample is so simple and does not address the different aspects of virtualization (exceptions for instance). In the end I have more question than answers. By the way, it is this project when searching about virtualization which allows for me to acknowledge the  existence of HAXM (with the great addition that you do not need to load an unsigned driver painly - apart from the fact you must disable Hyper-V on Windows 10). 

0 Kudos
Reply