Android Studio: /dev/kvm设备权限被拒绝

当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:

/dev/kvm权限被拒绝。

我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?

451341 次浏览

正如评论中提到的,从Ubuntu 18.04Linux Mint Tara开始,你首先需要sudo apt install qemu-kvm

检查/dev/kvm使用的所有权

ls -al /dev/kvm

用户为root,组为kvm。要检查哪些用户在kvm组中,使用

grep kvm /etc/group

这返回

kvm:x:some_number:

在我的系统上:因为最终的:没有任何东西向右,所以kvm组中没有用户。

将用户添加到KVM组,您可以使用

sudo adduser $USER kvm

它将用户添加到组中,并再次使用grep kvm /etc/group检查。

正如@marcolz所提到的,命令newgrp kvm应该为您实时更改组成员。如果这不起作用,@Knossos提到您可能需要注销并重新登录(或重新启动),以便权限生效。或者执行@nmirceac提到并通过su - $USER在同一个shell中重新登录。

试试这个,对我很管用:

  1. < p > # EYZ0

  2. < p > # EYZ0

在Ubuntu 18.04中运行以下命令对我有用 sudo chown -R /dev/kvm

这就是我如何让它在Ubuntu 18.04中工作

sudo apt install qemu-kvm

使用以下方法将用户添加到kvm组:

sudo adduser <Replace with username> kvm

如果仍然显示没有权限:

sudo chown <Replace with username> /dev/kvm

试一试。

你是否也试过下面的方法,应该能奏效:

sudo chown <username> /dev/kvm
sudo chmod o+x /dev/kvm

我在类似的情况下,在/dev/kvm上有相同的权限错误 我已经完成了必要的安装,但没有将用户添加到kvm组 我要做的就是

sudo adduser <Replace with username> kvm

当然,不要忘记重新启动你的Ubuntu实例。

在更新ubuntu到18.04.1后,我得到了这个错误。我只是下载新的系统镜像模拟器或你可以说下载新的模拟器,它是为我工作。

如果你用sudo打开你的ide。你不会遇到这个问题。

这是因为/dev/kvm不可访问。要从android studio中访问,请运行以下命令

sudo chmod 777 -R /dev/kvm

它会询问你的密码。之后,重新启动Android Studio。

KVM需要朗姆酒模拟器。如果您还没有安装它,那么就安装它

sudo apt install qemu-kvm
sudo setfacl -m u:$USER:rwx /dev/kvm

为我工作。

我解决了同样的问题,要解决这个问题,只需在Linux客户端的终端中输入以下命令

   sudo apt-get install qemu-kvm


// type your password


sudo chmod 777 -R /dev/kvm

之后尝试运行模拟器,它会工作

打开终端,以管理员身份登录

sudo su

进入dev文件夹

cd /dev/

切换kvm模式

chmod 777 -R kvm

我正在使用linux debian,我正面对同样的方式。在我的AVD显示我的消息“/dev/kvm权限被拒绝”,我试图找到解决方案,然后我要解决的是,在终端类型:

sudo chmod -R 777 /dev/kvm

它将授予文件夹/dev/kvm的访问权限,然后再次检查AVD,错误消息将消失,希望它会有所帮助。

这适用于我的Linux (x18) ☑希望它也适用于你

sudo chown hp /dev/kvm

终端类型:

sudo apt install qemu-kvm -y
sudo chown $USER /dev/kvm

在Ubuntu 18.04中,通过使用bash终端中可用的$USER变量来修复这个错误,对于Jerrin的的回答只有一个轻微的改进。所以你可以使用以下命令两个命令:

sudo apt install qemu-kvm

将当前用户加入kvm组

sudo adduser $USER kvm

如果你仍然有问题,另一个问题是我安装Ubuntu的方式。我在安装过程中错误地勾选了安装第三方软件的方框,这与我的nvidia显卡开发不太匹配。所以我用第三方软件无节制的重新安装了Ubuntu。

enter image description here

安装完成后,打开Software &更新并进入附加驱动程序选项卡。选择最新的、也经过测试的专有驱动程序,并应用更改。应重新启动计算机以使更改生效。

enter image description here

sudo chown $USER /dev/kvm

在2019年9月,简单地运行一个命令对我有用:

描述:Ubuntu 18.04.3

LTS发布:18.04

代号:仿生

我使用的是ubuntu 18.04。我也面临着同样的问题。我在终端上运行这条命令,问题就解决了。

sudo chown $USER /dev/kvm

上面的命令适用于系统中的所有用户。

如果你想只给一个特定的用户访问权限,那么运行这个命令

sudo chown UserNameHere /dev/kvm

如果你只想运行Android Studio模拟器,完全没有必要安装qemu-kvm(以及它的所有依赖项)。

你要做的唯一一件事就是给你的用户(即你登录的用户)访问# eyz0 -设备的权利。

这需要三个简单的步骤。

第一:

创建# eyz0 -组

# EYZ0

选项-r创建一个系统组,即GID <= 999(参见/etc/login.defs => SYS_GID_MAX)

第二:

修改/dev/kvm的权限。这可以作为# eyz1 -安装的一部分来完成,因为其中一个依赖项是安装qemu-system-common(在当前的Ubuntu系统上,包名可能不同),它反过来安装包含以下内容的/lib/udev/rules.d/60-qemu-system-common.rules文件:

KERNEL=="kvm", GROUP="kvm", MODE="0660"

因此,如果您只是创建一个包含上面一行的文件/etc/udev/rules.d/60-qemu-permissions.rules,那么您就完成了第一步。

第三:

通过执行将您的用户名添加到组中

usermod -a -G kvm <your_username> - -a对于kvm组的添加用户很重要。否则,您将覆盖组设置为您的用户只属于“kvm”…

就是这样。

为了使新的udev规则和组设置生效,重新启动并再次登录是最容易的。

你也可以执行

# EYZ0

用于重新加载规则,但您仍然必须注销,并再次登录关于新组。

这里有一个简单的解决办法

打开终端,执行以下命令

sudo groupadd -r kvm

sudo gedit /lib/udev/rules.d/60-qemu-system-common.rules

在打开的文件中添加以下行并保存它

KERNEL=="kvm", GROUP="kvm", MODE="0660"

最后运行:

sudo usermod -a -G kvm <your_username>

重启你的电脑,完成!

最终在Ubuntu 18.04上为我解决了这个问题:

sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm

虽然KVM是内置在Linux内核本身的模块,但这并不意味着默认情况下Ubuntu/Linux安装中包含了所有必要的包。你将需要一些来开始,它们可以在终端中使用以下命令安装:

& sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager

# EYZ0

为了让虚拟机访问网络接口并分配它们自己的IP地址,我们需要在系统上配置桥接网络。

首先,运行以下Linux命令,以找出分配给您的网络接口的名称。知道这一点之后,我们就可以进行额外的配置。

$ ip a

# EYZ0

在我的示例中,网络接口称为enp2s0。你的名字可能会非常相似。

为了告诉Ubuntu我们想要桥接连接,我们需要编辑网络接口配置文件。这样做完全不会对你们的联系产生负面影响。它只允许该连接与vm共享。

使用code (Visual Studio Code)或您最喜欢的文本编辑器打开以下文件:

$ code /etc/network/interfaces

当您第一次打开这个文件时,它可能是空的,或者只包含几行。你的桥接接口被称为br0,所以添加下面的行使接口默认出现:

auto br0

在这一行下面,为当前的网络接口添加以下一行(前面确定的名称)。

iface enp2s0 inet manual

接下来,您可以添加桥接信息。这些行告诉Ubuntu你的网桥将使用DHCP自动分配IP地址,你的网桥将管理你当前的接口。

iface br0 inet dhcp
bridge_ports enp2s0

这是应用所有更改后的文件外观(如果你也有一些已经存在的行,也可以保留它们):

Network interfaces configuration file

保存更改并退出文件。

# EYZ0

为了在没有root权限的情况下管理虚拟机,您的用户需要属于两个用户组。运行以下命令将您的用户添加到相应的组(将user1替换为您的用户名):

$ sudo adduser user1 libvirt
$ sudo adduser user1 libvirt-qemu
$ sudo adduser user1 kvm

完成后,您应该重新启动系统,以确保对用户和网络配置所做的所有更改都有机会生效。

为了在Linux中制作一个虚拟设备-我必须遵循这三个命令,它可以帮助我避免构建avd设备的麻烦-过程是-

sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm

所以,现在你已经准备好了,重新启动android studio并开始使用模拟器构建应用程序。

使用该命令提供适当的权限

sudo chmod 777 -R /dev/kvm

在Ubuntu下,/dev/kvm的权限通常是这样的:

$ ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 May 24 09:54 /dev/kvm

运行Android模拟器的用户(即您的用户)需要访问此设备。

因此,基本上有两种访问方式:

  • 确保您的用户是kvm组的一部分(更改后需要您的用户重新登录)
  • 扩大该设备的权限,以便您的用户可以访问(需要更改udev守护进程配置)

将用户添加到KVM组

检查您的用户是否已经是kvm组的一部分,例如:

$ id
uid=1000(juser) gid=1000(juser) groups=1000(juser),10(wheel)

如果不是,那就加上例如:

$ sudo usermod --append --groups kvm juser

更改之后,您必须注销并再次登录以使组更改生效(再次使用id检查)。

扩大权限

或者,您也可以扩大/dev/kvm设备的权限。

例子:

echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
| sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

FWIW,这是其他发行版(如Fedora和CentOS)的默认设置。

使用另一个ls检查上述命令的有效性。你应该看到类似的输出:

$ ls -l /dev/kvm
crw-rw-rw-. 1 root kvm 10, 232 2020-05-16 09:19 /dev/kvm

最大的优势:您不需要注销并再次登录才能使此更改生效。

没有办法的办法

  • 直接在/dev/kvm上调用chmodchown - 1)这些更改不会持续重启2)由于/dev/kvm权限由udev守护进程控制,它可以在任何时候“修复”其权限,例如在每个模拟器运行之后
  • 添加可执行权限到/dev/kvm -你的模拟器只需要读写权限
  • /dev/kvm上递归地更改权限-我不知道这是什么-看起来像货物邪教
  • 安装额外的包,如qemu -你已经安装了模拟器-你只需要访问/dev/kvm设备
  1. 我试过sudo setfacl -m u:UserName:rwx /dev/kvm。这很有效。

  2. 在android studio你需要改变:tools>Avd管理器>(选择笔编辑您的设备和改变'图形'从自动到软件),以避免模拟器绘制错误

步骤1:安装qemu-kvm

sudo apt install qemu-kvm

步骤2:(将用户添加到kvm组)

sudo adduser username kvm

步骤3:(如果仍然显示权限被拒绝)

sudo chown username /dev/kvm

最后一步:

ls -al /dev/kvm

以下是我所做的:

user@user:~$ whoami

安东尼奥

sudo apt install qemu-kvm


sudo adduser antonio kvm


sudo chown antonio /dev/kvm

最后但同样重要的

在Android工作室 选择文件->重新启动IDE < / p >

要应用更改

然后创建模拟器

/ dev / kvm权限拒绝android工作室

[主板]在BIOS中设置VT(虚拟化技术),安装虚拟机

enter image description here