ov511 webcam does not work

Bug #15065 reported by Casper Wilstrup
6
Affects Status Importance Assigned to Milestone
linux-source-2.6.15 (Ubuntu)
Fix Released
Medium
Ben Collins

Bug Description

When an ov511 based webcam is attached to the USB bus, the ov511 driver is
loaded fine, and /dev/video0 is nicely created. Trying to access the new device
fails though:

> cat /dev/video0
cat: /dev/video0: Cannot allocate memory

The problem occurs when running as root, so it's probably not a permission issue.
This of course also occurs from any v4l application accessing the device, like
camorama, camstream, etc.
Problem found in kernel version 2.6.10-5-amd64-k8

Revision history for this message
Chuck Short (zulcss) wrote :

Maybe the driver is not 64 bit compatible have you tried it under the i386 kernel?

Regards
chuck

Revision history for this message
Casper Wilstrup (cwi-aves) wrote :

(In reply to comment #0)
> When an ov511 based webcam is attached to the USB bus, the ov511 driver is
> loaded fine, and /dev/video0 is nicely created. Trying to access the new device
> fails though:
>
> > cat /dev/video0
> cat: /dev/video0: Cannot allocate memory
>
> The problem occurs when running as root, so it's probably not a permission issue.
> This of course also occurs from any v4l application accessing the device, like
> camorama, camstream, etc.
> Problem found in kernel version 2.6.10-5-amd64-k8

(In reply to comment #1)
> Maybe the driver is not 64 bit compatible have you tried it under the i386 kernel?
>
> Regards
> chuck

(In reply to comment #1)
> Maybe the driver is not 64 bit compatible have you tried it under the i386 kernel?
>
> Regards
> chuck

I haven't tested in 32 bit mode, however the driver works perfectly in a vanilla
kervel version 2.6.10 under 64 bit Gentoo - so it's not a 64 bit issue.

Revision history for this message
Alex R (timeoff-in-highlands) wrote :

(In reply to comment #2)
> (In reply to comment #0)
> > When an ov511 based webcam is attached to the USB bus, the ov511 driver is
> > loaded fine, and /dev/video0 is nicely created. Trying to access the new device
> > fails though:
> >
> > > cat /dev/video0
> > cat: /dev/video0: Cannot allocate memory
> >
> > The problem occurs when running as root, so it's probably not a permission
issue.
> > This of course also occurs from any v4l application accessing the device, like
> > camorama, camstream, etc.
> > Problem found in kernel version 2.6.10-5-amd64-k8
>
> (In reply to comment #1)
> > Maybe the driver is not 64 bit compatible have you tried it under the i386
kernel?
> >
> > Regards
> > chuck
>
> (In reply to comment #1)
> > Maybe the driver is not 64 bit compatible have you tried it under the i386
kernel?
> >
> > Regards
> > chuck
>
> I haven't tested in 32 bit mode, however the driver works perfectly in a vanilla
> kervel version 2.6.10 under 64 bit Gentoo - so it's not a 64 bit issue.

Have also had similar problem on Hoary 32bit, driver is loaded fine but

cat /dev/video0
cat: /dev/video0: Function not implemented

Strangely the cam worked fine in Warty.

Revision history for this message
Laura Ohrndorf (larfi) wrote :

(In reply to comment #3)
> Have also had similar problem on Hoary 32bit, driver is loaded fine but
>
> cat /dev/video0
> cat: /dev/video0: Function not implemented
>
> Strangely the cam worked fine in Warty.

Same here.
I downloaded the files and installed them manually, so there's probably
something wrong with the ov511-package.

Revision history for this message
Gabriel Bauman (gabrielbauman) wrote :

I have what seems like the same issue - running kernel 2.6.10-5-686/Hoary.

$ dmesg
Linux video capture interface: v1.00
drivers/usb/media/ov511.c: USB OV518 video device found
drivers/usb/media/ov511.c: Device revision 9
drivers/usb/media/ov511.c: Compression required with OV518...enabling
drivers/usb/media/ov511.c: Sensor is an OV6630AE
drivers/usb/media/ov511.c: Device at usb-0000:00:1d.1-1 registered to minor 0
usbcore: registered new driver ov511
drivers/usb/media/ov511.c: v1.64 for Linux 2.5 : ov511 USB Camera Driver

$ ls -l /dev/video0
crw-rw---- 1 root video 81, 0 2005-07-08 19:56 /dev/video0

$ cat /dev/video0
cat: /dev/video0: Function not implemented

Gnomemeeting, camorama, etc. all fail to detect the camera. The camera's light
does come on and the device appears to be initialized.

In reading the driver's FAQ on
http://public.planetmirror.com/pub/ov511/faq.html, I noticed a number of
solutions offered:

1. OV518 based cameras need to modprobe ov518_decomp. This module does not
appear to exist on my system and is not present in the output of lsmod. Dmesg
says "Compression required with OV518...enabling"... maybe the decompression
module has been statically linked into the ov511 module, or maybe it's trying to
modprobe ov518_decomp and failing silently? ov518_decomp is supposedly included
with driver 1.54 and later. The available 2.x series ov511 driver does not
require ov518_decomp.

2. "Function not implemented" errors mean that ov518_decomp is not loaded.

So it appears we have two options to fix this particular problem, anyway (not
sure about the problems with other architectures)... either get ov518_decomp to
exist and get loaded when needed, or get Ubuntu to ship with the 2.x driver.

Hope this helps. The camera is supported by linux, it's just a packaging issue
by the look of it. If you can't wait for it to be fixed, try the 2.x driver - it
works great.

Revision history for this message
Gabriel Bauman (gabrielbauman) wrote :

I switched to Breezy recently and ov511 support is *STILL* broken, for a camera
that works flawlessly on any other distro I've used.

Here's the dmesg from a startup with the camera (A Creative "Webcam Go", model
PD0040) connected:

[4294722.255000] drivers/usb/media/ov511.c: USB OV518 video device found
[4294722.257000] drivers/usb/media/ov511.c: Device revision 9
[4294722.269000] drivers/usb/media/ov511.c: Compression required with
OV518...enabling
[4294723.617000] drivers/usb/media/ov511.c: Sensor is an OV6630AE
[4294723.821000] drivers/usb/media/ov511.c: Device at usb-0000:00:1d.0-1
registered to minor 0
[4294723.821000] usbcore: registered new driver ov511
[4294723.821000] drivers/usb/media/ov511.c: v1.64 for Linux 2.5 : ov511 USB
Camera Driver

All looks good. Note the line "Compression required with OV518...enabling" -
this is exactly what should happen.

Now, in a terminal, I type:

 $ cat /dev/video0

...and receive the following error, same as on Hoary:

 cat: /dev/video0: Function not implemented

If I check dmesg immediately after running `cat`, the following line has been added:

[4311806.230000] drivers/usb/media/ov511.c: No decompressor available

So despite what the initial dmesg output says, the module is getting confused
somehow. The ov518_decomp module, which is present in the ov511-source package,
should handle decompression of the jpeg stream. I can't verify that it works
though since make-kpkg does not seem to work properly on Breezy either (gah!).

I also found a forum post in which a user has the same problem, and solves it by
installing the 2.2x series module:
http://www.linuxquestions.org/questions/history/334689 .

Hope this helps - this bug has been stale for months, and I miss my webcam.

Revision history for this message
Ben Collins (ben-collins) wrote :

Camera should work if you disable compression (modprobe ov511 compress=0).

The ov511_decomp isn't included in the kernel.

Revision history for this message
Ben Collins (ben-collins) wrote :

This bug has been flagged because it is old and possibly inactive. It may or may
not be fixed in the latest release (Breezy Badger 5.10). It is being marked as
"NEEDSINFO". In two weeks time, if the bug is not updated back to "NEW" and
validated against Breezy, it will be closed.

This is needed in order to help manage the current bug list for the kernel. We
would like to fix all bugs, but need users to test and help with debugging.

If this change was in error for this bug, please respond and make the
appropriate change (or email <email address hidden> if you cannot make the
change).

Thanks for your help.

Revision history for this message
Ben Collins (ben-collins) wrote :

The issue is that we are using the stock ov511 driver in the kernel (1.64). I've
downloaded, and have included the 1.65 driver, which also contains ov511_decomp
and ov518_decomp.

Revision history for this message
Ben Collins (ben-collins) wrote :

Fixed in 2.6.15-8.10

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.