web-dev-qa-db-fra.com

Android Studio 2.3 utilisant l'émulateur depuis la console, "périphérique/dev/kvm: autorisation refusée" pour l'utilisateur root

J'essaie de démarrer un périphérique Android virtuel que j'ai créé avec le gestionnaire d'avdmanager de Android Studio 2.3 (via la ligne de commande)

toutes les commandes sont exécutées en tant que utilisateur root

quand j'essaie de démarrer l'émulateur via $ ~/Android/Sdk/tools/./emulator @Nexus_5X_Api_23_x86, la sortie est:

emulator: ERROR: x86_64 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)

J'utilise un serveur Ubuntu 16.04 avec 64 bits, Android Studio est lancé via un transfert x11; mon environnement de bureau est donc utilisé (ce qui est un Ubuntu 16.04, 64 bits aussi!)

quand je tape $ kvm-ok cela me donne:

INFO: /dev/kvm exists KVM acceleration can be used

Pour prouver que le fichier .avd auquel j'essaie d'accéder existe:
$ ~/Android/Sdk/tools/bin/./avdmanager list avd 

donne le résultat:
März 15, 2017 4:30:53 NACHM. Sun.util.PropertyResourceBundleCharset$PropertiesFileDecoder decodeLoop INFO: Invalid or unmappable UTF-8 sequence detected. Switching encoding from UTF-8 to ISO-8859-1 Available Android Virtual Devices: Name: Nexus_5X_Api_23_x86 Device: Nexus 5X (Google) Path: /root/.Android/avd/Nexus_5X_Api_23_x86.avd Target: Google APIs (Google Inc.) Based on: Android 6.0 (Marshmallow) Tag/ABI: google_apis/x86_64 Sdcard: 800M

plus loin les permissions pour /dev/kvm sont:

root@h2627852:~# ls -l /dev/kvm crwxrwxrwx 1 root kvm 10, 232 Mär 15 10:48 /dev/kvm root@h2627852:~# groups root root : root kvm libvirtd libvirt

effectuer emulator-check me donne: 

root@h2627852:~# ~/Android/Sdk/tools/./emulator-check accel hyper-v cpu-info window-mgr desktop-env accel: 11 This user doesn't have permissions to use KVM (/dev/kvm) accel hyper-v: 0 Hyper-V runs only on Windows hyper-v cpu-info: 146 Intel CPU|Virtualization is supported|64-bit CPU| cpu-info debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384 debug1: client_request_x11: request from ::1 36346 debug1: channel 1: new [x11] debug1: confirm x11 debug1: channel 1: FORCE input drain window-mgr: 0 GNOME Shell window-mgr desktop-env: 0 mate desktop-env

Je ne sais vraiment plus quoi faire, j'ai cherché dans tout le forum, mais je n'ai pas trouvé de réplique de ce problème pour mon système. Les correctifs du même problème sur d'autres systèmes ne fonctionnaient pas pour moi. purger et réinstaller tous les paquets qemu, libvirt, libvirtd et kvm sans succès. 

Toute aide est appréciée !!

modifier:
~/Android/Sdk/tools/./emulator @Nexus_5X_Api_23_x86 -verbose donnez-moi,

sortie suivante: 

emulator:Android emulator version 25.3.0.0 (build_id 3394391)
emulator:Found AVD name 'Nexus_5X_Api_23_x86'
emulator:Found AVD target architecture: x86_64
emulator:argv[0]: '/root/Android/Sdk/tools/./emulator'; program directory: '/root/Android/Sdk/tools'
emulator:  Found directory: /root/Android/Sdk/system-images/Android-23/google_apis/x86_64/

emulator:Probing for /root/Android/Sdk/system-images/Android-23/google_apis/x86_64//kernel-ranchu: file exists
emulator:Auto-config: -engine qemu2 (based on configuration)
emulator:  Found directory: /root/Android/Sdk/system-images/Android-23/google_apis/x86_64/

emulator:try dir /root/Android/Sdk/tools
emulator:try dir /root/Android/Sdk/tools/./
emulator:try dir /root/Android/Sdk/emulator
emulator:Found target-specific 64-bit emulator binary: /root/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64
emulator:Adding library search path: '/root/Android/Sdk/emulator/lib64'
emulator:Adding library search path: '/root/Android/Sdk/emulator/lib64/libstdc++'
emulator:  Found directory: /root/Android/Sdk/system-images/Android-23/google_apis/x86_64/

emulator:  Found directory: /root/Android/Sdk/system-images/Android-23/google_apis/x86_64/

emulator:GPU emulation is disabled
emulator: Adding library search path for Qt: '/root/Android/Sdk/emulator/lib64/qt/lib'
emulator: Setting Qt plugin search path: QT_QPA_PLATFORM_PLUGIN_PATH=/root/Android/Sdk/emulator/lib64/qt/plugins
emulator: Running :/root/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64
emulator: qemu backend: argv[00] = "/root/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64"
emulator: qemu backend: argv[01] = "@Nexus_5X_Api_23_x86"
emulator: qemu backend: argv[02] = "-verbose"
emulator: Concatenated backend parameters:
 /root/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64 @Nexus_5X_Api_23_x86 -verbose
emulator: Android virtual device file at: /root/.Android/avd/Nexus_5X_Api_23_x86.ini
emulator: virtual device content at /root/.Android/avd/Nexus_5X_Api_23_x86.avd
emulator: virtual device config file: /root/.Android/avd/Nexus_5X_Api_23_x86.avd/config.ini
emulator: using core hw config path: /root/.Android/avd/Nexus_5X_Api_23_x86.avd/hardware-qemu.ini
emulator: Found AVD target API level: 23
emulator: Read property file at /root/Android/Sdk/system-images/Android-23/google_apis/x86_64//build.prop
emulator: No boot.prop property file found.
emulator: Warning: config.ini contains invalid skin.path entry: (null)
emulator: autoconfig: -skin HVGA
emulator: autoconfig: -skindir (null)
emulator: autoconfig: -kernel /root/Android/Sdk/system-images/Android-23/google_apis/x86_64//kernel-ranchu
emulator: Target Arch = 'x86_64'
emulator: Auto-detect: Kernel image requires new device naming scheme.
emulator: Auto-detect: Kernel does not support YAFFS2 partitions.
emulator: autoconfig: -ramdisk /root/Android/Sdk/system-images/Android-23/google_apis/x86_64//ramdisk.img
emulator: Using initial system image: /root/Android/Sdk/system-images/Android-23/google_apis/x86_64//system.img
emulator: autoconfig: -data /root/.Android/avd/Nexus_5X_Api_23_x86.avd/userdata-qemu.img
emulator: autoconfig: -initdata /root/.Android/avd/Nexus_5X_Api_23_x86.avd/userdata.img
emulator: autoconfig: -cache /root/.Android/avd/Nexus_5X_Api_23_x86.avd/cache.img
emulator: autoconfig: -sdcard /root/.Android/avd/Nexus_5X_Api_23_x86.avd/sdcard.img
emulator: Increasing RAM size to 1024MB
emulator: VM heap size 0MB is below hardware specified minimum of 256MB,setting it to that value
emulator: System image is read only
emulator: GPU emulation is disabled
emulator: Found 2 DNS servers: 85.214.7.22 81.169.163.106
emulator: skin name 'HVGA' aliased to '320x480'
emulator: found magic skin width=320 height=480 bpp=16

emulator: CPU Acceleration: DISABLED
emulator: CPU Acceleration status: This user doesn't have permissions to use KVM (/dev/kvm)
emulator: ERROR: x86_64 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)
8
Johannes Griebenow

Essayez simplement ceci ... c'est un travail pour moi

$ Sudo chown username -R /dev/kvm

parfois, vous devez aussi exécuter ce code

$ cd Android/Sdk/emulator/lib64/libstdc++
$ mv libstdc++.so.6 libstdc++.so.6.bak
$ ln -s /usr/lib64/libstdc++.so.6
20
Ragulan28

Cela a fonctionné pour moi (je ne sais pas si vous avez toujours le problème)

Install Qemu-KVM and cpu-checker

apt-get install qemu-kvm cpu-checker

Check if KVM is available (as jenkins user

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

Create group kvm and add <your_user> to this group

addgroup kvm
usermod -a -G kvm jenkins

Change group ownership for /dev/kvm

chgrp kvm /dev/kvm

Create udev rule

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

Reboot

Source: Exécuter un émulateur Android pendant la construction de jenkins

3
James T

Essayez ces étapes:

Installez qemu-kvm comme suit

Sudo apt install qemu-kvm

Ajoutez un utilisateur au groupe kvm à l'aide de la commande suivante:

Sudo adduser <username> kvm

Si vous obtenez autorisation refusée, essayez la commande suivante

Sudo chown <username> /dev/kvm

Cela a fonctionné pour moi dans Ubuntu 18.04

3
Jerin A Mathews