Blame view

Documentation/video4linux/CQcam.txt 6.91 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
  c-qcam - Connectix Color QuickCam video4linux kernel driver
  
  Copyright (C) 1999  Dave Forrest  <drf5n@virginia.edu>
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
4
  		    released under GNU GPL.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  
  1999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind
  
  
  Table of Contents
  
  1.0 Introduction
  2.0 Compilation, Installation, and Configuration
  3.0 Troubleshooting
  4.0 Future Work / current work arounds
  9.0 Sample Program, v4lgrab
  10.0 Other Information
  
  
  1.0 Introduction
575f9af89   Mhayk Whandson   V4L/DVB (12370): ...
20
21
    The file ../../drivers/media/video/c-qcam.c is a device driver for
  the Logitech (nee Connectix) parallel port interface color CCD camera.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  This is a fairly inexpensive device for capturing images.  Logitech
  does not currently provide information for developers, but many people
  have engineered several solutions for non-Microsoft use of the Color
  Quickcam.
  
  1.1 Motivation
  
    I spent a number of hours trying to get my camera to work, and I
  hope this document saves you some time.  My camera will not work with
  the 2.2.13 kernel as distributed, but with a few patches to the
  module, I was able to grab some frames. See 4.0, Future Work.
  
  
  
  2.0 Compilation, Installation, and Configuration
  
    The c-qcam depends on parallel port support, video4linux, and the
  Color Quickcam.  It is also nice to have the parallel port readback
  support enabled. I enabled these as modules during the kernel
  configuration.  The appropriate flags are:
  
      CONFIG_PRINTER       M    for lp.o, parport.o parport_pc.o modules
      CONFIG_PNP_PARPORT   M for autoprobe.o IEEE1284 readback module
      CONFIG_PRINTER_READBACK M for parport_probe.o IEEE1284 readback module
      CONFIG_VIDEO_DEV     M    for videodev.o video4linux module
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
47
      CONFIG_VIDEO_CQCAM   M    for c-qcam.o  Color Quickcam module
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
48
49
50
51
52
53
  
    With these flags, the kernel should compile and install the modules.
  To record and monitor the compilation, I use:
  
   (make zlilo ; \
    make modules; \
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
54
    make modules_install ;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
55
56
    depmod -a ) &>log &
   less log  # then a capital 'F' to watch the progress
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
57

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
58
59
60
  But that is my personal preference.
  
  2.2 Configuration
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
61

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
62
63
64
65
66
67
    The configuration requires module configuration and device
  configuration.  I like kmod or kerneld process with the
  /etc/modprobe.conf file so the modules can automatically load/unload as
  they are used.  The video devices could already exist, be generated
  using MAKEDEV, or need to be created.  The following sections detail
  these procedures.
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
68
  2.1 Module Configuration
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
  
    Using modules requires a bit of work to install and pass the
  parameters.  Understand that entries in /etc/modprobe.conf of:
  
     alias parport_lowlevel parport_pc
     options parport_pc io=0x378 irq=none
     alias char-major-81 videodev
     alias char-major-81-0 c-qcam
  
  will cause the kmod/modprobe to do certain things.  If you are
  using kmod, then a request for a 'char-major-81-0' will cause
  the 'c-qcam' module to load.  If you have other video sources with
  modules, you might want to assign the different minor numbers to
  different modules.
  
  2.2 Device Configuration
  
    At this point, we need to ensure that the device files exist.
  Video4linux used the /dev/video* files, and we want to attach the
  Quickcam to one of these.
  
     ls -lad /dev/video*  # should produce a list of the video devices
  
  If the video devices do not exist, you can create them with:
  
    su
    cd /dev
    for ii in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
      mknod video$ii c 81 $ii   # char-major-81-[0-16]
      chown root.root video$ii  # owned by root
      chmod 600 video$ii        # read/writable by root only
    done
  
    Lots of people connect video0 to video and bttv, but you might want
  your c-qcam to mean something more:
  
     ln -s video0 c-qcam  # make /dev/c-qcam a working file
     ln -s c-qcam video   # make /dev/c-qcam your default video source
  
    But these are conveniences.  The important part is to make the proper
  special character files with the right major and minor numbers.  All
  of the special device files are listed in ../devices.txt.  If you
  would like the c-qcam readable by non-root users, you will need to
  change the permissions.
  
  3.0 Troubleshooting
  
    If the sample program below, v4lgrab, gives you output then
  everything is working.
  
      v4lgrab | wc # should give you a count of characters
  
    Otherwise, you have some problem.
  
    The c-qcam is IEEE1284 compatible, so if you are using the proc file
  system (CONFIG_PROC_FS), the parallel printer support
  (CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you
  should be able to read some identification from your quickcam with
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
127
128
129
  	 modprobe -v parport
  	 modprobe -v parport_probe
  	 cat /proc/parport/PORTNUMBER/autoprobe
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
130
131
132
133
134
135
136
137
  Returns:
    CLASS:MEDIA;
    MODEL:Color QuickCam 2.0;
    MANUFACTURER:Connectix;
  
    A good response to this indicates that your color quickcam is alive
  and well.  A common problem is that the current driver does not
  reliably detect a c-qcam, even though one is attached.  In this case,
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
138
       modprobe -v c-qcam
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
139
140
141
142
143
144
145
146
147
148
149
  or
       insmod -v c-qcam
  
    Returns a message saying "Device or resource busy"  Development is
  currently underway, but a workaround is to patch the module to skip
  the detection code and attach to a defined port.  Check the
  video4linux mailing list and archive for more current information.
  
  3.1 Checklist:
  
    Can you get an image?
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
150
  	    v4lgrab >qcam.ppm ; wc qcam.ppm ; xv qcam.ppm
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
151

48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
152
153
    Is a working c-qcam connected to the port?
  	    grep ^ /proc/parport/?/autoprobe
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
154

48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
155
156
    Do the /dev/video* files exist?
  	    ls -lad /dev/video
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
157

48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
158
159
    Is the c-qcam module loaded?
  	    modprobe -v c-qcam ; lsmod
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
160
161
162
163
164
165
166
167
168
169
170
  
    Does the camera work with alternate programs? cqcam, etc?
  
  
  
  
  4.0 Future Work / current workarounds
  
    It is hoped that this section will soon become obsolete, but if it
  isn't, you might try patching the c-qcam module to add a parport=xxx
  option as in the bw-qcam module so you can specify the parallel port:
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
171
         insmod -v c-qcam parport=0
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
172
173
174
175
176
177
  
  And bypass the detection code, see ../../drivers/char/c-qcam.c and
  look for the 'qc_detect' code and call.
  
    Note that there is work in progress to change the video4linux API,
  this work is documented at the video4linux2 site listed below.
48773e685   Mauro Carvalho Chehab   V4L/DVB (3599c): ...
178
  9.0 --- A sample program using v4lgrabber,
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
179

a22f1cbc2   Randy Dunlap   V4L/DVB (4047): D...
180
  v4lgrab is a simple image grabber that will copy a frame from the
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
181
  first video device, /dev/video0 to standard output in portable pixmap
a22f1cbc2   Randy Dunlap   V4L/DVB (4047): D...
182
183
  format (.ppm)  To produce .jpg output, you can use it like this:
  'v4lgrab | convert - c-qcam.jpg'
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
184
185
186
187
188
189
190
191
  
  
  10.0 --- Other Information
  
  Use the ../../Maintainers file, particularly the  VIDEO FOR LINUX and PARALLEL
  PORT SUPPORT sections
  
  The video4linux page:
43db48d3d   Mauro Carvalho Chehab   V4L/DVB (5068): F...
192
    http://linuxtv.org
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
193

43db48d3d   Mauro Carvalho Chehab   V4L/DVB (5068): F...
194
195
  The V4L2 API spec:
    http://v4l2spec.bytesex.org/
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
196
197
  
  Some web pages about the quickcams:
0ea6e6112   Justin P. Mattock   Documentation: up...
198
     http://www.pingouin-land.com/howto/QuickCam-HOWTO.html
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
199
200
201
  
     http://www.crynwr.com/qcpc/            QuickCam Third-Party Drivers
     http://www.crynwr.com/qcpc/re.html     Some Reverse Engineering
0ea6e6112   Justin P. Mattock   Documentation: up...
202
     http://www.wirelesscouch.net/software/gqcam/   v4l client
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
203
204
205
     http://phobos.illtel.denver.co.us/pub/qcread/ doesn't use v4l
     ftp://ftp.cs.unm.edu/pub/chris/quickcam/   Has lots of drivers
     http://www.cs.duke.edu/~reynolds/quickcam/ Has lots of information