670

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

/dev/kvm 权限被拒绝。

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

4

27 回答 27

1026

如评论中所述,从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:

在我的系统上:由于 final 右侧没有任何内容,因此该组:中没有用户。kvm

要将您的用户添加到 kvm 组,您可以使用

sudo adduser $USER kvm

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

正如@marcolz 所提到的,该命令newgrp kvm应该为您实时更改组成员身份。如果这不起作用,@Knossos 提到您可能需要注销并重新登录(或重新启动),以使权限生效。或者按照@nmirceac 提到的那样做,并通过su - $USER.

于 2017-08-18T05:18:11.060 回答
631

这就是我让它在Ubuntu 18.04中工作的方式

sudo apt install qemu-kvm

使用以下命令将您的用户添加到 kvm 组:

sudo adduser <Replace with username> kvm

如果仍然显示权限被拒绝

sudo chown <Replace with username> /dev/kvm

试试看。

于 2018-06-23T17:23:46.960 回答
49

试试这个,它对我有用:

  1. sudo apt install qemu-kvm

  2. sudo chown -R <username>:<username> /dev/kvm

于 2018-05-21T17:08:33.917 回答
36

这是因为/dev/kvm无法访问。可以从 android studio 访问 make 运行以下命令

sudo chmod 777 -R /dev/kvm

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

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

sudo apt install qemu-kvm
于 2019-01-15T08:48:14.887 回答
32

您是否也尝试过以下操作,它应该可以工作:

sudo chown <username> /dev/kvm
sudo chmod o+x /dev/kvm
于 2018-07-14T18:37:23.377 回答
30
sudo chown $USER /dev/kvm

只需在 2019 年 9 月运行该命令对我有用:

说明:Ubuntu 18.04.3

LTS 发布:18.04

代号:仿生

于 2019-09-14T16:55:27.523 回答
27

第一步:(安装qemu-kvm)

sudo apt install qemu-kvm

第 2 步:(使用将您的用户添加到 kvm 组)

sudo adduser username kvm

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

sudo chown username /dev/kvm

最后一步:

ls -al /dev/kvm
于 2020-10-14T18:10:58.057 回答
24

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

sudo chown $USER /dev/kvm

上述命令适用于您系统中存在的所有用户。

如果您只想授予特定用户访问权限,请运行此命令

sudo chown UserNameHere /dev/kvm
于 2019-10-21T03:00:07.350 回答
21

这是一个简单的解决方案

打开终端并运行以下命令

sudo groupadd -r kvm

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

将以下行添加到打开的文件中并保存

内核==“kvm”,组=“kvm”,模式=“0660”

最后运行:

sudo usermod -a -G kvm <your_username>

重新启动您的 PC 并完成!

于 2019-11-07T08:37:34.590 回答
18

qemu-kvm如果您只想运行 Android Studio Emulator,则绝对不需要安装(及其所有依赖项)。

您唯一需要做的就是授予您的用户(即您登录时使用的用户)访问/dev/kvm-device 的权限。

这通过三个简单的步骤完成。

第一的:

创建kvm-组

groupadd -r kvm

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

第二:

更改 上的权限/dev/kvm。这可以作为qemu-kvm-installation 的一部分完成,因为其中一个依赖项正在安装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-group 很重要。否则,您会将用户的组设置覆盖为仅属于“kvm”...

而已。

要使新的 udev 规则和组设置生效,最简单的方法是重新启动并再次登录。

你也可以执行

udevadm control --reload-rules && udevadm trigger

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

于 2019-11-01T08:32:45.100 回答
17

在 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

最大优势:您无需注销并再次登录即可使此更改生效。

非解决方案

  • 直接调用chmod- 1) 这些更改不会在重新启动后持续存在,2) 由于权限由 udev 守护进程控制,它可以随时“修复”其权限,例如在每次模拟器运行后chown/dev/kvm/dev/kvm
  • 添加可执行权限/dev/kvm- 您的模拟器只需要读取和写入权限
  • 递归更改权限/dev/kvm-我不知道这是怎么回事-看起来像货物崇拜
  • 安装像 qemu 这样的额外软件包——你已经安装了你的模拟器——你只需要访问/dev/kvm设备
于 2020-05-24T10:41:08.603 回答
14

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

   sudo apt-get install qemu-kvm

    // type your password

   sudo chmod 777 -R /dev/kvm

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

于 2019-03-16T17:54:25.853 回答
9
sudo setfacl -m u:$USER:rwx /dev/kvm

为我工作。

于 2019-02-21T11:36:35.123 回答
6

我正在使用 linux debian,我也面临同样的问题。在我的AVD中显示一条消息“/dev/kvm 权限被拒绝”,我试图找到解决方案,然后我要解决的问题是,在终端中输入:

sudo chmod -R 777 /dev/kvm

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

于 2019-06-17T02:00:19.613 回答
3

这在 Linux (x18) 上对我有用 ☑ 希望它也对你有用

sudo chown hp /dev/kvm
于 2019-06-18T10:09:17.037 回答
3

最终在 Ubuntu 18.04 上为我修复的是:

sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm
于 2020-04-21T14:01:27.463 回答
2

通过利用bash 终端中可用的变量,对Jerrin关于使用 Ubuntu 18.04 修复此错误的回答稍有改进。$USER因此,您可以使用以下命令两个命令:

sudo apt install qemu-kvm

将当前用户加入 kvm 组

sudo adduser $USER kvm

此外,如果您仍然遇到问题,对我来说另一个问题是我安装 Ubuntu 的方式。我在安装过程中错误地选中了该框以安装第三方软件,该软件与我的 nvidia 显卡无法很好地配合进行开发。所以我用unchecked这个第三方软件重新安装了 Ubuntu 。

在此处输入图像描述

然后在安装后,打开软件和更新并转到附加驱动程序选项卡。选择经过测试的最新专有驱动程序并应用更改。应该重新启动机器以使更改生效。

在此处输入图像描述

于 2019-08-26T06:55:53.023 回答
1
  1. 我试过了sudo setfacl -m u:UserName:rwx /dev/kvm。它有效。

  2. 在android studio中,您需要更改:工具> avd manager>(选择笔来编辑您的设备并将“图形”从自动更改为软件)以避免模拟器可绘制错误

于 2020-10-01T14:30:59.150 回答
0

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

sudo adduser <Replace with username> kvm

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

于 2018-07-23T09:40:12.917 回答
-1

将我的 ubuntu 更新到 18.04.1 后出现此错误。我只是为模拟器下载新的系统映像,或者你可以说下载新的模拟器,它对我有用。

于 2018-09-10T05:30:25.973 回答
-1

尽管 KVM 是一个内置于 Linux 内核本身的模块,但这并不意味着所有必要的软件包都默认包含在您的 Ubuntu/Linux 安装中。您需要一些才能开始,并且可以在终端中使用以下命令安装它们:

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

配置网桥

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

首先,运行以下 Linux 命令以找出您的网络接口已分配的名称。知道这将允许我们稍后进行额外的配置。

$ ip a     

确定网络接口的名称

在我的例子中,网络接口被称为enp2s0. 您的名称可能非常相似。

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

使用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

这是应用所有更改后文件的外观(如果您还有几行已经存在,也可以拥有它们):

网络接口配置文件

保存更改并退出文件。

将您的用户添加到组中

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

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

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

于 2020-04-29T10:32:47.717 回答
-1

输入终端:

sudo apt install qemu-kvm -y
sudo chown $USER /dev/kvm
于 2019-07-18T23:17:26.717 回答
-1

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

sudo su

转到开发文件夹

cd /dev/

更改 kvm 模式

chmod 777 -R kvm
于 2019-04-06T06:27:32.180 回答
-2

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

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

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

于 2020-05-13T05:47:40.890 回答
-3

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

sudo chmod 777 -R /dev/kvm
于 2020-05-14T19:14:02.303 回答
-5

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

于 2018-06-12T22:17:12.913 回答
-10

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

于 2018-09-14T15:07:43.753 回答