Built-in camera sometimes works

:wave: Hallo community,

:see_no_evil: My thread has not the same issue like (post#1448 and post#1526), but nearly…

:question: I have a dispVM and connecting my built-in camera to this VM in “Qubes Devices”. I open via Firefox (or Chromium) the Webpage Jitsi. I will asked for audio permission and then camera permission. If I give the grant for camera permission “Qubes VCHAN source”, then the system tries to establish the channel and … puff… no pic, only my on-air-LED is shining and a error message appears via pop-up notification from the dom0 system. I remove the usb-connection to this dispVM and add it again… after serveral times of switching on/off I get a stable communication between my web browser and camera.

:mag_right: Strange, right? What could I do to analyze it in a professional way?

:sos: Could someone help me please?

:pray: Thank you .

1 Like

Your posts suggest that you are at least somewhat familiar with Linux-based OSes, and you appear to be somewhat familiar with Qubes OS (which is awesome, by the way).

So what information do you think would be helpful to know to help you diagnose and solve this?

The output of lsusb, maybe?
The make and model of your webcam, maybe?

:slight_smile:

That is my output:

user@disp1833:~$ sudo lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 0bda:58db Realtek Semiconductor Corp. Integrated Camera
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

What did the error message actually say?


It sounds like there’s something in your qubes-rpc / qrexec configs that’s blocking it…

But that still doesn’t fully explain why it works after several times…

Have you checked the output of dmesg when it doesn’t work (and when it does)?

I tried in dom0 to get some messages (e.g. tail -f /var/log/* )… nothing.
I tried in dispVM to get some messages (e.g. tail -f /var/log/syslog)… gotcha!

For explaination… USB device (built-in camera) was already connected to the dispVM. I disconneted it and tried again to connect it. I was in a Jitsi room, the whole time…

Example for “it doesn’t work”

root@disp3883:~# sudo tail -f /var/log/syslog
Apr 27 23:04:17 localhost kernel: [  913.162306] vhci_hcd: stop threads
Apr 27 23:04:17 localhost kernel: [  913.162328] vhci_hcd: release socket
Apr 27 23:04:17 localhost kernel: [  913.162340] vhci_hcd: disconnect device
Apr 27 23:04:17 localhost kernel: [  913.162370] usb 1-1: USB disconnect, device number 17
Apr 27 23:04:17 localhost kernel: [  913.171151] deferring g.e. 0x221f (pfn 0xf8b6)
Apr 27 23:04:17 localhost kernel: [  913.171153] deferring g.e. 0x23d8 (pfn 0xf8b7)
Apr 27 23:04:18 localhost kernel: [  913.673763] deferring g.e. 0x1971 (pfn 0x22ddc)
Apr 27 23:04:18 localhost kernel: [  913.673765] deferring g.e. 0x1970 (pfn 0x12256)
Apr 27 23:04:18 localhost kernel: [  913.673766] deferring g.e. 0x1d8a (pfn 0x572ff)
Apr 27 23:04:18 localhost systemd[1]: session-c22.scope: Succeeded.





Apr 27 23:04:32 localhost qrexec-agent[4003]: 2022-04-27 23:04:32.992 qrexec-agent[4003]: qrexec-agent-data.c:244:handle_new_process_common: executed: root:QUBESRPC qubes.USBAttach dom0 (pid 4005)
Apr 27 23:04:32 localhost systemd[1]: Started Session c23 of user root.
Apr 27 23:04:33 localhost kernel: [  928.694529] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(0)
Apr 27 23:04:33 localhost kernel: [  928.694549] vhci_hcd vhci_hcd.0: devid(131075) speed(3) speed_str(high-speed)
Apr 27 23:04:33 localhost kernel: [  928.694571] vhci_hcd vhci_hcd.0: Device attached
Apr 27 23:04:33 localhost kernel: [  928.914456] usb 1-1: new high-speed USB device number 18 using vhci_hcd
Apr 27 23:04:33 localhost kernel: [  929.029453] usb 1-1: SetAddress Request (18) to port 0
Apr 27 23:04:33 localhost kernel: [  929.106070] usb 1-1: New USB device found, idVendor=0bda, idProduct=58db, bcdDevice= 0.02
Apr 27 23:04:33 localhost kernel: [  929.106093] usb 1-1: New USB device strings: Mfr=3, Product=1, SerialNumber=2
Apr 27 23:04:33 localhost kernel: [  929.106122] usb 1-1: Product: Integrated Camera
Apr 27 23:04:33 localhost kernel: [  929.106135] usb 1-1: Manufacturer: 8SSC20F27029L1GZ71A07V3
Apr 27 23:04:33 localhost kernel: [  929.106149] usb 1-1: SerialNumber: 200901010001
Apr 27 23:04:33 localhost kernel: [  929.146599] uvcvideo: Found UVC 1.00 device Integrated Camera (0bda:58db)
Apr 27 23:04:33 localhost kernel: [  929.178466] uvcvideo: Failed to initialize entity for entity 6
Apr 27 23:04:33 localhost kernel: [  929.178485] uvcvideo: Failed to register entities (-22).
Apr 27 23:04:33 localhost kernel: [  929.178684] input: Integrated Camera: Integrated C as /devices/platform/vhci_hcd.0/usb1/1-1/1-1:1.0/input/input17
Apr 27 23:04:33 localhost mtp-probe: checking bus 1, device 18: "/sys/devices/platform/vhci_hcd.0/usb1/1-1"
Apr 27 23:04:33 localhost mtp-probe: bus: 1, device: 18 was not an MTP device
Apr 27 23:04:33 localhost kernel: [  929.216070] vhci_hcd: unlink->seqnum 1460
Apr 27 23:04:33 localhost kernel: [  929.216083] vhci_hcd: urb->status -104
Apr 27 23:04:33 localhost kernel: [  929.223644] vhci_hcd: unlink->seqnum 1462
Apr 27 23:04:33 localhost kernel: [  929.223657] vhci_hcd: urb->status -104
Apr 27 23:04:33 localhost kernel: [  929.227734] vhci_hcd: unlink->seqnum 1464
Apr 27 23:04:33 localhost kernel: [  929.227748] vhci_hcd: urb->status -104
Apr 27 23:04:33 localhost kernel: [  929.232127] vhci_hcd: unlink->seqnum 1466
Apr 27 23:04:33 localhost kernel: [  929.232142] vhci_hcd: urb->status -104
Apr 27 23:04:33 localhost mtp-probe: checking bus 1, device 18: "/sys/devices/platform/vhci_hcd.0/usb1/1-1"
Apr 27 23:04:33 localhost mtp-probe: bus: 1, device: 18 was not an MTP device
Apr 27 23:04:34 localhost qrexec-agent[4003]: 2022-04-27 23:04:34.003 qrexec-agent[4003]: qrexec-agent-data.c:272:handle_new_process_common: pid 4005 exited with 0
Apr 27 23:04:34 localhost kernel: [  929.505050] vhci_hcd: unlink->seqnum 1468
Apr 27 23:04:34 localhost kernel: [  929.505065] vhci_hcd: urb->status -104
Apr 27 23:04:34 localhost kernel: [  929.509189] vhci_hcd: unlink->seqnum 1470
Apr 27 23:04:34 localhost kernel: [  929.509202] vhci_hcd: urb->status -104
Apr 27 23:04:34 localhost kernel: [  929.512946] vhci_hcd: unlink->seqnum 1472
Apr 27 23:04:34 localhost kernel: [  929.512960] vhci_hcd: urb->status -104
Apr 27 23:04:34 localhost kernel: [  930.305559] vhci_hcd: unlink->seqnum 1474
Apr 27 23:04:34 localhost kernel: [  930.305586] vhci_hcd: urb->status -104
Apr 27 23:04:35 localhost kernel: [  930.310196] vhci_hcd: unlink->seqnum 1476
Apr 27 23:04:35 localhost kernel: [  930.310213] vhci_hcd: urb->status -104
Apr 27 23:04:35 localhost kernel: [  930.315441] vhci_hcd: unlink->seqnum 1478
Apr 27 23:04:35 localhost kernel: [  930.315458] vhci_hcd: urb->status -104
Apr 27 23:04:35 localhost kernel: [  930.329429] vhci_hcd: unlink->seqnum 1480
Apr 27 23:04:35 localhost kernel: [  930.329443] vhci_hcd: urb->status -104
Apr 27 23:04:35 localhost kernel: [  930.330301] vhci_hcd: unlink->seqnum 1482
Apr 27 23:04:35 localhost kernel: [  930.330314] vhci_hcd: urb->status -104
Apr 27 23:04:35 localhost kernel: [  930.333676] vhci_hcd: unlink->seqnum 1484
Apr 27 23:04:35 localhost kernel: [  930.333692] vhci_hcd: urb->status -104

:roll_eyes: It is hard to get a successful example, cause it is random.

It’s always like this, unfortunately…. :slight_smile:

That’s what’s supposed to happen. Ideally, dom0 shouldn’t even know that your camera exists.

That could potentially be why (maybe). Jitsi sometimes doesn’t like certain webcams, particularly if you’re self-hosting the videobridge (I found that out the hard way…).

Does the camera work in other applications, for example, Cheese or VLC?

Hallo @alzer89 (alzer89),

I will check it these days… read you… :slight_smile: