Aiptek webcam (gspca) not working under OpenSuse 11.4

I just upgraded OpenSuse 11.2 to 11.3, and then after rebooting from 11.3 to 11.4.

My Aiptek Mini PenCam 1.3 was recognised under 11.2 (64 bits) without any problem. Now, under 11.4 no video device is created under /dev, and therefore it cannot be used e.g. by skype.

This is the result of dmesg after unpluging and re-pluging the webcam:

942.800070] usb 2-1: USB disconnect, address 3
949.540020] usb 2-1: new full speed USB device using uhci_hcd and address 4
949.706938] usb 2-1: New USB device found, idVendor=04fc, idProduct=504a
949.706943] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
949.710002] gspca: probing 04fc:504a
951.326595] gspca: video0 created
951.723873] hdj_probe() unsupported device, idVendor4fc, idProduct:504a
951.723893] usbcore: registered new interface driver hdj_mod
952.123738] gspca: video0 disconnect
952.123813] gspca: video0 released

As you can see, /dev/video0 is actually created but then immediately released.

This is lsmod | grep gspca:

gspca_sunplus 14745 0
gspca_main 28782 1 gspca_sunplus
videodev 81032 1 gspca_main
usbcore 210466 6 gspca_sunplus,gspca_main,hdj_mod,uhci_hcd,ehci_hcd

uname -a:
Linux pc 2.6.37.6-0.5-default #1 SMP 2011-04-25 21:48:33 +0200 x86_64 x86_64 x86_64 GNU/Linux

lsusb -v -s 002:007

==============================================
Bus 002 Device 007: ID 04fc:504a Sunplus Technology Co., Ltd Aiptek Mini PenCam 1.3
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x04fc Sunplus Technology Co., Ltd
idProduct 0x504a Aiptek Mini PenCam 1.3
bcdDevice 1.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 167
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0080 1x 128 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0180 1x 384 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 4
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0280 1x 640 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 5
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0300 1x 768 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 6
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0380 1x 896 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 7
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x03ff 1x 1023 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 1
Device Status: 0x0000
(Bus Powered)

Good news is that I could find here kind of a workaround, but don´t know why or how it works. In my case, killing the following process before plugging in the webcam works:

/usr/lib/gvfs/gvfs-gphoto2-volume-monitor

The result of dmesg is now:

4032.244020] usb 2-1: new full speed USB device using uhci_hcd and address 7
4032.410965] usb 2-1: New USB device found, idVendor=04fc, idProduct=504a
4032.410969] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
4032.414040] hdj_probe() unsupported device, idVendor4fc, idProduct:504a
4032.414052] gspca: probing 04fc:504a
4033.844795] gspca: video0 created
4033.844861] hdj_probe() unsupported device, idVendor4fc, idProduct:504a

I can use the cam with skype w/o problems, and no need to preload any v4l1compat libraries anymore :slight_smile:

Has anyone an idea how to solve the problem? Is that a bug in gspca module? and what has gvfs-gphoto2-volume-monitor to do with gspca?

I can provide more information, if needed.

Thanks for your time and help!

I would say its more likely to be a gnome-volume-manager issue (ie Gnome specific), rather than a problem the gspca driver. Somehow, its grabbing the device (confusing it with a storage device perhaps). Anyway, I suggest it might be useful to file a bug report with Novell

https://bugzilla.novell.com/index.cgi

Maybe you could also try checking its behaviour with the KDE4 desktop (although I’d understand if you wanted to stay with your preferred DE). :slight_smile: