lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Tue, 28 Aug 2012 06:10:34 -0700 (PDT)
From:	Steven Thompson <thomps2048@...oo.ca>
To:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Cc:	"Linux-uvc-devel@...ts.berlios.de" <Linux-uvc-devel@...ts.berlios.de>
Subject: UVC Video problem with various kernels.

Good morning,

I am attempting to use the video capture program 'motion' to capture video from a USB web-cam, however I am getting an error message from the uvcvideo module:  "Failed to resubmit video URB (-27)", which I note from a quick google search has been an issue for some people for what seems to be a couple of years.

The camera identifies as:


[    8.961099] usb 1-1: New USB device found, idVendor=045e, idProduct=0772
[    8.982632] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    9.004320] usb 1-1: Product: Microsoft® LifeCam Studio(TM)
[    9.026025] usb 1-1: Manufacturer: Microsoft

I have a dual-core i5-2330 based system, and the camera seems to work properly at full HD resolution on that system, even if the kernel does throttle the 4 cpus a little due to heating issues.

However, my "security system" is an old Dell Inspiron with a Pentium-M that is clocked at 1600 MHz.  motion is configured to capture at two frames per second at a resolution of 352x288.  The destination file is on an exported NFS volume which is at least capable of 10MB/s with the 'sync' mount option.

A trace of the motion process shows that it is hanging on one particular ioctl:

2040  ioctl(5, VIDIOC_QBUF or VT_SETACTIVATE, 0x9737d34) = 0
2040  ioctl(5, VIDIOC_DQBUF <unfinished ...>

Which is at the point where I have to kill -9 the process to terminate it, otherwise it just hangs forever.

One message on the linux-uvc-devel mailing list from April 12 suggests enabling debug messages, which I have done and attached the resulting messages for a typical session.  The last few lines are as follows:



...
    971 Aug 28 07:58:44 media kernel: [ 2064.697579] uvcvideo: USB isochronous frame lost (-18).
    972 Aug 28 07:58:44 media kernel: [ 2064.697585] uvcvideo: Failed to resubmit video URB (-27).
    973 Aug 28 07:58:44 media kernel: [ 2064.820266] uvcvideo: uvc_v4l2_ioctl(VIDIOC_S_CTRL)
    974 Aug 28 07:58:44 media kernel: [ 2064.828955] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
    975 Aug 28 07:58:44 media kernel: [ 2064.828966] uvcvideo: uvc_v4l2_ioctl(VIDIOC_DQBUF)
    976 Aug 28 07:58:45 media kernel: [ 2065.253537] uvcvideo: uvc_v4l2_ioctl(VIDIOC_S_CTRL)
    977 Aug 28 07:58:45 media kernel: [ 2065.254622] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
    978 Aug 28 07:58:45 media kernel: [ 2065.254634] uvcvideo: uvc_v4l2_ioctl(VIDIOC_DQBUF)
    979 Aug 28 07:58:45 media kernel: [ 2065.690157] uvcvideo: uvc_v4l2_ioctl(VIDIOC_S_CTRL)
    980 Aug 28 07:58:45 media kernel: [ 2065.691261] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
    981 Aug 28 07:58:45 media kernel: [ 2065.691279] uvcvideo: uvc_v4l2_ioctl(VIDIOC_DQBUF)
    982 Aug 28 07:58:46 media kernel: [ 2066.129899] uvcvideo: uvc_v4l2_ioctl(VIDIOC_S_CTRL)
    983 Aug 28 07:58:46 media kernel: [ 2066.131005] uvcvideo: uvc_v4l2_ioctl(VIDIOC_QBUF)
    984 Aug 28 07:58:46 media kernel: [ 2066.131022] uvcvideo: uvc_v4l2_ioctl(VIDIOC_DQBUF)
    985 Aug 28 07:59:16 media motion: [0] Thread 1 - Watchdog timeout, trying to do a graceful restart
    986 Aug 28 07:59:16 media motion: [0] httpd Closing
    987 Aug 28 07:59:16 media motion: [0] httpd thread exit


It seems that the issue causing this problem is related to USB synchronization, but I am otherwise at a loss as to what is really going on in the driver.  Another program identifies the camera as follows:

vgrabbj, Version 0.9.6
Videodevice name: /dev/video0 (Microsoft® LifeCam Studio(TM))
Capabilities
Type     : -1079656359  Values can be looked up at videodev.h
Channels : 1
Audio    : 0
MaxWidth : 1920
MaxHeight: 1080
MinWidth : 160
MinHeigth: 120

Current Settings:
Brightness: 29418
Hue       : 0
Color     : 32768
Contrast  : 32768
Whiteness : 0
Depth     : 24
Palette   : RGB24 (4)
Width     : 352
Height    : 288
Chromakey : -1079656392

Interestingly enough, the camera does have a microphone and I can monitor it with alsamixer.

Changing the capture resolution to its minimum (160x120) does not help, and in light of this I cannot blame the computer for being too slow.  motion still captures only several seconds of time-lapse video before locking-up at the same ioctl.

I've used the Ubuntu-supplied kernel verion 2.6.38-5-generic, as well as 3.4.4 and 3.4.9, all of which exhibit the same behaviour.  Finally, every program that I have tested triggers this bug, and produces the same symptoms.  I should note that my HP ProBook is running OpenSuse Linux, kernel version 3.4.4 (x86-64), and has no problem with the camera under 'cheese'.  On the Dell, cheese does not lock up hard, but otherwise stops capturing frames after a few seconds, as with everything else.

Since I've tossed out the packaging for the camera, I would prefer to make this thing work (even if it is sold by MS, the image quality is quite good).

So, any ideas?


Regards,

Steve

Download attachment "syslog" of type "application/octet-stream" (113189 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ