当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
正如评论中提到的,从Ubuntu 18.04和Linux Mint Tara开始,你首先需要sudo apt install qemu-kvm。
sudo apt install qemu-kvm
检查/dev/kvm使用的所有权
/dev/kvm
ls -al /dev/kvm
用户为root,组为kvm。要检查哪些用户在kvm组中,使用
root
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中重新登录。
newgrp kvm
su - $USER
试试这个,对我很管用:
在Ubuntu 18.04中运行以下命令对我有用 sudo chown -R /dev/kvm
这就是我如何让它在Ubuntu 18.04中工作
使用以下方法将用户添加到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组 我要做的就是
当然,不要忘记重新启动你的Ubuntu实例。
在更新ubuntu到18.04.1后,我得到了这个错误。我只是下载新的系统镜像模拟器或你可以说下载新的模拟器,它是为我工作。
如果你用sudo打开你的ide。你不会遇到这个问题。
这是因为/dev/kvm不可访问。要从android studio中访问,请运行以下命令
sudo chmod 777 -R /dev/kvm
它会询问你的密码。之后,重新启动Android Studio。
KVM需要朗姆酒模拟器。如果您还没有安装它,那么就安装它
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的的回答只有一个轻微的改进。所以你可以使用以下命令两个命令:
$USER
将当前用户加入kvm组
如果你仍然有问题,另一个问题是我安装Ubuntu的方式。我在安装过程中错误地勾选了安装第三方软件的方框,这与我的nvidia显卡开发不太匹配。所以我用第三方软件无节制的重新安装了Ubuntu。
安装完成后,打开Software &更新并进入附加驱动程序选项卡。选择最新的、也经过测试的专有驱动程序,并应用更改。应重新启动计算机以使更改生效。
sudo chown $USER /dev/kvm
在2019年9月,简单地运行一个命令对我有用:
描述:Ubuntu 18.04.3 LTS发布:18.04 代号:仿生
描述:Ubuntu 18.04.3
LTS发布:18.04
代号:仿生
我使用的是ubuntu 18.04。我也面临着同样的问题。我在终端上运行这条命令,问题就解决了。
上面的命令适用于系统中的所有用户。
如果你想只给一个特定的用户访问权限,那么运行这个命令
sudo chown UserNameHere /dev/kvm
如果你只想运行Android Studio模拟器,完全没有必要安装qemu-kvm(以及它的所有依赖项)。
qemu-kvm
你要做的唯一一件事就是给你的用户(即你登录的用户)访问# eyz0 -设备的权利。
这需要三个简单的步骤。
创建# eyz0 -组
# EYZ0
选项-r创建一个系统组,即GID <= 999(参见/etc/login.defs => SYS_GID_MAX)
-r
/etc/login.defs
SYS_GID_MAX
修改/dev/kvm的权限。这可以作为# eyz1 -安装的一部分来完成,因为其中一个依赖项是安装qemu-system-common(在当前的Ubuntu系统上,包名可能不同),它反过来安装包含以下内容的/lib/udev/rules.d/60-qemu-system-common.rules文件:
qemu-system-common
/lib/udev/rules.d/60-qemu-system-common.rules
KERNEL=="kvm", GROUP="kvm", MODE="0660"
因此,如果您只是创建一个包含上面一行的文件/etc/udev/rules.d/60-qemu-permissions.rules,那么您就完成了第一步。
/etc/udev/rules.d/60-qemu-permissions.rules
通过执行将您的用户名添加到组中
usermod -a -G kvm <your_username> - -a对于kvm组的添加用户很重要。否则,您将覆盖组设置为您的用户只属于“kvm”…
usermod -a -G kvm <your_username>
-a
就是这样。
为了使新的udev规则和组设置生效,重新启动并再次登录是最容易的。
你也可以执行
用于重新加载规则,但您仍然必须注销,并再次登录关于新组。
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
为了让虚拟机访问网络接口并分配它们自己的IP地址,我们需要在系统上配置桥接网络。
首先,运行以下Linux命令,以找出分配给您的网络接口的名称。知道这一点之后,我们就可以进行额外的配置。
$ ip a
在我的示例中,网络接口称为enp2s0。你的名字可能会非常相似。
enp2s0
为了告诉Ubuntu我们想要桥接连接,我们需要编辑网络接口配置文件。这样做完全不会对你们的联系产生负面影响。它只允许该连接与vm共享。
使用code (Visual Studio Code)或您最喜欢的文本编辑器打开以下文件:
code
$ code /etc/network/interfaces
当您第一次打开这个文件时,它可能是空的,或者只包含几行。你的桥接接口被称为br0,所以添加下面的行使接口默认出现:
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
完成后,您应该重新启动系统,以确保对用户和网络配置所做的所有更改都有机会生效。
为了在Linux中制作一个虚拟设备-我必须遵循这三个命令,它可以帮助我避免构建avd设备的麻烦-过程是-
所以,现在你已经准备好了,重新启动android studio并开始使用模拟器构建应用程序。
使用该命令提供适当的权限
在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检查)。
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
$ ls -l /dev/kvm crw-rw-rw-. 1 root kvm 10, 232 2020-05-16 09:19 /dev/kvm
最大的优势:您不需要注销并再次登录才能使此更改生效。
chmod
chown
sudo setfacl -m u:UserName:rwx /dev/kvm
在android studio你需要改变:tools>Avd管理器>(选择笔编辑您的设备和改变'图形'从自动到软件),以避免模拟器绘制错误
步骤1:安装qemu-kvm
步骤2:(将用户添加到kvm组)
sudo adduser username kvm
步骤3:(如果仍然显示权限被拒绝)
sudo chown username /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(虚拟化技术),安装虚拟机