2 votos

¿Crear la emulación de Android acelerada por hardware (HAXM) en Fedora u otras distribuciones RPM?

Estoy haciendo el desarrollo de Android, y la emulación es (sin sorpresa) lento. Veo que hay alguna documentación para configurar la aceleración por hardware (Intel HAXM) en http://software.intel.com/en-us/articles/speeding-up-the-Android-emulator-on-intel-architecture

Esta documentación cubre la instalación para Windows y Linux, pero para Linux es específica de Ubuntu - ¿alguien ha tenido éxito con la configuración de esto en Fedora, u otra distro reciente basada en RPM?

7voto

Anthony Puntos 56

He conseguido que esto funcione en una instalación de Fedora 19, es sencillo y merece la pena...

Instalar la virtualización

Esto está documentado en https://fedoraproject.org/wiki/Getting_started_with_virtualization

instalar el grupo de paquetes "virtualización"

sudo yum install @virtualization

esto instala los paquetes virt-install, libvirt, libvirt-daemon-kvm, qemu-kvm, virt-manager, virt-viewer y deps


Iniciar KVM y probar

$ sudo systemctl start libvirtd

(si su distro utiliza el servicio en lugar de la novedosa systemctl (en lugar de eso, querrá utilizarlo para iniciar libvirtd)

Verifique que los módulos del kernel kvm fueron cargados correctamente:

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

También puede verificar usando la herramienta de gestión virsh

$ sudo virsh list

esto da una lista vacía, por ejemplo

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

Es posible que tenga que cerrar la sesión y volver a iniciarla.

Ejecución del dispositivo acelerado por hardware

Luego intenté iniciar un dispositivo virtual (habiendo descargado primero una imagen del sistema x86 usando el gestor del SDK) y parecía rápido (se inició en ~10 segundos, y la interfaz de usuario es ágil). Sin embargo, el diálogo de carga no mostró el "HAX funciona y el emulador se ejecuta en modo virt rápido" mensaje especificado por los documentos de Intel. No te desanimes; es algo agradable de ver, no un fin en sí mismo.

Finesse

La ejecución en la línea de comandos mostró un mensaje de error. Puedes ejecutar el emulador en la línea de comandos en el directorio SDK/tools, especificando el nombre del AVD (el mismo que verás en el gestor de dispositivos virtuales):

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

Por ejemplo

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

esto devolvió el 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.

esto se puede arreglar añadiendo el directorio tools/lib a LD_LIBRARY_PATH por ejemplo, ejecutando como

[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

Resumen

Soy muy satisfecho con lo rápido que es, y merece la pena. El emulador se inicia en 6 segundos en mi poco espectacular escritorio, y se ejecuta tan bien como el hardware real.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X