当我尝试在模拟器上运行我的 Android 应用程序时,我收到此错误:
/dev/kvm 权限被拒绝。
我检查了权限并将我当前登录的用户添加到 kvm 组。怎么了?
当我尝试在模拟器上运行我的 Android 应用程序时,我收到此错误:
/dev/kvm 权限被拒绝。
我检查了权限并将我当前登录的用户添加到 kvm 组。怎么了?
如评论中所述,从Ubuntu 18.04和Linux 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
.
这就是我让它在Ubuntu 18.04中工作的方式
sudo apt install qemu-kvm
使用以下命令将您的用户添加到 kvm 组:
sudo adduser <Replace with username> kvm
如果仍然显示权限被拒绝:
sudo chown <Replace with username> /dev/kvm
试试看。
试试这个,它对我有用:
sudo apt install qemu-kvm
sudo chown -R <username>:<username> /dev/kvm
这是因为/dev/kvm
无法访问。可以从 android studio 访问 make 运行以下命令
sudo chmod 777 -R /dev/kvm
它会询问您的密码。之后重新启动 Android Studio。
KVM
需要朗姆酒模拟器。如果您还没有安装它,请安装它
sudo apt install qemu-kvm
您是否也尝试过以下操作,它应该可以工作:
sudo chown <username> /dev/kvm
sudo chmod o+x /dev/kvm
sudo chown $USER /dev/kvm
只需在 2019 年 9 月运行该命令对我有用:
说明:Ubuntu 18.04.3
LTS 发布:18.04
代号:仿生
第一步:(安装qemu-kvm)
sudo apt install qemu-kvm
第 2 步:(使用将您的用户添加到 kvm 组)
sudo adduser username kvm
第3步:(如果仍然显示权限被拒绝)
sudo chown username /dev/kvm
最后一步:
ls -al /dev/kvm
我正在使用 ubuntu 18.04。我面临着同样的问题。我在终端中运行这条命令,问题就解决了。
sudo chown $USER /dev/kvm
上述命令适用于您系统中存在的所有用户。
如果您只想授予特定用户访问权限,请运行此命令
sudo chown UserNameHere /dev/kvm
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 并完成!
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
重新加载规则,但您仍然必须注销并再次登录新组。
在 Ubuntu 下,权限/dev/kvm
通常是这样的:
$ ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 May 24 09:54 /dev/kvm
运行 Android 模拟器的用户(即您的用户)需要访问此设备。
因此,基本上有两种方法可以访问:
检查您的用户是否已经是 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
-我不知道这是怎么回事-看起来像货物崇拜/dev/kvm
设备我反驳了同样的问题,要解决这个问题,只需在终端中为 Linux 客户端键入以下命令
sudo apt-get install qemu-kvm
// type your password
sudo chmod 777 -R /dev/kvm
然后尝试运行模拟器它会工作
sudo setfacl -m u:$USER:rwx /dev/kvm
为我工作。
我正在使用 linux debian,我也面临同样的问题。在我的AVD中显示一条消息“/dev/kvm 权限被拒绝”,我试图找到解决方案,然后我要解决的问题是,在终端中输入:
sudo chmod -R 777 /dev/kvm
它将授予文件夹 /dev/kvm 的访问权限,然后再次检查您的AVD,错误消息将消失,希望对您有所帮助。
这在 Linux (x18) 上对我有用 ☑ 希望它也对你有用
sudo chown hp /dev/kvm
最终在 Ubuntu 18.04 上为我修复的是:
sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm
通过利用bash 终端中可用的变量,对Jerrin关于使用 Ubuntu 18.04 修复此错误的回答稍有改进。$USER
因此,您可以使用以下命令两个命令:
sudo apt install qemu-kvm
将当前用户加入 kvm 组
sudo adduser $USER kvm
此外,如果您仍然遇到问题,对我来说另一个问题是我安装 Ubuntu 的方式。我在安装过程中错误地选中了该框以安装第三方软件,该软件与我的 nvidia 显卡无法很好地配合进行开发。所以我用unchecked这个第三方软件重新安装了 Ubuntu 。
然后在安装后,打开软件和更新并转到附加驱动程序选项卡。选择经过测试的最新专有驱动程序并应用更改。应该重新启动机器以使更改生效。
我试过了sudo setfacl -m u:UserName:rwx /dev/kvm
。它有效。
在android studio中,您需要更改:工具> avd manager>(选择笔来编辑您的设备并将“图形”从自动更改为软件)以避免模拟器可绘制错误
我遇到了类似的情况,在 /dev/kvm 上存在相同的权限错误我已经完成了必要的安装,但没有将用户添加到 kvm 组我所要做的就是
sudo adduser <Replace with username> kvm
当然不要忘记重新启动您的 Ubuntu 实例。
将我的 ubuntu 更新到 18.04.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
完成后,您应该重新启动系统,以确保对用户和网络配置所做的所有更改都有机会生效。
输入终端:
sudo apt install qemu-kvm -y
sudo chown $USER /dev/kvm
打开终端并以管理员身份登录
sudo su
转到开发文件夹
cd /dev/
更改 kvm 模式
chmod 777 -R 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 18.04 中运行以下命令对我有用 sudo chown -R /dev/kvm
如果你用 sudo 打开你的 ide。你不会有这个问题。