2

I'm doing Android development, and the emulation is (unsurprisingly) slow. I see there's some documentation for setting up hardware acceleration (Intel HAXM) at http://software.intel.com/en-us/articles/speeding-up-the-android-emulator-on-intel-architecture

This documentation covers installation for Windows and Linux, but for Linux it's Ubuntu specific - has anyone had success with setting this up on Fedora, or other recent RPM-based distro?

0

1 Answer 1

7

I've got this working on a Fedora 19 install, it's straightforward and worthwhile...

Install virtualization

This is documented at https://fedoraproject.org/wiki/Getting_started_with_virtualization

install package group "virtualization"

sudo yum install @virtualization

this installs packages virt-install, libvirt, libvirt-daemon-kvm, qemu-kvm, virt-manager, virt-viewer and deps


Start KVM and test

$ sudo systemctl start libvirtd

(if your distro uses the service command rather than new-fangled systemctl, you'll want use that to start libvirtd instead)

Verify that the kvm kernel modules were properly loaded:

$ lsmod | grep kvm
kvm_amd                55563  0 
kvm                   419458  1 kvm_amd

You can also verify using the virsh management tool

$ sudo virsh list

this gives an empty list e.g.

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

You may need to log out & log back in.

Running the hardware accelerated device

I then tried starting a virtual device (having first downloaded an x86 system image using the SDK manager) and it seemed fast (started in ~10 seconds, and UI is snappy). However the loading dialog didn't display the "HAX is working and emulator runs in fast virt mode" message specified by the Intel docs. Don't be disheartened; it's a nice thing to see not an end in itself.

Finesse

Running on the command line showed an error message. You can run the emulator on the command line in the SDK/tools directory, specifying the AVD name (same as you'll see in the virtual device manager):

[path/to/SDK/tools]$ ./emulator64-x86 -avd <AVD name>Nexus_S_4.0.3_x86 -qemu -m 2047 -enable-kvm

e.g.

[path/to/SDK/tools]$ ./emulator64-x86 -avd Nexus_S_4.0.3_x86 -qemu -m 2047 -enable-kvm

this returned the error

emulator: ERROR: Could not load OpenGLES emulation library: lib64OpenglRender.so: cannot open shared object file: No such file or directory
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.

this can be fixed by adding the tools/lib directory to LD_LIBRARY_PATH e.g. by running as

[path/to/SDK/tools]$ LD_LIBRARY_PATH=path/to/sdk/tools/lib ./emulator64-x86 -avd Nexus_S_4.0.3_x86  -qemu -m 2047 -enable-kvm

Summary

I'm very pleased with how fast this is, and it's well worth the trouble. The emulator starts in 6 seconds on my unspectacular desktop, and runs as nicely as the real hardware.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .