On Wednesday 23 April 2008, Johannes Weißl wrote: > Hello Laurent, > > On Wed, Apr 23, 2008 at 04:18:37PM +0200, Laurent Pinchart wrote: > > That's very strange. Are you sure you're using svn203 and not a driver > > installed by your distribution ? Could you please post more of the kernel > > log ? I need all messages related to the UVC driver, including messages > > printed when the driver is loaded and messages related to the first > > plug/unplug of the camera. > > Thanks for your fast reply. I'm pretty sure: > > # modinfo uvcvideo > filename: /lib/modules/2.6.24.4/usb/media/uvcvideo.ko > version: SVN r203 > [...] > > Messages when connecting the webcam: > > usb 4-3: new high speed USB device using ehci_hcd and address 2 > usb 4-3: configuration #1 chosen from 1 choice > Linux video capture interface: v2.00 > uvcvideo: Found UVC 1.00 device Live! Cam Optia (041e:4057) > videodev: "" has no release callback. Please fix your driver for proper > sysfs support, see http://lwn.net/Articles/36850/ input: Live! Cam Optia as > /class/input/input8
This is definitely not normal. The above message is printed by videodev when a driver registers a device without setting a release callback. It looks like something gets corrupted somewhere, as the message should also print the device's name insted of "". Could you please set the trace parameter to 15 when loading the module and try again to see if the driver prints additional information that could help us diagnose the problem ? > usbcore: registered new interface driver uvcvideo > USB Video Class driver (SVN r203) > > first time "luvcview -d /dev/video0 -f jpg -i 25 -s 640x480": > > uvcvideo: device Live! Cam Optia requested null bandwidth, defaulting to > lowest. > > Replugging: > > usb 4-3: USB disconnect, address 2 > usb 4-3: new high speed USB device using ehci_hcd and address 3 > usb 4-3: configuration #1 chosen from 1 choice > uvcvideo: Found UVC 1.00 device Live! Cam Optia (041e:4057) > videodev: "" has no release callback. Please fix your driver for proper > sysfs support, see http://lwn.net/Articles/36850/ input: Live! Cam Optia as > /class/input/input9 > > second time "luvcview -d /dev/video0 -f jpg -i 25 -s 640x480": > > BUG: unable to handle kernel NULL pointer dereference at virtual address > 00000030 printing eip: f9e0e0a5 *pde = 00000000 > Oops: 0000 [#1] PREEMPT > [...] > > Pid: 4366, comm: luvcview Not tainted (2.6.24.4 #1) > [...] > > > I just found out something that might help: > > After replugging, a second device /dev/video1 is created (/dev/video0 > still exists). Reading from /dev/video0 causes the Oops. If I unload all > uvc-related drivers (uvcvideo, v4l1_compat, ...), and manually remove > all /dev/video* files, I can reconnect the webcam safely. I'm not too surprised that /dev/video0 doesn't disappear as videodev complained about no release callback. I really doubt the problem comes from the UVC driver only. Could you add a few printk's in video_register_device to see what happens there ? I would expect the structure pointed by the vfd parameter to be modified at some point. Printing the release and name fields at various points in the function might give us some clues. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
