Jesse Ahn
Jesse Ahn

Reputation: 69

Permission error while adding new physical device to QEMU under libvirt?

I'm trying to add a USB camera to QEMU so that it can be virtualized for guest OS. I've added the following item in /etc/libvirt/qemu.conf.

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

Also, I've mounted the cgroup controller as below.

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

But I'm getting "Permission denied" error(13) in the following code.

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

Strange observation is that this error only happens when I use Virt-manager(libvirt). The issue disappears when QEMU is run by command-line. Is there anyway to give all the device access to QEMU in libvirt? Or any more step to check for libvirt/qemu.conf?

Upvotes: 1

Views: 2070

Answers (2)

Jesse Ahn
Jesse Ahn

Reputation: 69

One simple work-around to give the access right is to change the ownership of the device to libvirt-qemu. I've done the following command and Libvirt can now open the device all right.

sudo chown libvirt-qemu /dev/video0

Upvotes: 0

zeroDivisible
zeroDivisible

Reputation: 4130

Very long shot, but did you had a chance to go through this page on libvirt docs?

It's a different issue, but it's being stated there, that disabling selinux is one of the steps required.

Upvotes: 0

Related Questions