Bug 245507 - multimedia/webcamd: webcam stops working after some time
Summary: multimedia/webcamd: webcam stops working after some time
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Hans Petter Selasky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-10 15:39 UTC by Joseph Mingrone
Modified: 2020-04-10 17:11 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (hselasky)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joseph Mingrone freebsd_committer 2020-04-10 15:39:24 UTC
This is on a Lenovo X220 running 12.1.

% webcamd -l | grep Camera
webcamd [-d ugen0.3] -N Chicony-Electronics-Co---Ltd--Integrated-Camera -S unknown -M 0

% sudo service webcamd start
Starting webcamd.
Attached to ugen0.3[0]

% pwcview -s vga
Webcam set to: 640x480 (vga) at 5 fps

Normally this works, but something gets triggered, so that this only brings up a green screen and the LED on the webcam is not lit up.  I've tried restarting webcamd, reloading the cuse kernal module and

% sudo usbconfig -d ugen0.3 power_off
% sudo usbconfig -d ugen0.3 power_on

The only way to stop pwcview is to send a kill signal.  This text is then reported:

Webcam set to: 640x480 (vga) at 5 fps
^Clibv4l2: error dequeuing buf: Device not configured
Error reading from webcam: Device not configured

A wild guess is that some process is blocking something, but I have yet to find a culprit.

I believe the only fix is to restart the laptop.  I will confirm this later.
Comment 1 Hans Petter Selasky freebsd_committer 2020-04-10 15:51:47 UTC
Can you show what is printed in dmesg?

Also I'm working on a libv4l update, see:

https://reviews.freebsd.org/D24355

Try to re-build and re-install the ports patched!

And then re-run the test.

Make sure you simply run "make deinstall" first, then

make all install clean

1) v4l_compat
2) libv4l
3) v4l-utils

--HPS
Comment 2 Hans Petter Selasky freebsd_committer 2020-04-10 15:53:33 UTC
Also try to use a 12-stable kernel. There has been some updates in cuse.
Comment 3 Joseph Mingrone freebsd_committer 2020-04-10 15:59:05 UTC
(In reply to Hans Petter Selasky from comment #1)
Do you want everything from /var/run/dmesg.boot or something specific from there?
Comment 4 Hans Petter Selasky freebsd_committer 2020-04-10 16:07:50 UTC
Are there any ugen detach message?
Comment 5 Joseph Mingrone freebsd_committer 2020-04-10 16:15:31 UTC
(In reply to Hans Petter Selasky from comment #1

I don't see any ugen detach messages, but dmesg is polluted by a repeating chrome message.  I'll try to keep a watch and see if anything is reported.

I haven't seen this before.  I'll try patching manually.

jrm@storage2 /usr/ports [master|✔] % arc patch D24355
 INFO  Base commit is not in local repository; trying to fetch.
Created and checked out branch arcpatch-D24355.
Checking patch multimedia/v4l_compat/pkg-plist...
Checking patch multimedia/v4l_compat/Makefile...
Checking patch multimedia/v4l-utils/pkg-plist...
Checking patch multimedia/v4l-utils/Makefile...
Checking patch multimedia/libv4l/pkg-plist...
Checking patch multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl.cpp...
Checking patch multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl-overlay.cpp...
error: multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl-overlay.cpp: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_v4l2-compliance_v4l2-test-buffers.cpp...
error: multimedia/libv4l/files/patch-utils_v4l2-compliance_v4l2-test-buffers.cpp: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_media-ctl_media-ctl.c...
error: multimedia/libv4l/files/patch-utils_media-ctl_media-ctl.c: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_ir-ctl_ir-ctl.c...
error: multimedia/libv4l/files/patch-utils_ir-ctl_ir-ctl.c: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_ir-ctl_bpf__encoder.c...
error: multimedia/libv4l/files/patch-utils_ir-ctl_bpf__encoder.c: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_dvb_dvbv5-daemon.c...
error: multimedia/libv4l/files/patch-utils_dvb_dvbv5-daemon.c: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_common_v4l2-tpg.h...
error: multimedia/libv4l/files/patch-utils_common_v4l2-tpg.h: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_common_keymap.h...
error: multimedia/libv4l/files/patch-utils_common_keymap.h: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_common_ir-encode.c...
error: multimedia/libv4l/files/patch-utils_common_ir-encode.c: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_cec-ctl_msg2ctl.pl...
error: multimedia/libv4l/files/patch-utils_cec-ctl_msg2ctl.pl: does not exist in index
Checking patch multimedia/libv4l/files/patch-utils_Makefile.in...
Checking patch multimedia/libv4l/files/patch-lib_libv4lconvert_rgbyuv.c...
error: multimedia/libv4l/files/patch-lib_libv4lconvert_rgbyuv.c: does not exist in index
Checking patch multimedia/libv4l/files/patch-lib_libv4lconvert_jpeg__memsrcdest.h...
Checking patch multimedia/libv4l/files/patch-lib_libv4lconvert_control_libv4lcontrol.c...
Checking patch multimedia/libv4l/files/patch-lib_libdvbv5_dvb-dev-remote.c...
error: multimedia/libv4l/files/patch-lib_libdvbv5_dvb-dev-remote.c: does not exist in index
Checking patch multimedia/libv4l/files/patch-lib_include_libdvbv5_dvb-frontend.h...
Checking patch multimedia/libv4l/files/patch-lib_include_libdvbv5_descriptors.h...
error: multimedia/libv4l/files/patch-lib_include_libdvbv5_descriptors.h: does not exist in index
Checking patch multimedia/libv4l/files/patch-lib_Makefile.in...
Checking patch multimedia/libv4l/files/patch-include_linux_dvb_video.h...
Checking patch multimedia/libv4l/files/patch-include_linux_dvb_frontend.h...
Checking patch multimedia/libv4l/files/patch-contrib_freebsd_include_linux_videodev2.h...
Checking patch multimedia/libv4l/files/patch-configure...
Checking patch multimedia/libv4l/files/extra-patch-configure...
Checking patch multimedia/libv4l/files/extra-linux_dvb_osd.h...
Checking patch multimedia/libv4l/files/extra-linux_dvb_ca.h...
Checking patch multimedia/libv4l/distinfo...
Checking patch multimedia/libv4l/Makefile...
Applied patch multimedia/v4l_compat/pkg-plist cleanly.
Applied patch multimedia/v4l_compat/Makefile cleanly.
Applied patch multimedia/v4l-utils/pkg-plist cleanly.
Applied patch multimedia/v4l-utils/Makefile cleanly.
Applied patch multimedia/libv4l/pkg-plist cleanly.
Applied patch multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl.cpp cleanly.
Applied patch multimedia/libv4l/files/patch-utils_Makefile.in cleanly.
Applied patch multimedia/libv4l/files/patch-lib_libv4lconvert_jpeg__memsrcdest.h cleanly.
Applied patch multimedia/libv4l/files/patch-lib_libv4lconvert_control_libv4lcontrol.c cleanly.
Applied patch multimedia/libv4l/files/patch-lib_include_libdvbv5_dvb-frontend.h cleanly.
Applied patch multimedia/libv4l/files/patch-lib_Makefile.in cleanly.
Applied patch multimedia/libv4l/files/patch-include_linux_dvb_video.h cleanly.
Applied patch multimedia/libv4l/files/patch-include_linux_dvb_frontend.h cleanly.
Applied patch multimedia/libv4l/files/patch-contrib_freebsd_include_linux_videodev2.h cleanly.
Applied patch multimedia/libv4l/files/patch-configure cleanly.
Applied patch multimedia/libv4l/files/extra-patch-configure cleanly.
Applied patch multimedia/libv4l/files/extra-linux_dvb_osd.h cleanly.
Applied patch multimedia/libv4l/files/extra-linux_dvb_ca.h cleanly.
Applied patch multimedia/libv4l/distinfo cleanly.
Applied patch multimedia/libv4l/Makefile cleanly.

 Patch Failed!
Usage Exception: Unable to apply patch!
jrm@storage2 /usr/ports [arcpatch-D24355|✚20] %
Comment 6 Hans Petter Selasky freebsd_committer 2020-04-10 17:10:41 UTC
The patch remove some patch files, so you maybe need to add the -E option to patch to get them deleted.
Comment 7 Hans Petter Selasky freebsd_committer 2020-04-10 17:11:36 UTC
Also make sure you run on the latest ports tree as of today.