jenkins android-emulator continuous-integration kvm

Ejecutando el emulador de Android durante la construcción de jenkins



android-emulator continuous-integration (1)

Instalé Jenkins y configuré un trabajo de compilación con un emulador ejecutándose durante la compilación. Pero cuando ejecuto el trabajo, recibo el mensaje de error de que el usuario de jenkins no tiene permiso para ejecutar kvm. Cómo puedo arreglarlo.

$ android list target [android] Using Android SDK: /opt/android/sdk $ adb start-server * daemon not running. starting it now on port 5973 * * daemon started successfully * $ adb start-server [android] Starting Android emulator [android] Erasing existing emulator data... $ emulator -ports 5971,5972 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_160_1024x768_android-15_x86 -no-snapshot-load -no-snapshot-save -wipe-data emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure KVM is properly installed and usable. CPU acceleration status: This user doesn''t have permissions to use KVM (/dev/kvm). [android] Emulator did not appear to start; giving up $ adb disconnect localhost:5972 [android] Stopping Android emulator $ adb kill-server

Permisos

$ ls -l /dev/kvm crw-rw----+ 1 root root 10, 232 May 6 13:46 /dev/kvm $ groups jenkins jenkins : jenkins


He logrado arreglar el problema.

  1. Instale Qemu-KVM y cpu-checker

    apt-get install qemu-kvm cpu-checker

  2. Compruebe si KVM está disponible (como usuario de jenkins

    $ kvm-ok INFO: /dev/kvm exists KVM acceleration can be used

  3. Crea group kvm y agrega jenkins a este grupo

    addgroup kvm usermod -a -G kvm jenkins

  4. Cambiar la propiedad del grupo para /dev/kvm

    chgrp kvm /dev/kvm

  5. Crear la regla de udev

    $ sudo nano /etc/udev/rules.d/60-qemu-kvm.rules KERNEL=="kvm", GROUP="kvm", MODE="0660"

  6. Reiniciar