当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当前回答
在更新ubuntu到18.04.1后,我得到了这个错误。我只是下载新的系统镜像模拟器或你可以说下载新的模拟器,它是为我工作。
其他回答
这是因为/dev/kvm不可访问。要从android studio中访问,请运行以下命令
sudo chmod 777 -R /dev/kvm
它会询问你的密码。之后,重新启动Android Studio。
rum模拟器需要KVM。如果您还没有安装它,那么就安装它
sudo apt install qemu-kvm
如果你只想运行Android Studio模拟器,完全没有必要安装qemu-kvm(及其所有依赖项)。
您需要做的唯一一件事就是赋予您的用户(即您登录的用户)访问/dev/kvm-设备的权限。
这需要三个简单的步骤。
第一:
创建kvm-group
Groupadd -r KVM
选项-r创建一个系统组,即GID <= 999(参见/etc/login.defs => SYS_GID_MAX)
第二:
修改/dev/kvm的权限这可以作为qemu-kvm-安装的一部分来完成,因为其中一个依赖项是安装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控件—reload-rules && Udevadm触发器
用于重新加载规则,但您仍然必须注销,并再次登录关于新组。
正如评论中提到的,从Ubuntu 18.04和Linux Mint Tara开始,你需要首先安装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提到的那样,在同一个shell中通过su - $USER重新登录。
我尝试了sudo setfacl -m u:UserName:rwx /dev/kvm。这很有效。 在android studio中,您需要更改:tools> avd manager >(选择钢笔编辑您的设备并将“图形”从自动更改为软件),以避免模拟器可绘制错误
sudo setfacl -m u:$USER:rwx /dev/kvm
为我工作。