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
@@ -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)