Use USB2.0 Camera With KVM Based VM
Hey All,
I’ve been googleing this issue for hours but I can’t find a workable solution. I found a reply to a bug posting that said the USB hub on the VM defaults to USB 1.1. I see this is true when I lsusb on the CentOS 7
guest.
The reply to the bug post went on to say that the problem is that the USB 2.0 camera will not work with the USB 1.1 default hub and that I
should change the hub from USB 1.1 to USB 2.0.
I see no way to do that.
Can anyone shed some light on this? Is there a way to change the USB
hub from USB 1.1 to USB 2.0 inside the VM Manager?
Is there a better way to get my USB 2.0 web camera to appear in my CentOS 7 guest?
—
_
°v°
/(_)\
^ ^ Mark LaPierre Registered Linux user No #267004
https://linuxcounter.net/
****
One thought on - Use USB2.0 Camera With KVM Based VM
I don’t either, but maybe this is helpful… According to this document, you can specify the bus that a USB device is attached to, including pass-through devices:
http://git.qemu.org/?p=qemu.git;a=blob_plain;f=docs/usb2.txt;hb=HEAD
So, one option would be to create a shell script that modifies the arguments given to qemu-system-x86_64, and then use “virsh edit”
to replace the default emulator with the path to your shell script. I
do that for a guest where I pass through a video card, which needs a PCI
express bridge:
$ cat /usr/local/bin/qemu-system-x86_64-passthrough
#!/bin/bash
declare -a qemuargs
for x in “$@”
do
if test “${x:0:21}” == “vfio-pci,host:00.0”
then qemuargs+=(ioh3420,bus=pci.0,addr.0,multifunction=on,port=1,chassis=1,id=root.1)
qemuargs+=(-device)
qemuargs+=(vfio-pci,host:00.0,id=hostvga,bus=root.1,addr .0,multifunction=on)
else
qemuargs+=(“$x”)
fi done
/usr/bin/qemu-system-x86_64 “${qemuargs[@]}”