this post was submitted on 27 Oct 2024
31 points (94.3% liked)

Linux

5234 readers
99 users here now

A community for everything relating to the linux operating system

Also check out !linux_memes@programming.dev

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 1 year ago
MODERATORS
 

edit: solved lol

When I run Cheese, the inbuilt webcam light flashes for an instant then stops. Assuming Cheese opens correctly, it never successfully shows the webcam feed. Cheese worked prior to update. ( Zoom webcam fails too D: )

setup

Arch Linux, kernel 6.11.5-arch-11, Hyprland v0.44.1 (pipewire 1.2.6) on a hybrid Nvidia+Intel Lenovo laptop.

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 25a7:fa23 Areson Technology Corp 2.4G Receiver
Bus 001 Device 004: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 005: ID 138a:0094 Validity Sensors, Inc. 
Bus 001 Device 033: ID 13d3:5673 IMC Networks EasyCamera
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

$ v4l2-ctl --list-devices                                         
EasyCamera: EasyCamera (usb-0000:00:14.0-5):
	/dev/video0
	/dev/video1
	/dev/media0

packages

I'm up-to-date.

$ yay -Q |egrep -i 'gstreamer|video|cam|media|mtp'
fswebcam 20200725-1
gnome-video-effects 1:0.6.0-2
gst-plugin-libcamera 0.3.2-1
gstreamer 1.24.8-1
gstreamer-vaapi 1.24.8-1
guvcview 2.1.0-4
guvcview-common 2.1.0-4
gvfs-mtp 1.56.1-1
haskell-http-media 0.8.1.1-18
intel-media-driver 24.3.3-1
libcamera 0.3.2-1
libcamera-ipa 0.3.2-1
libmtp 1.1.21-2
media-player-info 26-1
perl-lwp-mediatypes 6.04-6
pipewire-libcamera 1:1.2.6-1
# qt omitted
xf86-video-intel 1:2.99.917+923+gb74b67f0-2

tried apps

Tried cheese and fswebcam, among a few others (logs are too long to fit)

$ cheese
cheese

(cheese:53011): Gdk-WARNING **: 11:41:45.977: Native Windows taller than 65535 pixels are not supported
[0:56:26.030577084] [53011] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:56:26.030591748] [53011] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:56:26.030607425] [53011]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2

(cheese:53011): GStreamer-CRITICAL **: 11:41:46.096: gst_structure_get_value: assertion 'structure != NULL' failed
[0:57:26.270746293] [53011] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:57:26.270790988] [53011] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:57:26.270850259] [53011]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:57:26.432615229] [53061]  INFO Camera camera.cpp:1197 configuring streams: (0) 640x480-MJPEG
[0:57:26.449271361] [53574] ERROR V4L2 v4l2_videodevice.cpp:1931 /dev/video0[450:cap]: Failed to start streaming: Protocol error
[0:57:26.449379043] [53574] ERROR V4L2 v4l2_videodevice.cpp:1266 /dev/video0[450:cap]: Unable to request 0 buffers: No such device

(cheese:53011): cheese-WARNING **: 11:42:46.537: Failed to start the camera: Protocol error: ../libcamera/src/gstreamer/gstlibcamerasrc.cpp(680): gst_libcamera_src_task_enter (): /GstCameraBin:camerabin/GstWrapperCameraBinSrc:camera_source/GstBin:bin37/GstLibcameraSrc:libcamerasrc0:
Camera.start() failed with error code -71

(cheese:53011): Clutter-CRITICAL **: 11:42:48.119: Unable to create dummy onscreen: No foreign surface, and wl_shell unsupported by the compositor
$ fswebcam -v
***
Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
src_v4l2_get_capability,91: /dev/video0 information:
src_v4l2_get_capability,92: cap.driver: "uvcvideo"
src_v4l2_get_capability,93: cap.card: "EasyCamera: EasyCamera"
src_v4l2_get_capability,94: cap.bus_info: "usb-0000:00:14.0-5"
src_v4l2_get_capability,95: cap.capabilities=0x84A00001
src_v4l2_get_capability,96: - VIDEO_CAPTURE
src_v4l2_get_capability,107: - STREAMING
No input was specified, using the first.
src_v4l2_set_input,185: /dev/video0: Input 0 information:
src_v4l2_set_input,186: name = "Camera 1"
src_v4l2_set_input,187: type = 00000002
src_v4l2_set_input,189: - CAMERA
src_v4l2_set_input,190: audioset = 00000000
src_v4l2_set_input,191: tuner = 00000000
src_v4l2_set_input,192: status = 00000000
src_v4l2_set_pix_format,523: Device offers the following V4L2 pixel formats:
src_v4l2_set_pix_format,532: 0: [0x47504A4D] 'MJPG' (Motion-JPEG)
src_v4l2_set_pix_format,532: 1: [0x56595559] 'YUYV' (YUYV 4:2:2)
Using palette MJPEG
Adjusting resolution from 384x288 to 424x240.
src_v4l2_set_mmap,675: mmap information:
src_v4l2_set_mmap,676: frames=4
src_v4l2_set_mmap,725: 0 length=203520
src_v4l2_set_mmap,725: 1 length=203520
src_v4l2_set_mmap,725: 2 length=203520
src_v4l2_set_mmap,725: 3 length=203520
Error starting stream.
VIDIOC_STREAMON: Protocol error
Unable to use mmap. Using read instead.
Unable to use read.

logs

$ journalctl -b-0
# some stuff removed for post character limit
pipewire[1028]: spa.v4l2: '/dev/video0' VIDIOC_STREAMON: Protocol error
pipewire[1028]: pw.node: (v4l2_input.pci-0000_00_14.0-usb-0_5_1.0-78) suspended -> error (Start error: Protocol error)
kernel: usb 1-5: USB disconnect, device number 50
pipewire[1028]: spa.v4l2: VIDIOC_REQBUFS: No such device
kernel: usb 1-5: new high-speed USB device number 51 using xhci_hcd
kernel: usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
kernel: usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
kernel: usb 1-5: Product: EasyCamera
kernel: usb 1-5: Manufacturer: AzureWave
kernel: usb 1-5: SerialNumber: 0001
kernel: usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)
mtp-probe[66565]: checking bus 1, device 51: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5"
mtp-probe[66565]: bus: 1, device: 51 was not an MTP device
mtp-probe[66599]: checking bus 1, device 51: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5"
mtp-probe[66599]: bus: 1, device: 51 was not an MTP device
kernel: usb 1-5: USB disconnect, device number 51
kernel: usb 1-5: new high-speed USB device number 52 using xhci_hcd
kernel: usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
kernel: usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
kernel: usb 1-5: Product: EasyCamera
kernel: usb 1-5: Manufacturer: AzureWave
kernel: usb 1-5: SerialNumber: 0001
kernel: usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)
$ sudo dmesg
[ 5248.449913] usb 1-5: USB disconnect, device number 50
[ 5248.842621] usb 1-5: new high-speed USB device number 51 using xhci_hcd
[ 5249.025592] usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
[ 5249.025612] usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[ 5249.025620] usb 1-5: Product: EasyCamera
[ 5249.025626] usb 1-5: Manufacturer: AzureWave
[ 5249.025632] usb 1-5: SerialNumber: 0001
[ 5249.030816] usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)
[ 5259.873533] usb 1-5: USB disconnect, device number 51
[ 5260.268988] usb 1-5: new high-speed USB device number 52 using xhci_hcd
[ 5260.454354] usb 1-5: New USB device found, idVendor=13d3, idProduct=5673, bcdDevice=16.04
[ 5260.454371] usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[ 5260.454378] usb 1-5: Product: EasyCamera
[ 5260.454384] usb 1-5: Manufacturer: AzureWave
[ 5260.454389] usb 1-5: SerialNumber: 0001
[ 5260.460370] usb 1-5: Found UVC 1.00 device EasyCamera (13d3:5673)

Any help appreciated! ^_^

Solution: It fixed itself after like 15 power cycles. Easy peasy

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Max_P@lemmy.max-p.me 6 points 3 weeks ago (1 children)

The camera is straight up disconnecting from the USB bus. A bad driver could cause it to get confused and reset itself. And that would be the uvcvideo kernel module, userspace shouldn't be able to crash the camera.

Since downgrading the kernel didn't help, and it also doesn't work on other distros, I'd consider the possibility your webcam just died.

Are you able to make it work on any distro, or even Windows?

[โ€“] fool@programming.dev 1 points 2 weeks ago* (last edited 2 weeks ago)

I tried a bunch of boot-from-USB tests and it fixed itself. Woot