当我尝试在模拟器上运行我的Android应用时出现此错误:
/ dev / kvm权限被拒绝。
我检查了权限,并将我当前登录的用户添加到kvm组。有什么问题?
答案 0 :(得分:479)
如评论中所述,从 Ubuntu 18.04 和 Linux Mint Tara 开始,您需要先/dev/kvm
。
检查ls -al /dev/kvm
使用
root
用户为kvm
,群组为kvm
。要检查grep kvm /etc/group
组中的用户,请使用
kvm:x:some_number:
此返回
:
在我的系统上:由于最终kvm
没有任何正确的内容,sudo adduser $USER kvm
组中没有用户。
要将您的用户添加到kvm群组,您可以使用
grep kvm /etc/group
将用户添加到组中,然后使用using (SPWeb web = SPContext.Current.Web)
{
SPList list = web.Lists["list"];
string title = "line for search";
SPListItemCollection items = list.GetItems(new SPQuery()
{
Query = @"<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + title + "</Value></Eq></Where>"
});
if (items.Count > 0)
{
mygrid.DataSource = items.GetDataTable();
mygrid.DataBind();
}
}
再次检查。
如@Knossos所述,您可能想要注销并重新登录(或重新启动),以使权限生效。
要打开终端,请参阅https://askubuntu.com/questions/183775/how-do-i-open-a-terminal#183777。
要找到您的用户名 ,请参阅https://askubuntu.com/questions/333718/how-can-i-find-out-my-user-name#333832。
答案 1 :(得分:309)
这就是我如何在 Ubuntu 18.04
中使用它的方法sudo apt install qemu-kvm
使用以下方式将您的用户添加到kvm组:
sudo adduser <Replace with username> kvm
如果仍然显示权限被拒绝:
sudo chown <Replace with username> /dev/kvm
尝试一下。
答案 2 :(得分:24)
试试这个,它对我有用:
sudo apt install qemu-kvm
sudo chown -R <username>:<username> /dev/kvm –
答案 3 :(得分:21)
您还尝试过以下操作,它应该可以工作:
sudo chown <username> /dev/kvm
sudo chmod o+x /dev/kvm
答案 4 :(得分:13)
这是因为无法访问/dev/kvm
。要使可从android studio访问,请运行以下命令
sudo chmod 777 -R /dev/kvm
它将询问您的密码。之后,重新启动Android Studio。
朗姆模拟器需要 KVM
。如果尚未安装,请先安装
sudo apt install qemu-kvm
答案 5 :(得分:13)
sudo chown $USER /dev/kvm
只需运行一个命令即可在2019年9月在我这里运行:
说明:Ubuntu 18.04.3
LTS发行版:18.04
代号:仿生
答案 6 :(得分:12)
在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
上调用chown
和/dev/kvm
-1)这些更改在重启后不会持久存在; 2)由于/dev/kvm
权限由udev守护程序控制,它可以随时“修复”其权限,例如每次运行模拟器后/dev/kvm
添加可执行权限-仿真器只需要读写权限/dev/kvm
上递归更改权限-我不知道这是怎么回事-看起来像是在崇拜货物/dev/kvm
设备答案 7 :(得分:7)
我正在使用Ubuntu 18.04。我面临着同样的问题。我在终端中运行此命令,问题已解决。
sudo chown $USER /dev/kvm
以上命令适用于系统中存在的所有用户。
如果您只想授予特定用户访问权限,请运行此命令
sudo chown UserNameHere /dev/kvm
答案 8 :(得分:7)
我解决了同样的问题,并且要解决此问题,只需在Linux客户端的终端中键入以下命令
sudo apt-get install qemu-kvm
// type your password
sudo chmod 777 -R /dev/kvm
然后尝试运行模拟器即可
答案 9 :(得分:5)
步骤1:(安装qemu-kvm)
sudo apt install qemu-kvm
步骤2:((使用将该用户添加到kvm组)
sudo adduser username kvm
第3步:(如果仍然显示拒绝权限)
sudo chown username /dev/kvm
最后一步:
ls -al /dev/kvm
答案 10 :(得分:5)
我正在使用linux debian,我也面临同样的问题。在我的 AVD 中,显示一条消息“ / dev / kvm权限被拒绝”,我试图找到解决方案,然后我要做的是在终端中键入以下内容:
sudo chmod -R 777 /dev/kvm
它将授予对/ dev / kvm文件夹的访问权限,然后再次检查您的 AVD ,错误消息将消失,希望对您有所帮助。
答案 11 :(得分:5)
sudo setfacl -m u:$USER:rwx /dev/kvm
为我工作。
答案 12 :(得分:4)
最终在Ubuntu 18.04上为我修复的问题是:
sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm
答案 13 :(得分:3)
打开终端并以管理员身份登录
sudo su
转到dev文件夹
cd /dev/
更改kvm模式
chmod 777 -R kvm
答案 14 :(得分:3)
如果您只想运行Android Studio模拟器,则绝对不需要安装qemu-kvm
(及其所有依赖项)。
您唯一要做的就是授予您的用户(即您登录的用户)访问/dev/kvm
设备的权限。
这可以通过三个简单的步骤完成。
第一:创建kvm
组
groupadd -r kvm
选项-r
创建一个系统组,即GID <= 999(请参阅/etc/login.defs
=> SYS_GID_MAX
)
更改/dev/kvm
的权限。这可以在安装qemu-kvm
的过程中完成,因为其中一个依赖项正在安装qemu-system-common
(在当前的Ubuntu系统上,程序包名称可能会有所不同),这反过来又会安装文件{{1} },其中包含以下内容:
/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>
对于将用户添加到kvm-group很重要。否则,您将覆盖用户的组设置,使其仅属于“ kvm” ...
就是这样。
要使新的udev规则和组设置生效,最简单的方法是重新启动并再次登录。
您也可以执行
-a
用于重新加载规则,但是您仍然必须注销并重新登录新组。
答案 15 :(得分:2)
这在Linux(x18)上对我有效☑希望它也对您有用
sudo chown hp /dev/kvm
答案 16 :(得分:2)
通过利用bash终端中可用的CREATE TABLE ...
变量来解决Ubuntu 18.04上的错误,对Jerrin's的回答仅作了一点改进。因此,您可以使用以下命令两个命令:
$USER
将当前用户添加到kvm组
sudo apt install qemu-kvm
如果您仍然遇到问题,那么对我来说另一个问题是我安装Ubuntu的方式。我在安装过程中在选中复选框时安装了第3方软件,但该错误与我的nvidia图形卡配合使用时效果不佳。因此,我使用此第三方软件未选中重新安装了Ubuntu。
然后在安装后,打开“软件和更新”,然后转到“其他驱动程序”选项卡。选择也经过测试的最新专有驱动程序并应用更改。应该重新启动机器以使更改生效。
答案 17 :(得分:1)
将ubuntu更新为18.04.1。后,出现此错误。我只是下载了用于模拟器的新系统映像,或者您可以说下载新的模拟器并为我工作。
答案 18 :(得分:1)
这是 Gerd's 答案的简短版本
sudo groupadd -r kvm
sudo gedit /lib/udev/rules.d/60-qemu-system-common.rules
将以下行添加到打开的文件并保存
KERNEL ==“ kvm”,GROUP =“ kvm”,MODE =“ 0660”
最后运行:
usermod -a -G kvm <your_username>
重新启动PC并完成!
答案 19 :(得分:0)
输入终端
sudo apt install qemu-kvm -y
sudo chown $USER /dev/kvm
答案 20 :(得分:0)
为了在Linux中制作虚拟设备-我必须遵循这三个命令,它可以帮助我避免构建AVD设备的麻烦-流程-
sudo apt install qemu-kvm
sudo adduser $USER kvm
sudo chown $USER /dev/kvm
所以,现在您可以开始使用,重新启动android studio并开始使用模拟器构建应用程序。
答案 21 :(得分:0)
我处于类似的情况,对/ dev / kvm的权限存在相同的错误 我已完成必要的安装,但未将用户添加到kvm组 我要做的就是
sudo adduser <Replace with username> kvm
当然不要忘记重启Ubuntu实例。
答案 22 :(得分:0)
我尝试了sudo setfacl -m u:UserName:rwx /dev/kvm
。而且有效。
在android studio中,您需要更改:工具> avd管理器>(选择笔以编辑设备,并将“图形”从自动更改为软件),以避免模拟器可绘制错误
答案 23 :(得分:-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我们希望桥接连接,我们需要编辑网络接口配置文件。这样做完全不会对您的连接产生负面影响。它只允许与VM共享该连接。
使用code
(Visual Studio代码)或您喜欢的文本编辑器打开以下文件:
$ 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
完成后,应重新启动系统,以确保对用户和网络配置所做的所有更改都可以生效。
答案 24 :(得分:-1)
在Ubuntu 18.04中运行以下命令对我有用 sudo chown -R / dev / kvm
答案 25 :(得分:-3)
使用此命令提供适当的权限
sudo chmod 777 -R /dev/kvm