Driver non-functional in Dapper - AMD K8 kernel, Logitech Communicate STX webcam

Bug #38906 reported by Rounan
12
Affects Status Importance Assigned to Milestone
linux-source-2.6.15 (Ubuntu)
Won't Fix
Medium
Unassigned

Bug Description

I upgraded to Dapper because I heard that the spca5xx driver was actually functional. (it's broken in Breezy because the module was compiled with gcc 4, while the kernel was in gcc 3.4)

I'm using a Logitech Quickcam Communicate STX on an AMD64 system, k8 kernel. It's detected fine - lsmod shows the spca5xx module loaded. It's handled fine by udev - /dev/video and /dev/video0 both exist. But when I try to use it, no dice.

Ekiga doesn't detect it.
Using camorama, it pops up an error saying "could not connect to video device (/dev/video0)", and using the debug (-D) option gives me this single tidbit:
Code:

VIDIOCGCAP -- could not get camera capabilities, exiting.....

even lowly cat is unable to use this device properly:
Code:

$ ls -l /dev/video* lrwxrwxrwx 1 root root 6 2006-04-08 10:37 /dev/video -> video0 crw-rw---- 1 root video 81, 0 2006-04-08 10:37 /dev/video0 $ cat /dev/video0 cat: /dev/video0: No space left on device

Which is funny, because I didn't ask it to write anything to the device.

Revision history for this message
Rounan (nrcavan) wrote :

UPDATE:

The spca5xx driver does work, but if and only if the webcam is the only usb device connected to the system.

Rebooting with only the webcam connected yields a working video device. Plugging in my usb mouse does one of two things:
If camorama is running, the mouse is detected but does not work, and the video keeps working.
If camorama is not running, the mouse works but the video device reverts to the same behaviour described above.

By removing all USB devices and their associated kernel modules (modprobe -r spca5xx usbhid tsdev) resets it so that if the webcam is plugged in again, it works. But only if it's plugged in first, and only until something else is plugged in.

I'm not sure where to direct this bug - I don't know if it's the spca driver, the USB system, K8-specific... Further testing on different hardware would help.

Changed in spca5xx:
status: Unconfirmed → Confirmed
Revision history for this message
Rounan (nrcavan) wrote :
Revision history for this message
Rounan (nrcavan) wrote :

UPDATE:

Problem is also present in the 386 and k7 32-bit kernels. I have moved away from AMD64 and am now running a 32-bit system, but still cannot get the webcam working.

Matt Zimmerman (mdz)
Changed in linux-source-2.6.15:
status: Confirmed → Unconfirmed
Revision history for this message
Guillermo Gutiérrez (capitanterrex) wrote :

somebody working on this?

Revision history for this message
vodunvibe (vodunvibe) wrote :
Download full text (4.8 KiB)

Subject: [PATCH] spca5xx patch for “No space left on device” error message

Related bugs:
https://launchpad.net/distros/ubuntu/+source/spca5xx/+bug/34543
https://launchpad.net/distros/ubuntu/+source/linux-source-2.6.15/+bug/42132
https://launchpad.net/distros/ubuntu/+source/linux-source-2.6.15/+bug/38906

Please take a look at the following for more details and fixes:
http://ubuntuforums.org/showthread.php?t=247646

Subject: [PATCH] spca5xx patch for “No space left on device” error message

This patch Fixes the bandwidth problem that occurs when other USB devices
are on the same host controller bus as the camera by gradually lowering the
bandwidth requirements of the driver.

When the patch is applied, spca5xx drivers works even when other USB devices
are present on the same host controller bus as the camera.

This patch is currently against the spca5xx-20060501 source.

To apply the patch from your current working directory, with a subdirectory
called spca5xx-20060501 use:
patch -p0 < spca5xx-20060501-vodunvibe-Nospaceleftondevice.patch

To apply the patch, in the spca5xx-20060501 directory use:
patch -p1 < spca5xx-20060501-vodunvibe-Nospaceleftondevice.patch

Bandwidth Problem details:
 When other USB devices are present on the same host controller
 bus as the camera, the bandwidth requirements of the spca5xx driver
 are not being met. The spca5xx driver is asking for more bandwidth
 than is available which results in the following error messages:

 No space left on device
 can't open /dev/video0: No space left on device.
 usb_submit_urb(0) ret -28

Thanks,
vodunvibe

diff -urN spca5xx-20060501.orig/drivers/usb/spca5xx.c spca5xx-20060501/drivers/usb/spca5xx.c
--- spca5xx-20060501.orig/drivers/usb/spca5xx.c 2006-04-29 11:38:07.000000000 -0400
+++ spca5xx-20060501/drivers/usb/spca5xx.c 2006-09-05 13:19:04.000000000 -0400
@@ -1574,6 +1574,66 @@
       spca50x->funct.stopN(spca50x);
 }

+
+/**********************************************************************
+* spcaReducePacketSize
+* Function Fixes the bandwidth problem that occurs
+* when other USB devices are on the same host controller bus as the
+* camera by gradually lowering the bandwidth requirements of the driver.
+* It works even when other USB devices are present on the same
+* host controller bus as the camera.
+*
+* Problem
+* When other USB devices are present on the same host controller
+* bus as the camera, the bandwidth requirements of the spca5xx driver
+* are not being met. The spca5xx driver is asking for more bandwidth
+* than is available which results in the following error messages:
+*
+* No space left on device
+* can't open /dev/video0: No space left on device.
+* usb_submit_urb(0) ret -28
+*
+*
+* Many thanks to all the wonderful people contributing to this project.
+*
+* Great work!
+* vodunvibe [AT] <email address hidden> yahoo DOT com
+* 2006-08-27
+*
+***********************************************************************/
+static int spcaReducePacketSize(struct usb_spca50x *spca50x, int n, int err)
+{
+ int size=896, fx, i;
+ err("spcaReducePacketSize: vodunvibe - The usb_submit_urb(%d) transfer request submission failed - You probably have another dev...

Read more...

Chuck Short (zulcss)
Changed in linux-source-2.6.15:
status: Unconfirmed → Fix Committed
Changed in linux-source-2.6.15:
assignee: nobody → ubuntu-kernel-team
Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

It seems this patch never made it into the Dapper release. Unfortunately, this bug does not qualify for a stable release update and will be closed against the 2.6.15 kernel. However, please feel free to reopen this report against the 'linux' package if this is still an issue against the latest 8.04 Hardy Alpha release which contains an updated version of the kernel. You can download and try the new Hardy Heron Alpha release from http://cdimage.ubuntu.com/releases/hardy/ . You should be able to then test the new kernel via the LiveCD. General information regarding the release can also be found here: http://www.ubuntu.com/testing/ . Thanks.

Changed in linux-source-2.6.15:
status: Fix Committed → Won't Fix
Revision history for this message
Launchpad Janitor (janitor) wrote : Kernel team bugs

Per a decision made by the Ubuntu Kernel Team, bugs will longer be assigned to the ubuntu-kernel-team in Launchpad as part of the bug triage process. The ubuntu-kernel-team is being unassigned from this bug report. Refer to https://wiki.ubuntu.com/KernelTeamBugPolicies for more information. Thanks.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.