当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当我尝试在模拟器上运行我的Android应用程序时,我得到这个错误:
/dev/kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。怎么了?
当前回答
这为我工作在Linux (x18)☑希望它将为你工作以及
sudo chown hp /dev/kvm
其他回答
sudo chown $USER /dev/kvm
在2019年9月,简单地运行一个命令对我有用:
描述:Ubuntu 18.04.3 LTS发布:18.04 代号:仿生
试试这个,对我很管用:
Sudo apt安装qemu-kvm sudo chown -R <username>:<username> /dev/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下,/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
最大的优势:您不需要注销并再次登录才能使此更改生效。
没有办法的办法
calling chmod and chown directly on /dev/kvm - 1) these changes aren't persistent over reboots and 2) since /dev/kvm permissions are controlled by the udev daemon, it can 'fix' its permissions at any time, e.g. after each emulator run adding executable permissions to /dev/kvm - your emulator just requires read and write permissions changing permissions recursively on /dev/kvm - I don't know what's up with that - looks like cargo cult installing extra packages like qemu - you already have your emulator installed - you just need to get access to the /dev/kvm device
打开终端,以管理员身份登录
sudo su
进入dev文件夹
cd /dev/
切换kvm模式
chmod 777 -R kvm