This broke somewhere in the 4.x kernel series. I saw some discussion on it, regarding part being moved to userland with a suggested quirks fix, but that didn't work for me. Here's what's in
dmesg:
Code:
[ 7422.871397] usb 2-5: new high-speed USB device number 14 using xhci_hcd
[ 7423.078616] usb 2-5: New USB device found, idVendor=04f2, idProduct=b446, bcdDevice=27.08
[ 7423.078631] usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7423.078636] usb 2-5: Product: TOSHIBA Web Camera - HD
[ 7423.078641] usb 2-5: Manufacturer: SunplusIT Inc
[ 7423.721736] mc: Linux media interface: v0.10
[ 7423.738947] videodev: Linux video capture interface: v2.00
[ 7423.761634] usb 2-5: Found UVC 1.00 device TOSHIBA Web Camera - HD (04f2:b446)
[ 7423.781664] input: TOSHIBA Web Camera - HD: TOSHIB as /devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input23
[ 7423.781708] usbcore: registered new interface driver uvcvideo
[ 7424.484955] usb 2-5: USB disconnect, device number 14
This repeats
ad infinitum with device number incrementing. Eventually, I'll get this:
Code:
[21625.639674] usb 2-5: new full-speed USB device number 16 using xhci_hcd
[21625.767703] usb 2-5: device descriptor read/64, error -71
[21641.487651] usb 2-5: device descriptor read/64, error -110
[21641.723574] usb 2-5: new full-speed USB device number 17 using xhci_hcd
[21641.851638] usb 2-5: device descriptor read/64, error -71
[21642.087642] usb 2-5: device descriptor read/64, error -71
[21642.195543] usb usb2-port5: attempt power cycle
If I do a `sudo rmmod uvcvideo && sudo modprobe uvcvideo`, I'll get:
Code:
[299928.617097] usb 2-5: Failed to query (GET_RES) UVC control 3 on unit 2: -71 (exp. 2).
[299928.617350] usb 2-5: Failed to query (GET_DEF) UVC control 3 on unit 2: -75 (exp. 2).
[299928.628564] usb 2-5: Failed to query (GET_RES) UVC control 6 on unit 2: -32 (exp. 2).
[299928.668012] usb 2-5: Failed to query (GET_DEF) UVC control 9 on unit 2: -19 (exp. 2).
There's no
/dev/video, no
/dev/uvcvideo, and the input device created in
/sys does not exist there nor in
/dev/input. Furthermore, `lsusb -s 2:5 -v` shows nothing. There's no output from `lsusb -v -d 04f2:b446` either. Here's the output of `lsmod | grep uvc`:
Code:
uvcvideo 118784 0
videobuf2_vmalloc 20480 1 uvcvideo
videobuf2_v4l2 36864 1 uvcvideo
videobuf2_common 65536 4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
videodev 274432 3 videobuf2_v4l2,uvcvideo,videobuf2_common
mc 61440 4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
usbcore 323584 9 xhci_hcd,ehci_pci,usbhid,usb_storage,uvcvideo,ehci_hcd,btusb,xhci_pci,uas
I have all the V4L packages installed (`zypper se -si v4l`):
Code:
Loading repository data...
Reading installed packages...
S | Name | Type | Version | Arch | Repository
---+------------------------+---------+-------------+--------+-----------------------------
i+ | libgviewv4l2core-2_0-2 | package | 2.0.6-2.10 | x86_64 | Main Repository (OSS)
i+ | libgviewv4l2core-2_0-2 | package | 2.0.6-2.10 | x86_64 | openSUSE:Factory
i+ | libgviewv4l2core-2_0-2 | package | 2.0.6-2.10 | x86_64 | openSUSE:Tumbleweed
i+ | libv4l | package | 1.20.0-3.2 | x86_64 | Main Repository (OSS)
i+ | libv4l | package | 1.20.0-3.2 | x86_64 | openSUSE:Factory
i+ | libv4l | package | 1.20.0-3.2 | x86_64 | openSUSE:Tumbleweed
i+ | libv4l1-0 | package | 1.20.0-3.2 | x86_64 | Main Repository (OSS)
i+ | libv4l1-0 | package | 1.20.0-3.2 | x86_64 | openSUSE:Factory
i+ | libv4l1-0 | package | 1.20.0-3.2 | x86_64 | openSUSE:Tumbleweed
i+ | libv4l1-0-32bit | package | 1.20.0-3.2 | x86_64 | Main Repository (OSS)
i+ | libv4l1-0-32bit | package | 1.20.0-3.2 | x86_64 | openSUSE:Factory
i+ | libv4l1-0-32bit | package | 1.20.0-3.2 | x86_64 | openSUSE:Tumbleweed
i+ | libv4l2-0 | package | 1.20.0-3.2 | x86_64 | Main Repository (OSS)
i+ | libv4l2-0 | package | 1.20.0-3.2 | x86_64 | openSUSE:Factory
i+ | libv4l2-0 | package | 1.20.0-3.2 | x86_64 | openSUSE:Tumbleweed
i+ | libv4l2-0-32bit | package | 1.20.0-3.2 | x86_64 | Main Repository (OSS)
i+ | libv4l2-0-32bit | package | 1.20.0-3.2 | x86_64 | openSUSE:Factory
i+ | libv4l2-0-32bit | package | 1.20.0-3.2 | x86_64 | openSUSE:Tumbleweed
i+ | libv4l2rds0 | package | 1.20.0-96.5 | x86_64 | home:X0F:branches:multimedia
i+ | libv4lconvert0 | package | 1.20.0-3.2 | x86_64 | Main Repository (OSS)
i+ | libv4lconvert0 | package | 1.20.0-3.2 | x86_64 | openSUSE:Factory
i+ | libv4lconvert0 | package | 1.20.0-3.2 | x86_64 | openSUSE:Tumbleweed
i+ | libv4lconvert0-32bit | package | 1.20.0-3.2 | x86_64 | Main Repository (OSS)
i+ | libv4lconvert0-32bit | package | 1.20.0-3.2 | x86_64 | openSUSE:Factory
i+ | libv4lconvert0-32bit | package | 1.20.0-3.2 | x86_64 | openSUSE:Tumbleweed
i+ | obs-v4l2sink | package | 0.1.0-4.13 | x86_64 | Packman Repository
i+ | v4l-conf | package | 3.107-2.3 | x86_64 | Main Repository (OSS)
i+ | v4l-conf | package | 3.107-2.3 | x86_64 | openSUSE:Factory
i+ | v4l-conf | package | 3.107-2.3 | x86_64 | openSUSE:Tumbleweed
i+ | v4l-tools | package | 3.107-2.3 | x86_64 | Main Repository (OSS)
i+ | v4l-tools | package | 3.107-2.3 | x86_64 | openSUSE:Factory
i+ | v4l-tools | package | 3.107-2.3 | x86_64 | openSUSE:Tumbleweed
i+ | v4l-utils | package | 1.20.0-96.5 | x86_64 | home:X0F:branches:multimedia
i+ | xf86-video-v4l | package | 0.3.0-2.35 | x86_64 | home:X0F:HSF
My user is visible when I run `grep video /etc/group`. I didn't get anything new when enabling tracing on the uvcvideo module. Although this device is not listed in the
http://www.ideasonboard.org/uvc/#devices list, the webcam used to work. The only thing I can think of ATM is to dump the device descriptors on boot before it becomes unresponsive, but what can else I do to get it working again?