Spca5xx

Differences between revisions 12 and 14 (spanning 2 versions)
Revision 12 as of 2005-12-18 01:53:29
Size: 17648
Editor: gw
Comment: removed double entry about kernel-headers in section 3
Revision 14 as of 2006-04-26 22:15:18
Size: 16765
Editor: p54B3B940
Comment: Cleaned up and updated for Dapper
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
= Installing spca5xx Mini-Howto =
Line 8: Line 6:
The spca5xx driver is in the ubuntu kernel 2.6.9-12 (type <code>uname -a</code> in a terminal to see your kernel version number). However it does not work (Oct. 22nd - ubuntu bugzilla: [http://bugzilla.ubuntu.com/show_bug.cgi?id=15809 15809] [http://bugzilla.ubuntu.com/show_bug.cgi?id=14566 14566] [https://bugzilla.ubuntu.com/show_bug.cgi?id=16727 16727]).

You can however compile it yourselves using the following steps:

== Step 1: Get a compiled Kernel ==

See KernelBuildpackageHowto

'''Note''': You might not need to install the kernel, but you need to compile it so the spca5xx module can be compiled.
If your currently installed kernel has been compiled with the same version of gcc as you are using now, you won't need to install your kernel package. Best is to not install it now and try ''insmod spca5xx.o'' after the last step. If you get some error about the module being invalid, try installing the kernel package.


== Step 2: Get spca5xx sources ==

Download the spca5xx driver from http://mxhaard.free.fr/download.html
Unpack it into any directory:
The spca5xx driver is included in the Ubuntu kernel and works out of the box in Dapper Drake (6.06). In Breezy Badger (5.10) the included driver is unfortunately buggy and will freeze your system, once the webcam is accessed. That's why you have to replace it by a self-compiled one (see below).

= Dapper Drake (6.06) =
You don't have to do anything, just go ahead and plugin your webcam. Then you can use any application (e.g. gqcam, kopete, ...) to access the webcam. If it does not work, see the Troubleshooting section below.

= Breezy Badger (5.10) =

If you want to replace the spca5xx driver delivered with Ubuntu Breezy Badger, this text shows you how. A compilation of the kernel is not necessary.

/!\ The spca5xx module delivered with Ubuntu Breezy is buggy and needs to be replaced, if you want to use it. This bug manifests itself by crashing the system when the camera is activated.

This howto is partially based on information found in arnieboy's posting: [http://www.ubuntuforums.org/showthread.php?t=70657&page=3]

== Step 1: Get the spca5xx source code ==

First download the current spca5xx source from Michel Xhaard's homepage and store it in your home directory. At the time of writing 20051212 is the latest version.
Line 25: Line 24:
tar -zxvf spca5xx-<version>.tar.gz
}}}

== Step 3: Preparing to compile spca5xx ==

Link the kernel source directory from first step into the /lib/modules/ directory for that kernel (replace <arch> with your selected architecture, e.g. 386, 686 or k7):

{{{
ln -s /usr/src/linux-source-`uname -r`/debian/build/build-<arch> /lib/modules/`uname -r`/build
}}}

== Step 4: Build and install spca5xx ==

{{{
cd spca5xx-<version>; make;
}}}

Now try if the module can be loaded:
{{{
insmod spca5xx.ko
}}}

If you see no errors, your camera should work. You can try to launch xawtv for example.
To make the module load at startup, use
{{{
make install
modprobe spca5xx
}}}

dmesg could give you something like
cd ~
wget http://mxhaard.free.fr/spca50x/Download/spca5xx-20051212.tar.gz
}}}

But check out his site for a newer version at [http://mxhaard.free.fr/download.html] [[BR]]
Change any occurance of ''spca5xx-20051212'' in this how-to to the version you have downloaded.

== Step 2: Become root ==

For administrative task Ubuntu uses the '''sudo''' command. This will not work here. (We have to change an environment variable (see below). If we use sudo this change will be discarded when the execution of the sudo commands ends, i.e. immediately.)

So, we use this method: [[BR]]
Open a terminal window and enter:

{{{sudo -s
}}}

When prompted for your password, enter your user password.

The prompt should change to:
{{{root@yourmachine:
}}}

== Step 3: Download the necessary packages ==
In order to compile and integrate the drivers, the following packages are needed from the Ubuntu repositories:

 1. {{{linux-headers-`uname -r`}}}
 1. {{{linux-restricted-modules-`uname -r`}}}
 1. {{{build-essential}}}
 1. {{{gcc-3.4}}}

'''linux-...''' - The construct {{{`uname -r`}}} will evaluate to the version of the running kernel, e.g. 2.6.12.10-k7 (may vary on your system). The "linux" packages will download the headers of your kernel and the restricted modules from the repositories.

'''build-essential''' - contains utilities for compiling source code.

'''gcc-3.4''' - The GNU C compiler. By default Breezy installs gcc-4.0 on your system. But the current kernel is compiled with gcc-3.4. Kernel modules MUST be compiled with the same compiler version as the kernel itself, so we need the older version. [[BR]]
/!\ This information is valid for Breezy and may change in later versions of Ubuntu.

The command to install these packages is:

{{{apt-get install linux-headers-`uname -r` linux-restricted-modules-`uname -r` build-essential gcc-3.4
}}}

== Step 4: Compiling the spca5xx source code ==

The linux stuff is installed under '''/usr/src'''. So I suggest, you go there:

{{{cd /usr/src
}}}

and move the spca5xx source from your home directory to this location:
{{{mv ~/spca5xx-20051212.tar.gz .
}}}

Unpack it
{{{tar xfvz spca5xx-20051212.tar.gz
}}}

Enter the spca5xx directory
{{{cd spca5xx-20051212
}}}

=== Workaround to make the Makefile use gcc-3.4 ===
The Makefile which controls the compiling process for this driver has to be told to use gcc-3.4 instead of the default version 4.0:

{{{export CC=gcc-3.4}}}

This sets the environment variable CC, which is used in the spac5xx Makefile to select the compiler.

[[Anchor(setlink)]]
=== Setting a link back to the source code (headers) ===

Furthermore the spca5xx Makefile expect a pointer to the kernel source at a specific location. Let's create it:
{{{ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build
}}}
(Note: If you compile a kernel, this link is usually there. But as we use a pre-compiled kernel, we have to cheat.)

=== Compiling the spca5xx source code ===
{{{make
}}}

There should be no errors.

=== Removing the old driver from memory ===
{{{modprobe -r spca5xx
}}}

=== Removing the old driver from the hard drive ===
{{{rm -rf /lib/modules/`uname -r`/kernel/drivers/usb/media/spca5xx*
}}}

=== Install the new driver ===
{{{make install
}}}


=== Load the new driver ===
{{{modprobe spca5xx
}}}

There should be no errors and `dmesg` could give you something like
Line 62: Line 132:
== Problems ==

If the kernel was compiled using an other version of gcc, you will get an error message complaining
{{{

/!\ Remember: This process (at least the last 4 steps) has to be repeated if a new kernel version has been installed.


= Links =
A HowTo in the blog entry [http://dvlinux.blogspot.com/2005_03_13_dvlinux_archive.html#111101610927602822]

'''Easycam''' is a script automating the above mentioned procedure. It's only running in a graphical environment. See. ["Webcam"]

= Troubleshooting =

  * If the kernel was compiled using a gcc version different from what was used for compiling the spca5xx module, you will get an error message complaining {{{
Line 67: Line 145:
}}}
Try installing the kernel you built in Step 1. (And this is the one place even linux needs a reboot)

If this does not help or you get other errors, get the last log entries typing
{{{
dmesg
}}}

To use your spca5xx-supported webcam with GnomeMeeting will require libpt-plugins-v4l. This can be installed by running:

{{{
}}} You will have to recompile with the correct gcc version.

  * Check whether the webcam was recognized by your system: The device node `/dev/video` and/or `/dev/video0` should exist.

  * Check the last lines of `dmesg` for information about a possible failure

  * To use your spca5xx-supported webcam with GnomeMeeting will require libpt-plugins-v4l. This can be installed by running: {{{
Line 79: Line 153:
}}}

Once installed set up GnomeMeeting with v4l (not v4l2). The video controls (brightness, contrast etc. in GnomeMeeting) do not seem to work.




The above HowTo is based on the blog entry [http://dvlinux.blogspot.com/2005_03_13_dvlinux_archive.html#111101610927602822]


spca5xx supports the following cameras (as of version spca5xx-20050419)
{{{
  {USB_DEVICE
(0x0733, 0x0430)},  /* Intel PC Camera Pro */
  {USB_DEVICE (0x0733, 0x0401)},        /* Intel Create and Share */
  {USB_DEVICE (0x99FA, 0x8988)},        /* Grandtec V.cap */
  {USB_DEVICE (0x0733, 0x0402)},        /* ViewQuest M318B */
  {USB_DEVICE (0x0733, 0x0110)},        /* ViewQuest VQ110 */
  {USB_DEVICE (0x040A, 0x0002)},        /* Kodak DVC-325 */
  {USB_DEVICE (0x055f, 0xc420)},        /* Mustek gSmart Mini 2 */
  {USB_DEVICE (0x055f, 0xc520)},        /* Mustek gSmart Mini 3 */
  {USB_DEVICE (0x041E, 0x400A)},        /* Creative PC-CAM 300 */
  {USB_DEVICE (0x084D, 0x0003)},        /* D-Link DSC-350 */
  {USB_DEVICE (0x041E, 0x400B)}, /* Creative PC-CAM 600 */
  {USB_DEVICE (0x8086, 0x0630)},        /* Intel Pocket PC Camera */
  {USB_DEVICE (0x8086, 0x0110)},        /* Intel Easy PC Camera */
  {USB_DEVICE (0x0506, 0x00df)},        /* 3Com HomeConnect Lite */
  {USB_DEVICE (0x040a, 0x0300)}, /* Kodak EZ200 */
  {USB_DEVICE (0x04fc, 0x504b)},        /* Maxell MaxPocket LE 1.3 */
  {USB_DEVICE (0x08ca, 0x2008)},        /* Aiptek Mini PenCam 2 M */
  {USB_DEVICE (0x08ca, 0x0104)},        /* Aiptek PocketDVII 1.3 */
  {USB_DEVICE (0x08ca, 0x2018)},        /* Aiptek Pencam SD 2M */
  {USB_DEVICE (0x04fc, 0x504a)},        /* Aiptek Mini PenCam 1.3 */
  {USB_DEVICE (0x055f, 0xc530)},        /* Mustek Gsmart LCD 3 */
  {USB_DEVICE (0x055f, 0xc650)},        /* Mustek MDC5500Z */
  {USB_DEVICE (0x052b, 0x1513)},        /* Megapix V4 */
  {USB_DEVICE (0x08ca, 0x0103)},        /* Aiptek PocketDV */
  {USB_DEVICE (0x0af9, 0x0010)},        /* Hama USB Sightcam 100 */
  {USB_DEVICE (0x1776, 0x501c)},        /* Arowana 300K CMOS Camera */
  {USB_DEVICE (0x08ca, 0x0106)},        /* Aiptek Pocket DV3100+ */
  {USB_DEVICE (0x08ca, 0x2010)},        /* Aiptek PocketCam 3M */
  {USB_DEVICE (0x0458, 0x7004)},        /* Genius VideoCAM Express V2 */
  {USB_DEVICE (0x04fc, 0x0561)},        /* Flexcam 100 */
  {USB_DEVICE (0x055f, 0xc430)},        /* Mustek Gsmart LCD 2 */
  {USB_DEVICE (0x04fc, 0xffff)},        /* Pure DigitalDakota */
  {USB_DEVICE (0xabcd, 0xcdee)},        /* Petcam */
  {USB_DEVICE (0x04a5, 0x3008)},        /* Benq DC 1500 */
  {USB_DEVICE (0x046d, 0x0960)},        /* Logitech Inc. ClickSmart 420 */
  {USB_DEVICE (0x046d, 0x0901)},        /* Logitech Inc. ClickSmart 510 */
  {USB_DEVICE (0x04a5, 0x3003)}, /* Benq DC 1300 */
  {USB_DEVICE (0x0af9, 0x0011)},        /* Hama USB Sightcam 100 */
  {USB_DEVICE (0x055f, 0xc440)},        /* Mustek DV 3000 */
  {USB_DEVICE (0x041e, 0x4013)}, /* Creative Pccam750 */
  {USB_DEVICE (0x060b, 0xa001)},        /* Maxell Compact Pc PM3 */
  {USB_DEVICE (0x04a5, 0x300a)}, /* Benq DC3410 */
  {USB_DEVICE (0x04a5, 0x300c)}, /* Benq DC1016 */
  {USB_DEVICE (0x0461, 0x0815)},        /* Micro Innovation IC200 */
  {USB_DEVICE (0x046d, 0x0890)},        /* Logitech QuickCam traveler */
  {USB_DEVICE (0x10fd, 0x7e50)},        /* FlyCam Usb 100 */
  {USB_DEVICE (0x06e1, 0xa190)},        /* ADS Instant VCD */
  {USB_DEVICE (0x055f, 0xc220)},        /* Gsmart Mini */
  {USB_DEVICE (0x0733, 0x2211)},        /* Jenoptik jdc 21 LCD */
  {USB_DEVICE (0x046d, 0x0900)},        /* Logitech Inc. ClickSmart 310 */
  {USB_DEVICE (0x055f, 0xc360)},        /* Mustek DV4000 Mpeg4 */
 {USB_DEVICE (0x08ca, 0x2024)},        /* Aiptek DV3500 Mpeg4 */
  {USB_DEVICE (0x046d, 0x0905)},        /* Logitech ClickSmart820 */
  {USB_DEVICE (0x05da, 0x1018)},        /* Digital Dream Enigma 1.3 */
  {USB_DEVICE (0x0c45, 0x6025)},        /* Xcam Shanga */
  {USB_DEVICE (0x0733, 0x1311)},        /* Digital Dream Epsilon 1.3 */
  {USB_DEVICE (0x041e, 0x401d)},        /* Creative Webcam NX ULTRA */
  {USB_DEVICE (0x08ca, 0x2016)},        /* Aiptek PocketCam 2 Mega */
  {USB_DEVICE (0x0734, 0x043b)},        /* 3DeMon USB Capture aka */
  {USB_DEVICE (0x041E, 0x4018)},        /* Creative Webcam Vista (PD1100) */
  {USB_DEVICE (0x0546, 0x3273)},        /* Polaroid PDC2030 */
  {USB_DEVICE (0x041e, 0x401f)},        /* Creative Webcam Notebook PD1171 */
  {USB_DEVICE (0x041e, 0x4017)},        /* Creative Webcam Mobile PD1090 */
  {USB_DEVICE (0x046d, 0x08a2)},        /* Labtec Webcam Pro */
  {USB_DEVICE (0x055f, 0xd003)},        /* Mustek WCam300A */
  {USB_DEVICE (0x0458, 0x7007)},        /* Genius VideoCam V2 */
  {USB_DEVICE (0x0458, 0x700c)},        /* Genius VideoCam V3 */
  {USB_DEVICE (0x0458, 0x700f)},        /* Genius VideoCam Web V2 */
  {USB_DEVICE (0x041e, 0x401e)}, /* Creative Nx Pro */
  {USB_DEVICE (0x0c45, 0x6029)},        /* spcaCam@150 */
  {USB_DEVICE (0x0c45, 0x6009)},        /* spcaCam@120 */
  {USB_DEVICE (0x0c45, 0x600d)},        /* spcaCam@120 */
  {USB_DEVICE (0x04fc, 0x5330)},        /* Digitrex 2110 */
  {USB_DEVICE (0x055f, 0xc540)},        /* Gsmart D30 */
  {USB_DEVICE (0x0ac8, 0x301b)},        /* Asam Vimicro */
  {USB_DEVICE (0x041e, 0x403a)}, /* Creative Nx Pro 2 */
  {USB_DEVICE (0x055f, 0xc211)},        /* Kowa Bs888e Microcamera */
  {USB_DEVICE (0x0ac8, 0x0302)},        /* Z-star Vimicro zc0302 */
  {USB_DEVICE (0x0572, 0x0041)},        /* Creative Notebook cx11646 */
  {USB_DEVICE (0x08ca, 0x2022)},        /* Aiptek Slim 3200 */
  {USB_DEVICE (0x046d, 0x0921)},        /* Labtec Webcam */
  {USB_DEVICE (0x046d, 0x0920)},        /* QC Express */
  {USB_DEVICE (0x0923, 0x010f)},        /* ICM532 cams */
  {USB_DEVICE (0x055f, 0xc200)},        /* Mustek Gsmart 300 */
  {USB_DEVICE (0x0733, 0x2221)},        /* Mercury Digital Pro 3.1p */
  {USB_DEVICE (0x041e, 0x4036)},        /* Creative Live ! */
  {USB_DEVICE (0x055f, 0xc005)},        /* Mustek Wcam300A */
  {USB_DEVICE (0x041E, 0x403b)},        /* Creative Webcam Vista (VF0010) */
  {USB_DEVICE (0x0545, 0x8333)},        /* Veo Stingray */
  {USB_DEVICE (0x0545, 0x808b)},        /* Veo Stingray */
  {USB_DEVICE (0x10fd, 0x8050)},        /* Typhoon Webshot II USB 300k */
  {USB_DEVICE (0x0546, 0x3155)},        /* Polaroid PDC3070 */
  {USB_DEVICE (0x046d, 0x0928)},        /* Logitech QC Express Etch2 */
  {USB_DEVICE (0x046d, 0x092a)},        /* Logitech QC for Notebook */
  {USB_DEVICE (0x046d, 0x08a0)},        /* Logitech QC IM */
  {USB_DEVICE (0x0461, 0x0a00)},        /* MicroInnovation WebCam320 */
  {USB_DEVICE (0x08ca, 0x2028)},        /* Aiptek PocketCam4M */
  {USB_DEVICE (0x08ca, 0x2042)},        /* Aiptek PocketDV5100 */
  {USB_DEVICE (0x08ca, 0x2060)},        /* Aiptek PocketDV5300 */
  {USB_DEVICE (0x04fc, 0x5360)},        /* Sunplus Generic */
  {USB_DEVICE (0x046d, 0x08a1)},        /* Logitech QC IM 0x08A1 +sound*/
  {USB_DEVICE
(0x046d, 0x08a3)},        /* Logitech QC Chat */
  {USB_DEVICE (0x046d, 0x08b9)},        /* Logitech QC IM ??? */
  {USB_DEVICE (0x046d, 0x0929)},        /* Labtec Webcam Elch2*/
  {USB_DEVICE
(0x10fd, 0x0128)},        /* Typhoon Webshot II USB 300k 0x0128 */
  {USB_DEVICE (0x102c, 0x6151)},        /* Qcam Sangha CIF */
  {USB_DEVICE (0x102c, 0x6251)},        /* Qcam xxxxxx VGA */
  {USB_DEVICE (0x04fc, 0x7333)},        /* PalmPixDC85*/
  {USB_DEVICE
(0x06be, 0x0800)},        /* Optimedia*/
  {USB_DEVICE
(0x2899, 0x012c)},        /* Toptro Industrial*/
  {USB_DEVICE
(0x06bd, 0x0404)},        /* Agfa CL20*/
  {USB_DEVICE (0x0000, 0x0000)},
/* MystFromOri Unknow Camera */
}}}

(Copied here to be found by searches for camera names...)

From ChuckShort Mon May 30 14:15:10 +0100 2005
From: Chuck Short
Date: Mon, 30 May 2005 14:15:10 +0100
Subject: Spca5xx
Message-ID: <20050530141510+0100@https://www.ubuntulinux.org>

Spca5xx can now be
found in breezy's 2.6.12.
(sudo modprobe
spca5xx did work, but the cam is still not available. gqcam tells me {{{/dev/video: No such device}}}, maybe someone has achieved to make it work under breezy)
}}} Once installed set up GnomeMeeting with v4l (not v4l2). The video controls (brightness, contrast etc. in GnomeMeeting) do not seem to work.

  * spca5xx supports the following cameras (as of version spca5xx-20060402) {{{
    Vendor ID Device ID Support Summary
               --------- --------- ---------------
    {USB_DEVICE
(0x0733, 0x0430)}, /* Intel PC Camera Pro */
    {USB_DEVICE(0x0733, 0x0401)}, /* Intel Create and Share */
    {USB_DEVICE(0x99FA, 0x8988)}, /* Grandtec V.cap */
    {USB_DEVICE(0x0733, 0x0402)}, /* ViewQuest M318B */
    {USB_DEVICE(0x0733, 0x0110)}, /* ViewQuest VQ110 */
    {USB_DEVICE(0x040A, 0x0002)}, /* Kodak DVC-325 */
    {USB_DEVICE(0x055f, 0xc420)}, /* Mustek gSmart Mini 2 */
    {USB_DEVICE(0x055f, 0xc520)}, /* Mustek gSmart Mini 3 */
    {USB_DEVICE(0x041E, 0x400A)}, /* Creative PC-CAM 300 */
    {USB_DEVICE(0x084D, 0x0003)}, /* D-Link DSC-350 */
    {USB_DEVICE(0x041E, 0x400B)}, /* Creative PC-CAM 600 */
    {USB_DEVICE(0x8086, 0x0630)}, /* Intel Pocket PC Camera */
    {USB_DEVICE(0x8086, 0x0110)}, /* Intel Easy PC Camera */
    {USB_DEVICE(0x0506, 0x00df)}, /* 3Com HomeConnect Lite */
    {USB_DEVICE(0x040a, 0x0300)}, /* Kodak EZ200 */
    {USB_DEVICE(0x04fc, 0x504b)}, /* Maxell MaxPocket LE 1.3 */
    {USB_DEVICE(0x08ca, 0x2008)}, /* Aiptek Mini PenCam 2 M */
    {USB_DEVICE(0x08ca, 0x0104)}, /* Aiptek PocketDVII 1.3 */
    {USB_DEVICE(0x08ca, 0x2018)}, /* Aiptek Pencam SD 2M */
    {USB_DEVICE(0x04fc, 0x504a)}, /* Aiptek Mini PenCam 1.3 */
    {USB_DEVICE(0x055f, 0xc530)}, /* Mustek Gsmart LCD 3 */
    {USB_DEVICE(0x055f, 0xc650)}, /* Mustek MDC5500Z */
    {USB_DEVICE(0x052b, 0x1513)}, /* Megapix V4 */
    {USB_DEVICE(0x08ca, 0x0103)}, /* Aiptek PocketDV */
    {USB_DEVICE(0x0af9, 0x0010)}, /* Hama USB Sightcam 100 */
    {USB_DEVICE(0x1776, 0x501c)}, /* Arowana 300K CMOS Camera */
    {USB_DEVICE(0x08ca, 0x0106)}, /* Aiptek Pocket DV3100+ */
    {USB_DEVICE(0x08ca, 0x2010)}, /* Aiptek PocketCam 3M */
    {USB_DEVICE(0x0458, 0x7004)}, /* Genius VideoCAM Express V2 */
    {USB_DEVICE(0x04fc, 0x0561)}, /* Flexcam 100 */
    {USB_DEVICE(0x055f, 0xc430)}, /* Mustek Gsmart LCD 2 */
    {USB_DEVICE(0x04fc, 0xffff)}, /* Pure DigitalDakota */
    {USB_DEVICE(0xabcd, 0xcdee)}, /* Petcam */
    {USB_DEVICE(0x04a5, 0x3008)}, /* Benq DC 1500 */
    {USB_DEVICE(0x046d, 0x0960)}, /* Logitech Inc. ClickSmart 420 */
    {USB_DEVICE(0x046d, 0x0901)}, /* Logitech Inc. ClickSmart 510 */
    {USB_DEVICE(0x04a5, 0x3003)}, /* Benq DC 1300 */
    {USB_DEVICE(0x0af9, 0x0011)}, /* Hama USB Sightcam 100 */
    {USB_DEVICE(0x055f, 0xc440)}, /* Mustek DV 3000 */
    {USB_DEVICE(0x041e, 0x4013)}, /* Creative Pccam750 */
    {USB_DEVICE(0x060b, 0xa001)}, /* Maxell Compact Pc PM3 */
    {USB_DEVICE(0x04a5, 0x300a)}, /* Benq DC3410 */
    {USB_DEVICE(0x04a5, 0x300c)}, /* Benq DC1016 */
    {USB_DEVICE(0x0461, 0x0815)}, /* Micro Innovation IC200 */
    {USB_DEVICE(0x046d, 0x0890)}, /* Logitech QuickCam traveler */
    {USB_DEVICE(0x10fd, 0x7e50)}, /* FlyCam Usb 100 */
    {USB_DEVICE(0x06e1, 0xa190)}, /* ADS Instant VCD */
    {USB_DEVICE(0x055f, 0xc220)}, /* Gsmart Mini */
    {USB_DEVICE(0x0733, 0x2211)}, /* Jenoptik jdc 21 LCD */
    {USB_DEVICE(0x046d, 0x0900)}, /* Logitech Inc. ClickSmart 310 */
    {USB_DEVICE(0x055f, 0xc360)}, /* Mustek DV4000 Mpeg4 */
    {USB_DEVICE(0x08ca, 0x2024)}, /* Aiptek DV3500 Mpeg4 */
    {USB_DEVICE(0x046d, 0x0905)}, /* Logitech ClickSmart820 */
    {USB_DEVICE(0x05da, 0x1018)}, /* Digital Dream Enigma 1.3 */
    {USB_DEVICE(0x0c45, 0x6025)}, /* Xcam Shanga */
    {USB_DEVICE(0x0733, 0x1311)}, /* Digital Dream Epsilon 1.3 */
    {USB_DEVICE(0x041e, 0x401d)}, /* Creative Webcam NX ULTRA */
    {USB_DEVICE(0x08ca, 0x2016)}, /* Aiptek PocketCam 2 Mega */
    {USB_DEVICE(0x0734, 0x043b)}, /* 3DeMon USB Capture aka */
    {USB_DEVICE(0x041E, 0x4018)}, /* Creative Webcam Vista (PD1100) */
    {USB_DEVICE(0x0546, 0x3273)}, /* Polaroid PDC2030 */
    {USB_DEVICE(0x041e, 0x401f)}, /* Creative Webcam Notebook PD1171 */
    {USB_DEVICE(0x041e, 0x4017)}, /* Creative Webcam Mobile PD1090 */
    {USB_DEVICE(0x046d, 0x08a2)}, /* Labtec Webcam Pro */
    {USB_DEVICE(0x055f, 0xd003)}, /* Mustek WCam300A */
    {USB_DEVICE(0x0458, 0x7007)}, /* Genius VideoCam V2 */
    {USB_DEVICE(0x0458, 0x700c)}, /* Genius VideoCam V3 */
    {USB_DEVICE(0x0458, 0x700f)}, /* Genius VideoCam Web V2 */
    {USB_DEVICE(0x041e, 0x401e)}, /* Creative Nx Pro */
    {USB_DEVICE(0x0c45, 0x6029)}, /* spcaCam@150 */
    {USB_DEVICE(0x0c45, 0x6009)}, /* spcaCam@120 */
    {USB_DEVICE(0x0c45, 0x600d)}, /* spcaCam@120 */
    {USB_DEVICE(0x04fc, 0x5330)}, /* Digitrex 2110 */
    {USB_DEVICE(0x055f, 0xc540)}, /* Gsmart D30 */
    {USB_DEVICE(0x0ac8, 0x301b)}, /* Asam Vimicro */
    {USB_DEVICE(0x041e, 0x403a)}, /* Creative Nx Pro 2 */
    {USB_DEVICE(0x055f, 0xc211)}, /* Kowa Bs888e Microcamera */
    {USB_DEVICE(0x0ac8, 0x0302)}, /* Z-star Vimicro zc0302 */
    {USB_DEVICE(0x0572, 0x0041)}, /* Creative Notebook cx11646 */
    {USB_DEVICE(0x08ca, 0x2022)}, /* Aiptek Slim 3200 */
    {USB_DEVICE(0x046d, 0x0921)}, /* Labtec Webcam */
    {USB_DEVICE(0x046d, 0x0920)}, /* QC Express */
    {USB_DEVICE(0x0923, 0x010f)}, /* ICM532 cams */
    {USB_DEVICE(0x055f, 0xc200)}, /* Mustek Gsmart 300 */
    {USB_DEVICE(0x0733, 0x2221)}, /* Mercury Digital Pro 3.1p */
    {USB_DEVICE(0x041e, 0x4036)}, /* Creative Live ! */
    {USB_DEVICE(0x055f, 0xc005)}, /* Mustek Wcam300A */
    {USB_DEVICE(0x041E, 0x403b)}, /* Creative Webcam Vista (VF0010) */
    {USB_DEVICE(0x0545, 0x8333)}, /* Veo Stingray */
    {USB_DEVICE(0x0545, 0x808b)}, /* Veo Stingray */
    {USB_DEVICE(0x10fd, 0x8050)}, /* Typhoon Webshot II USB 300k */
    {USB_DEVICE(0x0546, 0x3155)}, /* Polaroid PDC3070 */
    {USB_DEVICE(0x046d, 0x0928)}, /* Logitech QC Express Etch2 */
    {USB_DEVICE(0x046d, 0x092a)}, /* Logitech QC for Notebook */
    {USB_DEVICE(0x046d, 0x08a0)}, /* Logitech QC IM */
    {USB_DEVICE(0x0461, 0x0a00)}, /* MicroInnovation WebCam320 */
    {USB_DEVICE(0x08ca, 0x2028)}, /* Aiptek PocketCam4M */
    {USB_DEVICE(0x08ca, 0x2042)}, /* Aiptek PocketDV5100 */
    {USB_DEVICE(0x08ca, 0x2060)}, /* Aiptek PocketDV5300 */
    {USB_DEVICE(0x04fc, 0x5360)}, /* Sunplus Generic */
    {USB_DEVICE(0x046d, 0x08a1)}, /* Logitech QC IM 0x08A1 +sound */
    {USB_DEVICE
(0x046d, 0x08a3)}, /* Logitech QC Chat */
    {USB_DEVICE(0x046d, 0x08b9)}, /* Logitech QC IM ??? */
    {USB_DEVICE(0x046d, 0x0929)}, /* Labtec Webcam Elch2 */
    {USB_DEVICE
(0x10fd, 0x0128)}, /* Typhoon Webshot II USB 300k 0x0128 */
    {USB_DEVICE(0x102c, 0x6151)}, /* Qcam Sangha CIF */
    {USB_DEVICE(0x102c, 0x6251)}, /* Qcam xxxxxx VGA */
    {USB_DEVICE(0x04fc, 0x7333)}, /* PalmPixDC85 */
    {USB_DEVICE
(0x06be, 0x0800)}, /* Optimedia */
    {USB_DEVICE
(0x2899, 0x012c)}, /* Toptro Industrial */
    {USB_DEVICE
(0x06bd, 0x0404)}, /* Agfa CL20 */
    {USB_DEVICE(0x046d, 0x092c)}, /* Logitech QC chat Elch2 */
    {USB_DEVICE(0x0c45, 0x607c)}, /* Sonix sn9c102p Hv7131R */
    {USB_DEVICE(0x0733, 0x3261)}, /* Concord 3045 spca536a */
    {USB_DEVICE(0x0733, 0x1314)}, /* Mercury 2.1MEG Deluxe Classic Cam */
    {USB_DEVICE(0x041e, 0x401c)}, /* Creative NX */
    {USB_DEVICE(0x041e, 0x4034)}, /* Creative Instant P0620 */
    {USB_DEVICE(0x041e, 0x4035)}, /* Creative Instant P0620D */
    {USB_DEVICE(0x046d, 0x08ae)}, /* Logitech QuickCam for Notebooks */
    {USB_DEVICE(0x055f, 0xd004)}, /* Mustek WCam300 AN */
    {USB_DEVICE(0x046d, 0x092b)}, /* Labtec Webcam Plus */
    {USB_DEVICE(0x0c45, 0x602e)}, /* Genius VideoCam Messenger */
    {USB_DEVICE(0x0c45, 0x602c)}, /* Generic Sonix OV7630 */
    {USB_DEVICE(0x093A, 0x050F)}, /* Mars-Semi Pc-Camera */
    {USB_DEVICE(0x0458, 0x7006)}, /* Genius Dsc 1.3 Smart */
    {USB_DEVICE(0x055f, 0xc630)}, /* Mustek MDC4000 */
    {USB_DEVICE(0x046d, 0x08ad)}, /* Logitech QCCommunicate STX */
    {USB_DEVICE(0x0c45, 0x602d)}, /* LIC-200 LG */
    {USB_DEVICE(0x0c45, 0x6005)}, /* Sweex Tas5110 */
    {USB_DEVICE(0x0c45, 0x613c)}, /* Sonix Pccam168 */
    {USB_DEVICE(0x0c45, 0x6130)}, /* Sonix Pccam */
    {USB_DEVICE(0x0c45, 0x60c0)}, /* Sangha Sn535 */
    {USB_DEVICE(0x0c45, 0x60fc)}, /* LG-LIC300 */
    {USB_DEVICE(0x0546, 0x3191)}, /* Polaroid Ion 80 */
    {USB_DEVICE(0x0ac8, 0x305b)}, /* Z-star Vimicro zc0305b */
    {USB_DEVICE(0x0c45, 0x6028)}, /* Sonix Btc Pc380 */
    {USB_DEVICE(0x046d, 0x08a9)}, /* Logitech Notebook Deluxe */
    {USB_DEVICE(0x046d, 0x08aa)}, /* Labtec Webcam Notebook */
    {USB_DEVICE(0x04f1, 0x1001)}, /* JVC GC A50 */
    {USB_DEVICE(0x0497, 0xc001)}, /* Smile International */
    {USB_DEVICE(0x041e, 0x4012)}, /* PC-Cam350 */
    {USB_DEVICE(0x0ac8, 0x303b)}, /* Vimicro 0x303b */
    {USB_DEVICE(0x093a, 0x2468)}, /* PAC207 */
    {USB_DEVICE(0x093a, 0x2471)}, /* PAC207 Genius VideoCam ge111 */
    {USB_DEVICE(0x093a, 0x2460)}, /* PAC207 Qtec Webcam 100 */
    {USB_DEVICE(0x0733, 0x3281)}, /* Cyberpix S550V */
    {USB_DEVICE(0x093a, 0x2470)}, /* Genius GF112 */
    {USB_DEVICE(0x046d, 0x08a6)}, /* Logitech QCim */
    {USB_DEVICE(0x08ca, 0x2020)}, /* Aiptek Slim 3000F */
    {USB_DEVICE(0x0698, 0x2003)}, /* CTX M730V built in */
    {USB_DEVICE(0x0c45, 0x6001)}, /* Genius VideoCAM NB */
    {USB_DEVICE(0x041E, 0x4028)}, /* Creative Webcam Vista Plus */
    {USB_DEVICE(0x0471, 0x0325)}, /* Philips SPC 200 NC */
    {USB_DEVICE(0x0471, 0x0328)}, /* Philips SPC 700 NC */
    {USB_DEVICE(0x0c45, 0x6040)}, /* Speed NVC 350K */
    {USB_DEVICE(0x055f, 0xc230)}, /* Mustek Digicam 330K */
    {USB_DEVICE(0x0c45, 0x6007)}, /* Sonix sn9c101 + Tas5110D */
    {USB_DEVICE(0x0471, 0x0327)}, /* Philips SPC 600 NC */
    {USB_DEVICE(0x0471, 0x0326)}, /* Philips SPC 300 NC */
    {USB_DEVICE(0x0c45, 0x6019)}, /* Generic Sonix OV7630 */
    {USB_DEVICE(0x0c45, 0x6024)}, /* Generic Sonix Tas5130c */
    {USB_DEVICE(0x0000, 0x0000)},
/* MystFromOri Unknow Camera */
}}} (Copied here to be found by searches for camera names; up-to-date on http://mxhaard.free.fr/spca5xx.html)
Line 218: Line 323:
= Installing spca5xx - alternative How-to =

If you want to replace the spca5xx driver delivered with Ubuntu, this text shows you how. A compilation of the kernel is not necessary.

/!\ The spca5xx module delivered with Ubuntu Breezy is buggy and needs to be replaced, if you want to use it. This bug manifests itself by crashing the system when the camera is activated.

This howto is partially based on information found in arnieboy's posting: [http://www.ubuntuforums.org/showthread.php?t=70657&page=3]

== Step 1: Get the spca5xx source code ==

First download the current spca5xx source from Michel Xhaard's homepage and store it in your home directory. At the time of writing 20051212 is the latest version.

{{{
cd ~
wget http://mxhaard.free.fr/spca50x/Download/spca5xx-20051212.tar.gz
}}}

But check out his site for a newer version at [http://mxhaard.free.fr/download.html] [[BR]]
Change any occurance of ''spca5xx-20051212'' in this how-to to the version you have downloaded.

== Step 2: Become root ==

For administrative task Ubuntu uses the '''sudo''' command. This will not work here. (We have to change an environment variable (see below). If we use sudo this change will be discarded when the execution of the sudo commands ends, i.e. immediately.)

So, we use this method: [[BR]]
Open a terminal window and enter:

{{{sudo -s
}}}

When prompted for your password, enter your user password.

The prompt should change to:
{{{root@yourmachine:
}}}

== Step 3: Download the necessary packages ==
In order to compile and integrate the drivers, the following packages are needed from the Ubuntu repositories:

 1. {{{linux-headers-`uname -r`}}}
 1. {{{linux-restricted-modules-`uname -r`}}}
 1. {{{build-essential}}}
 1. {{{gcc-3.4}}}

'''linux-...''' - The construct {{{`uname -r`}}} will evaluate to the version of the running kernel, e.g. 2.6.12.10-k7 (may vary on your system). The "linux" packages will download the headers of your kernel and the restricted modules from the repositories.

'''build-essential''' - contains utilities for compiling source code.

'''gcc-3.4''' - The GNU C compiler. By default Breezy installs gcc-4.0 on your system. But the current kernel is compiled with gcc-3.4. Kernel modules MUST be compiled with the same compiler version as the kernel itself, so we need the older version. [[BR]]
/!\ This information is valid for Breezy and may change in later versions of Ubuntu.

The command to install these packages is:

{{{apt-get install linux-headers-`uname -r` linux-restricted-modules-`uname -r` build-essential gcc-3.4
}}}

== Step 4: Compiling the spca5xx source code ==

The linux stuff is installed under '''/usr/src'''. So I suggest, you go there:

{{{cd /usr/src
}}}

and move the spca5xx source from your home directory to this location:
{{{mv ~/spca5xx-20051212.tar.gz .
}}}

Unpack it
{{{tar xfvz spca5xx-20051212.tar.gz
}}}

Enter the spca5xx directory
{{{cd spca5xx-20051212
}}}

=== Workaround to make the Makefile use gcc-3.4 ===
The Makefile which controls the compiling process for this driver has to be told to use gcc-3.4 instead of the default version 4.0:

{{{CC=gcc-3.4
export CC
}}}

This sets the environment variable CC, which is used in the spac5xx Makefile to select the compiler.

[[Anchor(setlink)]]
=== Setting a link back to the source code (headers) ===

Furthermore the spca5xx Makefile expect a pointer to the kernel source at a specific location. Let's create it:
{{{ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build
}}}
(Note: If you compile a kernel, this link is usually there. But as we use a pre-compiled kernel, we have to cheat.)

=== Compiling the spca5xx source code ===
{{{make
}}}

There should be no errors.

=== Removing the old driver from memory ===
{{{modprobe -r spca5xx
}}}

=== Removing the old driver from the hard drive ===
{{{rm -rf /lib/modules/`uname -r`/kernel/drivers/usb/media/spca5xx*
}}}

=== Install the new driver ===
{{{make install
}}}


=== Load the new driver ===
{{{modprobe spca5xx
}}}

There should be no errors.


/!\ Remember: This process has to be repeated if a new kernel version is being installed.

= Installing spca5xx - the easy way via easyspca =
There is a nice project on the [http://forum.ubuntu-fr.org/index.php french ubuntu forum], called [http://forum.ubuntu-fr.org/viewtopic.php?id=16670 Easycam]. By adding the following line to {{{/etc/apt/sources.list}}} you get some installation scripts for your webcam:
{{{
deb http://blognux.free.fr/debian unstable main
}}}

Install the script (in this case easyspca) with the following command:
{{{
sudo apt-get install easyspca
}}}

Because the script doesn't always install the needed kernel-headers and create the link back to these headers at the moment, you have to do it manually. Simply use these commands:
{{{
sudo apt-get install linux-headers-`uname -r`
sudo ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build
}}}

Now you can run the installed script by:
{{{
sudo easyspca
}}}

After a some compilation your webcam should be ready.

== Problems ==
If you get in trouble you can check on their [http://forum.ubuntu-fr.org/viewtopic.php?id=16670 thread] (in french) or on the [http://wiki.ubuntu-fr.org/materiel/webcam_logitech_msn?s=amsn Documentaion Ubuntu Francophone (in french)].

In my case it worked fine. I've also an [http://ralph.n3rds.net/index.php?/archives/124-Webcam-installation-scripts.html entry] on my [http://ralph-wabel.net blog] if you run in problems.

== Testing your webcam ==
There is a nifty little application called [http://camorama.fixedgear.org/ camorama] to view, alter and save images from a webcam. Simply install it via apt:
{{{
sudo apt-get install camorama
}}}

== Additional software ==
If you want to have a little tray system icon that notifies you when your Webcam is on, try [http://infinito.f2o.org/cameramonitor/ Camera Monitor]. There is even a [http://infinito.f2o.org/cameramonitor/cameramonitor_0.1-1_i386.deb debian/ubuntu package] available.

----

CategoryDocumentation CategoryCleanup

CategoryDocumentation

Content: TableOfContents()

Newer Logitech Quick Cam Express Webcams and a lot of other Webcams are supported by the [http://mxhaard.free.fr/download.html spca5xx] driver, a branch of the [http://spca50x.sourceforge.net spca50x] driver. The spca5xx driver supports a wider range of cameras, but classifies itselves as experimental. (This means it might crash your kernel in the worst case.)

The spca5xx driver is included in the Ubuntu kernel and works out of the box in Dapper Drake (6.06). In Breezy Badger (5.10) the included driver is unfortunately buggy and will freeze your system, once the webcam is accessed. That's why you have to replace it by a self-compiled one (see below).

Dapper Drake (6.06)

You don't have to do anything, just go ahead and plugin your webcam. Then you can use any application (e.g. gqcam, kopete, ...) to access the webcam. If it does not work, see the Troubleshooting section below.

Breezy Badger (5.10)

If you want to replace the spca5xx driver delivered with Ubuntu Breezy Badger, this text shows you how. A compilation of the kernel is not necessary.

Warning /!\ The spca5xx module delivered with Ubuntu Breezy is buggy and needs to be replaced, if you want to use it. This bug manifests itself by crashing the system when the camera is activated.

This howto is partially based on information found in arnieboy's posting: [http://www.ubuntuforums.org/showthread.php?t=70657&page=3]

Step 1: Get the spca5xx source code

First download the current spca5xx source from Michel Xhaard's homepage and store it in your home directory. At the time of writing 20051212 is the latest version.

cd ~
wget http://mxhaard.free.fr/spca50x/Download/spca5xx-20051212.tar.gz

But check out his site for a newer version at [http://mxhaard.free.fr/download.html] BR Change any occurance of spca5xx-20051212 in this how-to to the version you have downloaded.

Step 2: Become root

For administrative task Ubuntu uses the sudo command. This will not work here. (We have to change an environment variable (see below). If we use sudo this change will be discarded when the execution of the sudo commands ends, i.e. immediately.)

So, we use this method: BR Open a terminal window and enter:

{{{sudo -s }}}

When prompted for your password, enter your user password.

The prompt should change to: {{{root@yourmachine: }}}

Step 3: Download the necessary packages

In order to compile and integrate the drivers, the following packages are needed from the Ubuntu repositories:

  1. linux-headers-`uname -r`

  2. linux-restricted-modules-`uname -r`

  3. build-essential

  4. gcc-3.4

linux-... - The construct `uname -r` will evaluate to the version of the running kernel, e.g. 2.6.12.10-k7 (may vary on your system). The "linux" packages will download the headers of your kernel and the restricted modules from the repositories.

build-essential - contains utilities for compiling source code.

gcc-3.4 - The GNU C compiler. By default Breezy installs gcc-4.0 on your system. But the current kernel is compiled with gcc-3.4. Kernel modules MUST be compiled with the same compiler version as the kernel itself, so we need the older version. BR Warning /!\ This information is valid for Breezy and may change in later versions of Ubuntu.

The command to install these packages is:

{{{apt-get install linux-headers-uname -r linux-restricted-modules-uname -r build-essential gcc-3.4 }}}

Step 4: Compiling the spca5xx source code

The linux stuff is installed under /usr/src. So I suggest, you go there:

{{{cd /usr/src }}}

and move the spca5xx source from your home directory to this location: {{{mv ~/spca5xx-20051212.tar.gz . }}}

Unpack it {{{tar xfvz spca5xx-20051212.tar.gz }}}

Enter the spca5xx directory {{{cd spca5xx-20051212 }}}

Workaround to make the Makefile use gcc-3.4

The Makefile which controls the compiling process for this driver has to be told to use gcc-3.4 instead of the default version 4.0:

export CC=gcc-3.4

This sets the environment variable CC, which is used in the spac5xx Makefile to select the compiler.

Anchor(setlink)

Furthermore the spca5xx Makefile expect a pointer to the kernel source at a specific location. Let's create it: {{{ln -s /usr/src/linux-headers-uname -r /lib/modules/uname -r/build }}} (Note: If you compile a kernel, this link is usually there. But as we use a pre-compiled kernel, we have to cheat.)

Compiling the spca5xx source code

Spca5xx (last edited 2008-08-06 16:34:39 by localhost)