【问题标题】:Permission error while adding new physical device to QEMU under libvirt?在 libvirt 下向 QEMU 添加新物理设备时出现权限错误?
【发布时间】:2015-06-20 19:25:57
【问题描述】:

我正在尝试向 QEMU 添加一个 USB 摄像头,以便可以为来宾操作系统虚拟化它。我在 /etc/libvirt/qemu.conf 中添加了以下项目。

cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
...
"/dev/rtc", "/dev/hpet", **"/dev/video0",**
]

另外,我已经安装了 cgroup 控制器,如下所示。

mkdir /dev/cgroup
mount -t cgroup none /dev/cgroup -o devices

但我在以下代码中收到“权限被拒绝”错误 (13)。

fd = open("/dev/video0", O_RDWR | O_NONBLOCK, 0);

奇怪的观察是这个错误只在我使用 Virt-manager(libvirt) 时发生。通过命令行运行 QEMU 时,该问题消失。 无论如何,是否可以让所有设备访问 libvirt 中的 QEMU?或者还有什么步骤可以检查 libvirt/qemu.conf?

【问题讨论】:

  • 由于我只对开发 QEMU 后端驱动程序而不是 Linux 安全感兴趣,因此任何工程配置解决方案都可以。

标签: qemu libvirt


【解决方案1】:

很长的路要走,但是你有机会经历这个page on libvirt docs吗?

这是一个不同的问题,但那里已经说明,禁用 selinux 是所需的步骤之一。

【讨论】:

  • 我已按照您在上面指出的页面中的步骤进行操作,但没有成功。除了“selinux”步骤之外,我已经尝试了所有步骤,因为我从未在我的 Ubuntu 机器中启用它。
【解决方案2】:

提供访问权限的一个简单解决方法是将设备的所有权更改为 libvirt-qemu。我已经完成了以下命令,现在Libvirt可以正常打开设备了。

sudo chown libvirt-qemu /dev/video0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    相关资源
    最近更新 更多