I cannot use my (good) Logitech 922 USB Webcam

Hello Qubes, I run Qubes since may years and need it now for several video conferences.

I created a new standalone VM videoconferences based on debian10, connected the Webcam, started Firefox and https://meet.jit.si or https://meet.systemli.org [Jitsi], but the USB device is not detected.

Please assist.

Did you try to check your webcam with Cheese application? You could also try Chromium, which works better with Jitsi for me.

Is the webcam shown in the VM when you type lsusb in the terminal? Does Qubes show that it’s connected to the VM? Did you try to connect it via terminal and not via GUI?

Cheese: “No device found”
lsusb: does not list the webcam
dom0: qvm-usb: does not list the webcam

(The tip with Chromium: I do know.)

That might not be a Qubes issue then. If even dom0 doesn’t see your
webcam, then it’s not enumerated by the subsystem. I hate to ask it, but:

  • is it plugged into the computer?*
  • does it work with other computers that you might have?

*I am hesitant to even ask this, I know how it sounds. But stuff
happens. I once spent an afternoon trying to help a customer diagnose an
issue with one of our devices until I gave up and asked the above question.

/Sven

Thank you.
Before posting, I triple-checked that the USB-Webcam is connected to the system:

  • I rebooted with a Linux-LIVE-System (in this case: Linux Mint 20) - works
  • I also changed the setttings of the Qubes-VM to have the USB-Device available - the the webcam was selectable in the Browser(Jitsi), but the mouse did not work any more. so I am fully unsure, what the correct VM-device settings are to connect the Webcam.
  • I botted then Tails, the USB-Webcam was listed (lsusb), but not working in the Tor-Browser, I guess, due to the patches of that browser; however, I am not sure abut this. But (lsusb) the Webcam was listed as device.

What Qubes-VM-device settings are neede (I don’t have any devices in the Qubes-VM settings activated, because I think that is the job of the dom0, isn’t it?)

P.S. My Qubes-Hardware is an INTEL NUC with USB-Keyboad, USB-Mouse and that USB-Webcam (Logitech).

So there are two ways you could go about it:

  1. assign the webcam to the qube
  2. assign the USB controller to the qube

The second method is not really safe for you as you are using USB
keyboard and mouse and if you do something wrong you could end up in a
state where you can’t use your computer anymore because the input
devices are not working. If you want to try that anyway I can give you
step-by-step instructions but you’ll do it at your own risk.

The first method is the standard method, but that one will obviously not
work if your webcam doesn’t show up when you do lsusb or qvm-usb in
dom0. Actually in that case I really don’t know what to tell you,
because whether or not you have the right driver installed is
irrelevant. The device should still show up when you do lsusb.

Please confirm: lsusb in dom0 does not show the cam?

I @Wikinaut

a lot of questions:

  1. Could you check the kernel version of the Linux Mint 20 test?
  2. What is your kernel for dom0, sys-usb, the standalone VM videoconferences?
  3. Could you send us the lsusb output from Linux Mint 20, from dom0 (asked by @Sven ), from sys-usb, from the standalone VM videoconferences?
  4. Could you send us the qvm-usb list --verbose --all output from dom0?
  5. Could you, unplug the webcam, on dom0, launch the sudo dmesg -Tw command, plug the webcam and send us the added lines in the dmesg logs
1 Like
  • Could you check the kernel version of the Linux Mint 20 test?
    The Linux Mint 20 was booted from the ISO-Image as supplied as an installer from the linuxmint-Homepage. This is the standard installation or Live-ISO:

uname -a:
Linux mint 5.4.0-26-generic #30-Ubuntu SMP Mon Apr 20 16:58:30 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/os-release:
NAME=“Linux Mint”
VERSION=“20 (Ulyana)”
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME=“Linux Mint 20”
VERSION_ID=“20”
…
VERSION_CODENAME=ulyana
UBUNTU_CODENAME=focal

  • What is your kernel for dom0, sys-usb, the standalone VM videoconferences?
    uname -r: dom0: 4.19.155-1pvops.qubes.x86_64
    uname -r sys-usb: 4.19.155-1pvops.qubes.x86_64
    uname -r Standalone-VM: 4.19.155-1pvops.qubes.x86_64 (debian 10)

  • Could you send us the lsusb output from

Linux Mint 20:
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 006: ID 8087:07dc Intel Corp.
Bus 002 Device 005: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 002 Device 004: ID 046a:b090 Cherry GmbH Keyboard
Bus 002 Device 002: ID 046d:085c Logitech, Inc. C922 Pro Stream Webcam
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dom0:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 8087:07dc Intel Corp.
Bus 001 Device 004: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 001 Device 003: ID 046a:b090 Cherry GmbH
Bus 001 Device 002: ID 046d:085c Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

sys-usb:
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU USB Tablet
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

VM:
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

  • Could you send us the qvm-usb list --verbose --all output from dom0?

qvm-usb list --verbose --all
BACKEND:DEVID DESCRIPTION USED BY
(empty)

  • Could you, unplug the webcam, on dom0, launch the sudo dmesg -Tw command, plug the webcam and send us the added lines in the dmesg logs

[Fri Nov 13 19:41:42 2020] usb 1-1: new high-speed USB device number 7 using xhci_hcd
[Fri Nov 13 19:41:44 2020] usb 1-1: New USB device found, idVendor=046d, idProduct=085c, bcdDevice= 0.16
[Fri Nov 13 19:41:44 2020] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=1
[Fri Nov 13 19:41:44 2020] usb 1-1: Product: C922 Pro Stream Webcam
[Fri Nov 13 19:41:44 2020] usb 1-1: SerialNumber: 5CBED16F
[Fri Nov 13 19:41:44 2020] uvcvideo: Found UVC 1.00 device C922 Pro Stream Webcam (046d:085c)
[Fri Nov 13 19:41:44 2020] input: C922 Pro Stream Webcam as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/input/input18

Sven: please see my next answer (regarding your two points: I disregarded them for the moment, because I do not exactly know, what I have to do - very sorry).

So what do we learn with all theses traces:

Linux Mint uses a recent 5.4 kernel.

But your qubes use an old 4.19 kernel (it’s the default Qubes OS kernel).

Your webcam is here with the device id 046d:085c.

On Qubes OS, your webcam is viewable in dom0 (same device id as Linux Mint). But the kernel doesn’t recognize it as a C922 Pro Stream Webcam (like Linux Mint does). This means your Qubes-OS kernel doesn’t include the driver for your webcam.
Conclusion: you should update your Qubes OS kernel.

How to do this? Carefully read the kernel-upgrade, you should install the kernel-latest in dom0. But you can keep the 4.19 kernel as the default kernel for dom0 (i.e. don’t edit /boot/efi/EFI/qubes/xen.cfg). Reboot Qubes OS. You will use the kernel-latest on the VM that will manage your webcam (see below).

Then you should choose on which VM attach your webcam, read usb-devices. I don’t know webcam on Qubes OS, maybe your webcam should be attached to sys-usb or to your standalone VM videoconferences, get advices from skilled people who already answered on this thread. Next switch the choosed VM to kernel-latest (process: Qubes Manager > right clic on the VM > Qube Settings > Advanced tab > in the Kernel field choose the 5.x kernel), then restart the VM. In this VM, lsusb should now display the webcam with its name (like Linux Mint does).

Then check your webcam works with the Cheese program as suggested on top of this thread.

Hope this will work!

I’m surprised by these last traces, because the kernel recognize your webcam and load the uvcvideo driver. Did you really do it on dom0 as requested or on Linux Mint?

No worries, you are on the right track with ludovic. It appears your
webcam is not yet supported by the kernel used in dom0. You could give
the Qubes 4.1 Alpha a try…

/Sven

thanks for your swift answer/s, this is why I now only respond quickly to a part of your post, here it comes:

I’m surprised by these last traces, because the kernel recognize your webcam and load the uvcvideo driver. Did you really do it on dom0 as requested or on Linux Mint?

Definitely, I used that on the Qubes (I only booted the Linux Mint USB to fetch the requested results).

Regarding the kernel upgrades on dom0: in the last years, I only updated Qubes using the built-in Qube updater in the task bar corner (“Launch updater”) as I thought - apparently I was wrong - that everything gets updated then.

My next action: upgrade the dom0 kernel.

So, I am running 5.8.16.-1.qubes.x86_64
I also selected that kernel for Videoconferencing-VM.

Problem still persists.
The Webcam is not shown as an USB device.

That’s a bit out of my comfort zone, I hope @ludovic sees this soon and
can help you. Sorry.

Hi @Wikinaut

Did you attach the webcam to Videoconferencing-VM? see usb-devices. Previously your webcam was listed by lsusb in dom0, now should be listed in Videoconferencing-VM.

May be some additional drivers are required, we will check this together.

First, just to be sure of the above results, please give us the output of the below commands:

  • Videoconferencing-VM: uname -a
  • Videoconferencing-VM: lsusb

Second, we search the missing driver, please give us the output of the below commands as attached files or links (because the output is too long for a forum post).

  • Linux Mint 20: lsusb -vv -d'046d:085c'
  • Linux Mint 20: lsusb -vv -t (give only the section of the webcam)
  • Linux Mint 20: lsmod
  • Videoconferencing-VM: lsusb -vv -d'046d:085c'
  • Videoconferencing-VM: lsusb -vv -t (give only the section of the webcam)
  • Videoconferencing-VM: lsmod

Note :

  • lsmod display all the loaded kernel modules,
  • lsusb -vv -t display additional properties of the USB device, including the used driver (see Driver= property)

I also noted a small difference, the Bus where is connected your webcam, in the traces you gave:

Please verify. And viewing this difference, just an idea, is it a USB-3 or USB-2 Webcam?

Questions to skilled people who are using an USB webcam with Qubes OS:

  • Should the webcam be attached to sys-usb or to the @Wikinaut 's standalone Videoconferencing-VM ?
  • Do you understand why dom0/qvm-usb output is empty?

Some (not all answers) to be quick. Detailed answer comes later.

  1. The Logitech 922 Webcam is an USB-2 device; the NUC (INTEL NUC D54250WYK - fully updated to latest available BIOS) has four USB-3.0 slots. Remember: Linux Mint 20 & Webcam works on that hardware as expected.

  2. Collecting the requested data: will do so in the next few hours.

  3. regarding usb-devices: very honestly, I never understood the documentation about “usb”, “usb-qubes” and so. I always ignored that.

Remark: I used external USB-3 memory sticks with Qubes many times in the past without problems.

Remark 2: I recently was not able to flash an arduino - this was reported in a different issue; I now want to concentrate to get videoconferencing working, because I have to install strange software like “alfaview” and want to do this in a Qubes VM once I get the Webcam working.

Hi @Wikinaut,
I created a standalone debian-10 teleconferencing VM and I took an old webcam from the bottom of my drawer. Then I checked the procedure.

The result:

  1. So dom0 is never used in this procedure.

  2. sys-usb detects the webcam (dmesg -Tw), which is listed by lsusb but without driver (lsusb -t). Note that lsusb display the full name of the webcam (“Hercules Dualpix infinite”).

  3. in the tray bar/Panel, I click on the USB icon, choose the webcam device and attach it to the teleconferencing VM.

  4. teleconferencing VM detects the webcam (dmesg -Tw), which is listed by lsusb with a driver (lsusb -t, Driver=uvcvideo). Note that lsusb display the short name of the webcam (without “Hercules Dualpix infinite”).

  5. I launch the “cheese” software and it displays the webcam video

Could you try this procedure, maybe you miss the step 2, and it isn’t a driver problem…

ad 1. sys-usb does not detect the Webcam.

This looks as if you have two USB controllers; dom0 owns one (probably due to your USB keyboard) and sys-usb the other. You are probably plugging the webcam into the controller that goes to dom0, as I can see in your dom0 output your mouse, keyboard, and webcam are all on the same USB 2.0 bus.

Try using a different USB port for the webcam in hopes that it gets connected to the USB controller owned by sys-usb.

The alternative is to let sys-usb handle both USB controllers, and set up your system such that sys-usb is able to direct keyboard input into dom0. There are risks associated it with this and a higher chance of locking yourself out. USB qubes | Qubes OS

If dom0 sees the USB device, but doesn’t detect it as a camera (no drivers), try using kernel-latest in dom0. Pointers: Redirecting…

Since yesterday, I do already use kernel-latest.
Your comment regarding the two controllers: I also thought so. I will try to mix a little bit and come back later here.