VMware Communities
alert101
Enthusiast
Enthusiast

Workstation 9 + Intel HAXM + Android emulator

Has anyone been able to get the Android emulator working without sluggishenes? For me it's possible to run apps with Android 2.x, but debugging is extremly slow. Android 4.x (Intel x86 system image) refuses to start when running in a guest OS. Enabling virtualized VT-x allows me to install Intel HAXM, but the x86 image still refuses to run (or takes very very long to boot, I gave up after waiting for 15 minutes).

Is it possible to have hardware acceleration with the emulator in a VM?

Also, is OpenGL ES supported with Workstation 9?

Host Win7 x64, i7 3820 quad-core + HT, 16GB RAM

Guest Win7 x64, 4 CPU, 8GB RAM

Reply
0 Kudos
22 Replies
admin
Immortal
Immortal

HAXM does some things that hinder its performance as a guest hypervisor.  I don't think you're going to find any way to improve its performance under Workstation 9.

As an alternative, I see that the Android emulator can use KVM on a Linux system.  You may find the performance to be better running Workstation 9 + Linux KVM + Android emulator.

KVM is a much better guest hypervisor than HAXM.

alert101
Enthusiast
Enthusiast

Thanks for the information.

Thing is, it's a bit hard to use Linux when developing with Visual Studio and Mono for Android. Smiley Wink

Reply
0 Kudos
admin
Immortal
Immortal

I'm working with Intel to see if we can speed things up.

Reply
0 Kudos
alert101
Enthusiast
Enthusiast

Glad to hear. This is the only thing that remains until my whole development environment would be perfectly working in a VM. The emulator is usable, but somewhat slow. Although this is mostly related to debugging on the emulator.

Reply
0 Kudos
DMITRI201110141
Contributor
Contributor

I'm also interested in finding solution on running HAXM on a host where VmWare is also installed. I don't need to run them at the same time.

Currently with the latest HAXM (1.01) and Android x86 Atom image I get the following error (running under unprivileged used):

Starting emulator for AVD 'My_Test_Android_x86_Atom'
emulator: device fd:1648
HAX is not working and emulator runs in emulation mode
emulator: Open the vm devcie error:\\.\hax_vm00, ec:2
emulator: Open vm device error:(null)
emulator: Failed to create HAX VM

and running under Administrator results in the error below:

Starting emulator for AVD 'My_Test_Android_x86_Atom'
emulator: device fd:1712
HAX is not working and emulator runs in emulation mode
emulator: error code:31
emulator: Failed to create vm ffffffff
emulator: Failed to create HAX VM
emulator: emulator window was out of view and was recentered

intelhaxm is running:

sc query intelhaxm

SERVICE_NAME: intelhaxm
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

According to Adroid instructions I have to unload VmWare driver:

http://developer.android.com/tools/devices/emulator.html

  • "...Other VM Drivers - If you are running another virtualization technology on your system such as VirtualBox or VMWare, you may need to unload the driver for that virtual machine hosting software before running an accelerated emulator."

and it's not what I'd like to do each time I need to run Android emulator

for record my Host platform is XP sp3, x32, DEP enabled

Reply
0 Kudos
alert101
Enthusiast
Enthusiast

This topic is about running the Android emulator + HAXM specifically on the guest, not the host.

Reply
0 Kudos
DMITRI201110141
Contributor
Contributor

running on guest would be fine too, but neither works

BTW, why not to run Android (x86 Atom) itself as a guest OS under vmWare?

Please consider this as a feature request Smiley Happy

Reply
0 Kudos
alert101
Enthusiast
Enthusiast

You can do both. I'm running it under the guest and I've also run Android directly under VMware Player (http://www.android-x86.org).

Reply
0 Kudos
DMITRI201110141
Contributor
Contributor

Is it VmWare Workstation 9 feature or it was supported in earlier versions as well?

Is running android/x86 atom supported by VmWare Fusion 4.1 running under MacOSX?

Reply
0 Kudos
admin
Immortal
Immortal

Workstation 8 also provides support for guest hypervisors that require VT-x, as long as your host supports EPT. This should also work under Fusion 4, but isn't supported. See javascript:;

Reply
0 Kudos
alert101
Enthusiast
Enthusiast

I don't know about Fusion.

I've ran the emulator under WS8 and WS9 (Windows 7 guests) and Android-x86 as its own VM under WS9, can't remember if I ever tried it on WS8.

Enable Virtualize VT-x/AMD-V if possible, gives a nice performance boost.

Reply
0 Kudos
DMITRI201110141
Contributor
Contributor

Well, seems you didn't get me right -- you tell you ran Android emulator. This is not a problem for me either. I run it too. The problem is that the emulation runs very very slow even under modern system based on Ivy-Bridge-III 3.9GHz 4core CPUs with plenty RAM.

Seems that HARDWARE ACCELERATED emulation of Android OS for x86 Atom target platform can help running faster.

There is Intel-developed product HAXM available among Android packages and this product is intended to do this hw assisted emulation. Unfortunately this HAXM fails to work at all if VmWare is installed.

Hope I made it clearer a bit -- there is a problem between VmWare and HAXM -- both under Host and under Guest. Both VmWare and HAXM are using VT and perhaps that's the problem.

I think that VmWare can implement their own hw-assisted Atom emulation for Android platform. Although it's not exactly their business, it's very close. At least VmWare if they have already started working with Intel on this issue will resolve the conflict between HAXM and VmWare WS.

Reply
0 Kudos
admin
Immortal
Immortal

Which version of Workstation are you running, and on which physical CPU.

Reply
0 Kudos
DMITRI201110141
Contributor
Contributor

3 cases:

Tried to install HAXM under Fusion 4.1 running XP xp3 x64 (guest OS), host: my own MacBook Air 2012, i5-3427U, Mac OSX 10.7.5.

Failed with "...does not support Intel Virtualization Technology (VT-x)"

I also tried my customer's machine i5-3570K.

HAXM installed w/o problems, but Android emulator fails to use it. Error message differs depending on whther I run Android emulator as a regular (unprivileged) user or as administrator.

VmWare WS is installed there too, but didn't run.

I'm not sure what version of VmWare is installed, I can check it tomorrow if it makes sense.

Reply
0 Kudos
admin
Immortal
Immortal

Dmitri Dmitrienko wrote:

3 cases:

Tried to install HAXM under Fusion 4.1 running XP xp3 x64 (guest OS), host: my own MacBook Air 2012, i5-3427U, Mac OSX 10.7.5.

Failed with "...does not support Intel Virtualization Technology (VT-x)"

This is probably because you haven't enabled virtualized VT-x for your Windows XP guest.  Though technically not supported in Fusion 4, virtualized VT-x can be enabled by adding the following configuration option to your .vmx file:

vhv.enable = TRUE


For more information, see javascript:;.

I also tried my customer's machine i5-3570K.

HAXM installed w/o problems, but Android emulator fails to use it. Error message differs depending on whther I run Android emulator as a regular (unprivileged) user or as administrator.

VmWare WS is installed there too, but didn't run.

I'm not sure what version of VmWare is installed, I can check it tomorrow if it makes sense.

Workstation from version 7 onwards should not have any problems coexisting with foreign hypervisors. If you uninstall Workstation, does the Android emulator use HAXM?

Reply
0 Kudos
DMITRI201110141
Contributor
Contributor

Thanks for your suggestions. Sorry to say that no luck with vhv.enable = TRUE on my Mac running Fusion 4.1.3 (730298).

I shutted down guest OS, stopped Fusion, added the setting to *.vmx file, made sure that no other vhv.enable in the other lines, re-launched Fusion and started guest OS, made sure that the settings is still in the file (it changed its line# btw) and still HAXM says that VT-x is not supported.


Regarding host-OS case -- as I said it's not my own machine and I can't uninstall anything, but I will try to convice the owner to try, then will get back with results. BTW version of VmWare workstation is 7.1, so if I get it right this version of VmWare not supposed to interfere with HAXM on host OS, right?

Reply
0 Kudos
admin
Immortal
Immortal

Dmitri Dmitrienko wrote:

Thanks for your suggestions. Sorry to say that no luck with vhv.enable = TRUE on my Mac running Fusion 4.1.3 (730298).

I shutted down guest OS, stopped Fusion, added the setting to *.vmx file, made sure that no other vhv.enable in the other lines, re-launched Fusion and started guest OS, made sure that the settings is still in the file (it changed its line# btw) and still HAXM says that VT-x is not supported.

Make sure that the VM has virtual hardware version 8.  If you still don't have success, please post the vmware.log file.

Regarding host-OS case -- as I said it's not my own machine and I can't uninstall anything, but I will try to convice the owner to try, then will get back with results. BTW version of VmWare workstation is 7.1, so if I get it right this version of VmWare not supposed to interfere with HAXM on host OS, right?

That's correct.

Reply
0 Kudos
DMITRI201110141
Contributor
Contributor

vmware.log is attached

and yes, virtual hw is v8. Moreover, I found the setting below and turned it into VT-x with EPT, then rebooted and grabbed the log above right after its start

Screen Shot 2012-10-12 at 6.49.20 PM.png

Reply
0 Kudos
admin
Immortal
Immortal

Sorry. That's not the log I'm interested in. I'd like to see the vmware.log file for the VM. It's in the same place as the .vmx file. It's best if you post it as an attachment.

Thanks!

Reply
0 Kudos