I cannot use my (good) Logitech 922 USB Webcam

@Wikinaut

My original comments from I cannot use my (good) Logitech 922 USB Webcam still stand.

You run into an issue where sys-usb did not get created properly or did not have the input proxy configured. We have to figure this out first.

dom0 will not be able to utilize your web cam - you must have a working sys-usb, which is compounded since you have one USB controller and are using a USB Keyboard.

I installed Qubes 4.0.3 on a different computer (FUJITSU), also again with my USB-mouse and USB-keyboard and again, there is no USB-WEBCAM available. I am giving up now.

Iā€™m facing exactly the same problem as @Wikinaut. I donā€™t think it is trivial to fix without Linux kernel and usbip expertise. What is going on is something like this:

[ 1864.391648] usb 1-1: new high-speed USB device number 12 using vhci_hcd
[ 1864.506715] usb 1-1: SetAddress Request (12) to port 0
[ 1866.791710] usb 1-1: New USB device found, idVendor=046d, idProduct=085c, bcdDevice= 0.16
[ 1866.791790] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=1
[ 1866.791857] usb 1-1: Product: C922 Pro Stream Webcam
[ 1866.791904] usb 1-1: SerialNumber: 956A3F4F
[ 1866.801643] uvcvideo: Found UVC 1.00 device C922 Pro Stream Webcam (046d:085c)
[ 1866.810417] input: C922 Pro Stream Webcam as /devices/platform/vhci_hcd.0/usb1/1-1/1-1:1.0/input/input4
[ 1866.921344] vhci_hcd: unlink->seqnum 95053
[ 1866.921356] vhci_hcd: urb->status -104
[ 1867.025550] vhci_get_frame_number: 2314 callbacks suppressed
[ 1867.025553] usb usb1: Not yet implemented
[ 1867.026556] usb usb1: Not yet implemented
[ 1867.027565] usb usb1: Not yet implemented
[ 1867.028554] usb usb1: Not yet implemented
[ 1867.029568] usb usb1: Not yet implemented
[ 1867.030558] usb usb1: Not yet implemented
[ 1867.031558] usb usb1: Not yet implemented
[ 1867.032600] usb usb1: Not yet implemented
[ 1867.033559] usb usb1: Not yet implemented
[ 1867.034555] usb usb1: Not yet implemented
[ 1872.025865] vhci_get_frame_number: 4990 callbacks suppressed
[ 1872.025874] usb usb1: Not yet implemented
[ 1872.028190] usb usb1: Not yet implemented
[ 1872.028276] usb usb1: Not yet implemented
[ 1872.030515] usb usb1: Not yet implemented
[ 1872.030697] usb usb1: Not yet implemented
[ 1872.030763] usb usb1: Not yet implemented
[ 1872.035100] vhci_hcd: unlink->seqnum 100084
[ 1872.035153] vhci_hcd: urb->status -104
[ 1872.035189] vhci_hcd: unlink->seqnum 100085
[ 1872.035248] vhci_hcd: urb->status -104
[ 1872.035284] vhci_hcd: unlink->seqnum 100086
[ 1872.035319] vhci_hcd: the urb (seqnum 100086) was already given back
[ 1872.035374] vhci_hcd: unlink->seqnum 100087
[ 1872.035409] vhci_hcd: the urb (seqnum 100087) was already given back
[ 1872.035464] vhci_hcd: unlink->seqnum 100088
[ 1872.035499] vhci_hcd: urb->status -104
[ 1872.035621] vhci_hcd: unlink->seqnum 100089
[ 1872.035656] vhci_hcd: urb->status -104
[ 1872.035733] vhci_hcd: unlink->seqnum 100090
[ 1872.035770] vhci_hcd: urb->status -104
[ 1872.035806] vhci_hcd: unlink->seqnum 100091
[ 1872.035840] vhci_hcd: urb->status -104
[ 1872.035875] vhci_hcd: unlink->seqnum 100092
[ 1872.035909] vhci_hcd: urb->status -104
[ 1872.035945] vhci_hcd: unlink->seqnum 100093
[ 1872.035979] vhci_hcd: urb->status -104
[ 1872.036016] vhci_hcd: unlink->seqnum 100094
[ 1872.036051] vhci_hcd: urb->status -104
[ 1872.036088] vhci_hcd: unlink->seqnum 100095
[ 1872.036129] vhci_hcd: urb->status -104
[ 1877.616756] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1878.504752] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1879.392760] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1880.280727] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1880.280872] usb 1-1: USB disconnect, device number 12
[ 1881.200735] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1882.088738] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1882.088827] usb usb1-port1: attempt power cycle
[ 1883.288699] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1884.176709] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[ 1884.176798] usb usb1-port1: unable to enumerate USB device

Behavior is as follows, when camera is initially connected to VM it is visible:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 011: ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
Bus 001 Device 017: ID 046d:085c Logitech, Inc. C922 Pro Stream Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

But if anything ā€œtouches itā€ it disappears despite being visible sys-usb menu as connected to VM.
What is needed is debugging of vhci_hcd driver it other parts of usbip subsystem. The error may come from here.

Did you find a fix?

Iā€™m having the same trouble with Logitech C920. If I run ā€œcheeseā€ on VM that has the USB controller, it works flawlessly. But if I attach the camera to another appvm, cheese and other applications become very unstable. Sometimes it works, sometimes not, but definitely not many times. I need to detach/attach, possibly multiple times, and then it might work.

Same error messages, ā€œNot yet implementedā€ etc.

Hereā€™s a long github issue about it: Cannot use a USB camera Ā· Issue #4035 Ā· QubesOS/qubes-issues Ā· GitHub

But I cannot read from the issue if itā€™s fixed or is the problem even known, or is anyone interested in it.

No, it is not solved. I gave up using Qubes.

Sad to hear :cry:

If one day you could take the time to write a post about what failed for you (apart from this issue), I think could be great feedback to make the project better. So hopefully one day you can try it again and those issues will be gone. But only if want to, of course.

I bought another USB controller that Iā€™ll dedicate to my conferencing appvm.

I donā€™t know why video stream is so much harder problem than for example block devices, but I thatā€™s just how it is now.

Also, Iā€™m not really purist when it comes to my computing environment. Another example: Iā€™m not satisfied with Qubes video performance. Solution is not to throw Qubes away. Iā€™m using old spare laptop dedicated to my Netflix needs, I do nothing else with it. I donā€™t think everything has to be done on one single machine.

Everything has been written, reported and said in this thread.

1 Like

Unfortunately, personally I donā€™t have time to do training explaining challenges related to video camera sharing in light of Qubes OS security model. Key point is to understand difference between USB endpoints: USB - Wikipedia this make huge difference between storage and audio/video - not saying about complexity of modern devices.

The most promising approach is GitHub - elliotkillick/qubes-video-companion: Securely stream webcams and share screens across virtual machines *THIS PROJECT IS CURRENTLY STILL IN DEVELOPMENT & TESTING* - still requires quite a lot of testing and not yet stable for production use.

I hope to have a talk about this project on Qubes OS mini-summit, if it will happen the it would be great to get feedback from community. I will keep you informed. This is conference CFP announcement: https://twitter.com/3mdeb_com/status/1412759830062899210

2 Likes

As some of you know tomorrow is second day of Qubes OS mini-summit 2021. During one of the talks I will discuss this issue and demo Qubes Video Companion from @elliotkillick. Feel free to tune in: Qubes virtual mini-summit 2021! | Qubes OS

2 Likes

Looks like a useful project. I notice Qubes Video Companion requires a sys-usb VM, though, which is no good for me as I run QubesOS on a USB stick and creating sys-usb just locks everything up. No way around this yet I suppose?