

This is a linux driver for Quickcam Messenger and Quickcam Communicate.
(Thanks to Mathias Kuster who found a working init-string that
resulted into frames in bayes-format.)

The driver is based on qc-usb-0.6.2, but I have removed the support
for all cameras except Quickcam Messenger in this source, since I
don't have any other cameras at home.

Here is some information about the driver:

  Support for Quickcam Messenger (0x046D, 0x08F0)
  Support for Quickcam Communicate (0x046D, 0x08F5)
  162x124, 162x248, 324x124, 324x248 resolution available
  Auto exposure works (need some tuning though)
  Auto shutter-control works (need some tuning though)
  Read status of the button on the camera
  Compressed format is still unknown
  Driver is compiled and tested with Quickcam Messenger and
    Fedora Core 1 (kernel 2.4.22-1.2197.nptl) and
    Fedora Core 3 (kernel 2.6.9-1.667smp).


I have sucessfully tried some applications:
  xawtv -c /dev/video0
  camorama
  gspy (patched version works)
  gnomemeetings (perhaps not working during conversation though...)
  ./show
  ./testquickcam /dev/video0 -m


If you would like to find updates in the future, they will probably be
placed at this web-page:
http://home.mag.cx/messenger/


/Christian
Email: mag@mag.cx


------------------
How to compile and use....

make all
make show
make install

(load usb modules if not already loaded)
modprobe videodev
modprobe quickcam


You should now get something like this in your syslog file:

quickcam: QuickCam USB camera found (driver version QuickCam Messenger/Communicate USB $Date: 2004/12/21 10:00:00 $)
quickcam: Kernel:2.6.9-1.667smp bus:4 class:FF subclass:FF vendor:046D product:08F0
quickcam [54.599250]: poisoning qc in qc_usb_init
quickcam [54.606150]: E00A contains 08F0
quickcam: Sensor VV6450 detected
quickcam: Registered device: /dev/video0
usbcore: registered new driver quickcam

--------------------

Problem with compiling it with SuSE 9.1, Kernel 2.6.8?

/home/christian/src/misc/qc-usb-messenger-0.5/qc-driver.c: In Funktion »qc_int_init«:
/home/christian/src/misc/qc-usb-messenger-0.5/qc-driver.c:788: error: structure has no member named `timeout'

In "/usr/src/linux-2.6.8-0/include/linux/usb.h" you find a struct called urb.
This struct contains a variable called "timeout" in kernels older than 2.6.9.
For some reason this doesn't exist in SuSE's distrubution, so just delete the
row in qc-driver.c were the compilation error occours. (in this case row 788)

qc-driver.c:  (Delete this part)
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)
        urb->timeout  = HZ;                   /* 1 s */
#endif

--------------------
