Use USB2.0 Camera With KVM Based VM

Home » CentOS » Use USB2.0 Camera With KVM Based VM
CentOS 1 Comment

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[@]}”