2015-05-06 29 views
7

Ho installato Jenkins e configurato un processo di compilazione con l'emulatore in esecuzione durante la compilazione. Ma quando eseguo il lavoro, ricevo un messaggio di errore che l'utente di jenkins non ha il permesso di eseguire kvm. Come posso aggiustarloEsecuzione di emulatore Android durante la creazione di jenkins

$ 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 

Permessi

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

$ groups jenkins 
jenkins : jenkins 
+0

Esegui 'kvm-ok' e vedi l'output. E ' 'INFO:/dev/kvm esiste accelerazione KVM può essere utilizzazione dell'apparecchio o ' INFORMAZIONI: La CPU non supporta le estensioni KVM accelerazione KVM non può essere utilizzazione corrette ? Potrebbe anche essere necessario inserire la configurazione del BIOS e abilitare la tecnologia di virtualizzazione, quindi dovresti fare come detto :) – stanjer

+0

Come hai mostrato tu stesso, solo 'root' ha il permesso di accedere a/dev/kvm', e' jenkins' non è nel gruppo 'root'. –

risposta

18

sono riuscito a risolvere il problema.

  1. Installare Qemu-KVM e CPU-checker

    apt-get install qemu-kvm cpu-checker

  2. Controllare se KVM è disponibile (come utente Jenkins

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

  3. Creare KVM gruppo e aggiungere Jenkins a questo gruppo

    addgroup kvm usermod -a -G kvm jenkins

  4. Modifica proprietà di gruppo per /dev/kvm

    chgrp kvm /dev/kvm

  5. Crea regola udev

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

  6. Reboot

+3

Il qemu ha già aggiunto un gruppo kvm per me. –

+0

Vedere http://stackoverflow.com/a/43731342/2482947. In Ubuntu dovresti anche aggiungere l'utente 'jenkins' al gruppo' libvirt'. – hadilq