I have Creative WebCam Go mini. Product number PD00070.
Quite usefull one.
Recently I have installed Debian Linux (sarge kernel 2.6.8) and I wanted my webcam to work.
I have found that the camera has inside chip STV0680B.
I have managed to get the camera working with driver from the kernel stv680, made by Kevin Sisson , thanks Kevin. So first I have changed in stv680.h (/usr/src/linux/drivers/usb/media/stv680.h) just Vendor ID and Product ID. I have builded the module and installed it.
And viola, the camera was recognized. So I have added some additional code to make driver recognize both cameras, Pencam and Creative. So here is the patch. It works with my camera. //---------------------------------------------------------- --- stv680.h.orig.2.6.8 2004-09-26 20:311:23.000000000 +0300 +++ stv680.h 2004-09-26 20:50:40.000000000 +0300 @@ -39,14 +39,20 @@ /* number of decoding errors before kicking the camera */ #define STV680_MAX_ERRORS 100 + #define USB_PENCAM_VENDOR_ID 0x0553 #define USB_PENCAM_PRODUCT_ID 0x0202 + +#define USB_CREATIVEGOMINI_VENDOR_ID 0x041e +#define USB_CREATIVEGOMINI_PRODUCT_ID 0x4007 + #define PENCAM_TIMEOUT 1000 /* fmt 4 */ #define STV_VIDEO_PALETTE VIDEO_PALETTE_RGB24 static struct usb_device_id device_table[] = { {USB_DEVICE (USB_PENCAM_VENDOR_ID, USB_PENCAM_PRODUCT_ID)}, + {USB_DEVICE (USB_CREATIVEGOMINI_VENDOR_ID, USB_CREATIVEGOMINI_PRODUCT_ID)}, {} }; MODULE_DEVICE_TABLE (usb, device_table); //---------------------------------------------------------- --- stv680.c.orig.2.6.8 2004-09-26 20:344:00.000000000 +0300 +++ stv680.c 2004-09-26 20:42:34.000000000 +0300 @@ -1,4 +1,7 @@ /* + * Creative WebCam Go Mini Driver, modified by Kiril Jovchev + * (jovchev@gmail.com) + * * STV0680 USB Camera Driver, by Kevin Sisson (kjsisson@bellsouth.net) * * Thanks to STMicroelectronics for information on the usb commands, and @@ -56,6 +59,13 @@ * to set to a non-supported size. This allowed * gnomemeeting to work. * Fixed proc entry removal bug. + * + * ver 0.26 Sep, 2004 (kjv) + * Added support for Creative WebCam Go mini. + * Camera is based on same chip. + * + * + * */ #include <linux/config.h> @@ -1395,9 +1405,12 @@ if ((dev->descriptor.idVendor == USB_PENCAM_VENDOR_ID) && (dev->descriptor.idProduct == USB_PENCAM_PRODUCT_ID)) { camera_name = "STV0680"; PDEBUG (0, "STV(i): STV0680 camera found."); + } else if ((dev->descriptor.idVendor == USB_CREATIVEGOMINI_VENDOR_ID) && (dev->descriptor.idProduct == USB_CREATIVEGOMINI_PRODUCT_ID)) { + camera_name = "Creative WebCam Go Mini"; + PDEBUG (0, "STV(i): Creative WebCam Go Mini found."); } else { - PDEBUG (0, "STV(e): Venddor/Product ID do not match STV0680 values."); - PDEBUG (0, "STV(e): Checck that the STV0680 camera is connected to the computer."); + PDEBUG (0, "STV(e): Vendor/Product ID do not match STV0680 or Creative WebCam Go Mini values."); + PDEBUG (0, "STV(e): Check that the STV0680 or Creative WebCam Go Mini camera is connected to the computer."); retval = -ENODEV; goto error; } //---------------------------------------------------------- For comments and reports Kiril Jovchev (jovchev gmail.com) 1