Merge tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[linux/fpc-iii.git] / Documentation / video4linux / CQcam.txt
blob0b69e4ee8e312d8dd8e26489b706f83aa6851382
1 c-qcam - Connectix Color QuickCam video4linux kernel driver
3 Copyright (C) 1999  Dave Forrest  <drf5n@virginia.edu>
4                     released under GNU GPL.
6 1999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind
9 Table of Contents
11 1.0 Introduction
12 2.0 Compilation, Installation, and Configuration
13 3.0 Troubleshooting
14 4.0 Future Work / current work arounds
15 9.0 Sample Program, v4lgrab
16 10.0 Other Information
19 1.0 Introduction
21   The file ../../drivers/media/parport/c-qcam.c is a device driver for
22 the Logitech (nee Connectix) parallel port interface color CCD camera.
23 This is a fairly inexpensive device for capturing images.  Logitech
24 does not currently provide information for developers, but many people
25 have engineered several solutions for non-Microsoft use of the Color
26 Quickcam.
28 1.1 Motivation
30   I spent a number of hours trying to get my camera to work, and I
31 hope this document saves you some time.  My camera will not work with
32 the 2.2.13 kernel as distributed, but with a few patches to the
33 module, I was able to grab some frames. See 4.0, Future Work.
37 2.0 Compilation, Installation, and Configuration
39   The c-qcam depends on parallel port support, video4linux, and the
40 Color Quickcam.  It is also nice to have the parallel port readback
41 support enabled. I enabled these as modules during the kernel
42 configuration.  The appropriate flags are:
44     CONFIG_PRINTER       M    for lp.o, parport.o parport_pc.o modules
45     CONFIG_PNP_PARPORT   M for autoprobe.o IEEE1284 readback module
46     CONFIG_PRINTER_READBACK M for parport_probe.o IEEE1284 readback module
47     CONFIG_VIDEO_DEV     M    for videodev.o video4linux module
48     CONFIG_VIDEO_CQCAM   M    for c-qcam.o  Color Quickcam module
50   With these flags, the kernel should compile and install the modules.
51 To record and monitor the compilation, I use:
53  (make zlilo ; \
54   make modules; \
55   make modules_install ;
56   depmod -a ) &>log &
57  less log  # then a capital 'F' to watch the progress
59 But that is my personal preference.
61 2.2 Configuration
63   The configuration requires module configuration and device
64 configuration.  The following sections detail these procedures.
67 2.1 Module Configuration
69   Using modules requires a bit of work to install and pass the
70 parameters.  Understand that entries in /etc/modprobe.d/*.conf of:
72    alias parport_lowlevel parport_pc
73    options parport_pc io=0x378 irq=none
74    alias char-major-81 videodev
75    alias char-major-81-0 c-qcam
77 2.2 Device Configuration
79   At this point, we need to ensure that the device files exist.
80 Video4linux used the /dev/video* files, and we want to attach the
81 Quickcam to one of these.
83    ls -lad /dev/video*  # should produce a list of the video devices
85 If the video devices do not exist, you can create them with:
87   su
88   cd /dev
89   for ii in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
90     mknod video$ii c 81 $ii   # char-major-81-[0-16]
91     chown root.root video$ii  # owned by root
92     chmod 600 video$ii        # read/writable by root only
93   done
95   Lots of people connect video0 to video and bttv, but you might want
96 your c-qcam to mean something more:
98    ln -s video0 c-qcam  # make /dev/c-qcam a working file
99    ln -s c-qcam video   # make /dev/c-qcam your default video source
101   But these are conveniences.  The important part is to make the proper
102 special character files with the right major and minor numbers.  All
103 of the special device files are listed in ../devices.txt.  If you
104 would like the c-qcam readable by non-root users, you will need to
105 change the permissions.
107 3.0 Troubleshooting
109   If the sample program below, v4lgrab, gives you output then
110 everything is working.
112     v4lgrab | wc # should give you a count of characters
114   Otherwise, you have some problem.
116   The c-qcam is IEEE1284 compatible, so if you are using the proc file
117 system (CONFIG_PROC_FS), the parallel printer support
118 (CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you
119 should be able to read some identification from your quickcam with
121          modprobe -v parport
122          modprobe -v parport_probe
123          cat /proc/parport/PORTNUMBER/autoprobe
124 Returns:
125   CLASS:MEDIA;
126   MODEL:Color QuickCam 2.0;
127   MANUFACTURER:Connectix;
129   A good response to this indicates that your color quickcam is alive
130 and well.  A common problem is that the current driver does not
131 reliably detect a c-qcam, even though one is attached.  In this case,
133      modprobe -v c-qcam
135      insmod -v c-qcam
137   Returns a message saying "Device or resource busy"  Development is
138 currently underway, but a workaround is to patch the module to skip
139 the detection code and attach to a defined port.  Check the
140 video4linux mailing list and archive for more current information.
142 3.1 Checklist:
144   Can you get an image?
145             v4lgrab >qcam.ppm ; wc qcam.ppm ; xv qcam.ppm
147   Is a working c-qcam connected to the port?
148             grep ^ /proc/parport/?/autoprobe
150   Do the /dev/video* files exist?
151             ls -lad /dev/video
153   Is the c-qcam module loaded?
154             modprobe -v c-qcam ; lsmod
156   Does the camera work with alternate programs? cqcam, etc?
161 4.0 Future Work / current workarounds
163   It is hoped that this section will soon become obsolete, but if it
164 isn't, you might try patching the c-qcam module to add a parport=xxx
165 option as in the bw-qcam module so you can specify the parallel port:
167        insmod -v c-qcam parport=0
169 And bypass the detection code, see ../../drivers/char/c-qcam.c and
170 look for the 'qc_detect' code and call.
172   Note that there is work in progress to change the video4linux API,
173 this work is documented at the video4linux2 site listed below.
176 9.0 --- A sample program using v4lgrabber,
178 v4lgrab is a simple image grabber that will copy a frame from the
179 first video device, /dev/video0 to standard output in portable pixmap
180 format (.ppm)  To produce .jpg output, you can use it like this:
181 'v4lgrab | convert - c-qcam.jpg'
184 10.0 --- Other Information
186 Use the ../../Maintainers file, particularly the  VIDEO FOR LINUX and PARALLEL
187 PORT SUPPORT sections
189 The video4linux page:
190   http://linuxtv.org
192 The V4L2 API spec:
193   http://v4l2spec.bytesex.org/
195 Some web pages about the quickcams:
196    http://www.pingouin-land.com/howto/QuickCam-HOWTO.html
198    http://www.crynwr.com/qcpc/            QuickCam Third-Party Drivers
199    http://www.crynwr.com/qcpc/re.html     Some Reverse Engineering
200    http://www.wirelesscouch.net/software/gqcam/   v4l client
201    http://phobos.illtel.denver.co.us/pub/qcread/ doesn't use v4l
202    ftp://ftp.cs.unm.edu/pub/chris/quickcam/   Has lots of drivers
203    http://www.cs.duke.edu/~reynolds/quickcam/ Has lots of information