About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / video4linux / README.cpia


Based on kernel version 2.6.37. Page generated on 2011-03-22 21:57 EST.

1	This is a driver for the CPiA PPC2 driven parallel connected
2	Camera. For example the Creative WebcamII is CPiA driven.
3	
4	   ) [1]Peter Pregler, Linz 2000, published under the [2]GNU GPL
5	
6	---------------------------------------------------------------------------
7	
8	USAGE:
9	
10	General:
11	========
12	
13	1) Make sure you have created the video devices (/dev/video*):
14	
15	- if you have a recent MAKEDEV do a 'cd /dev;./MAKEDEV video'
16	- otherwise do a:
17	
18	cd /dev
19	mknod video0 c 81 0
20	ln -s video0 video
21	
22	2) Compile the kernel (see below for the list of options to use),
23	   configure your parport and reboot.
24	
25	3) If all worked well you should get messages similar
26	   to the following (your versions may be different) on the console:
27	
28	V4L-Driver for Vision CPiA based cameras v0.7.4
29	parport0: read2 timeout.
30	parport0: Multimedia device, VLSI Vision Ltd PPC2
31	Parallel port driver for Vision CPiA based camera
32	  CPIA Version: 1.20 (2.0)
33	  CPIA PnP-ID: 0553:0002:0100
34	  VP-Version: 1.0 0100
35	  1 camera(s) found
36	
37	
38	As modules:
39	===========
40	
41	Make sure you have selected the following kernel options (you can
42	select all stuff as modules):
43	
44	The cpia-stuff is in the section 'Character devices -> Video For Linux'.
45	
46	CONFIG_PARPORT=m
47	CONFIG_PARPORT_PC=m
48	CONFIG_PARPORT_PC_FIFO=y
49	CONFIG_PARPORT_1284=y
50	CONFIG_VIDEO_DEV=m
51	CONFIG_VIDEO_CPIA=m
52	CONFIG_VIDEO_CPIA_PP=m
53	
54	For autoloading of all those modules you need to tell module-init-tools
55	some stuff. Add the following line to your module-init-tools config-file
56	(e.g. /etc/modprobe.conf or wherever your distribution does store that
57	stuff):
58	
59	options parport_pc io=0x378 irq=7 dma=3
60	alias char-major-81 cpia_pp
61	
62	The first line tells the dma/irq channels to use. Those _must_ match
63	the settings of your BIOS. Do NOT simply use the values above.  See
64	Documentation/parport.txt for more information about this. The second
65	line associates the video-device file with the driver. Of cause you
66	can also load the modules once upon boot (usually done in /etc/modules).
67	
68	Linked into the kernel:
69	=======================
70	
71	Make sure you have selected the following kernel options. Note that
72	you cannot compile the parport-stuff as modules and the cpia-driver
73	statically (the other way round is okay though).
74	
75	The cpia-stuff is in the section 'Character devices -> Video For Linux'.
76	
77	CONFIG_PARPORT=y
78	CONFIG_PARPORT_PC=y
79	CONFIG_PARPORT_PC_FIFO=y
80	CONFIG_PARPORT_1284=y
81	CONFIG_VIDEO_DEV=y
82	CONFIG_VIDEO_CPIA=y
83	CONFIG_VIDEO_CPIA_PP=y
84	
85	To use DMA/irq you will need to tell the kernel upon boot time the
86	hardware configuration of the parport. You can give the boot-parameter
87	at the LILO-prompt or specify it in lilo.conf. I use the following
88	append-line in lilo.conf:
89	
90		append="parport=0x378,7,3"
91	
92	See Documentation/parport.txt for more information about the
93	configuration of the parport and the values given above. Do not simply
94	use the values given above.
95	
96	---------------------------------------------------------------------------
97	FEATURES:
98	
99	- mmap/read v4l-interface (but no overlay)
100	- image formats: CIF/QCIF, SIF/QSIF, various others used by isabel;
101	  note: all sizes except CIF/QCIF are implemented by clipping, i.e.
102	  pixels are not uploaded from the camera
103	- palettes: VIDEO_PALETTE_GRAY, VIDEO_PALETTE_RGB565, VIDEO_PALETTE_RGB555,
104	  VIDEO_PALETTE_RGB24, VIDEO_PALETTE_RGB32, VIDEO_PALETTE_YUYV,
105	  VIDEO_PALETTE_UYVY, VIDEO_PALETTE_YUV422
106	- state information (color balance, exposure, ...) is preserved between
107	  device opens
108	- complete control over camera via proc-interface (_all_ camera settings are
109	  supported), there is also a python-gtk application available for this [3]
110	- works under SMP (but the driver is completely serialized and synchronous)
111	  so you get no benefit from SMP, but at least it does not crash your box
112	- might work for non-Intel architecture, let us know about this
113	
114	---------------------------------------------------------------------------
115	TESTED APPLICATIONS:
116	
117	- a simple test application based on Xt is available at [3]
118	- another test-application based on gqcam-0.4 (uses GTK)
119	- gqcam-0.6 should work
120	- xawtv-3.x (also the webcam software)
121	- xawtv-2.46
122	- w3cam (cgi-interface and vidcat, e.g. you may try out 'vidcat  |xv
123	  -maxpect -root -quit +noresetroot -rmode 5 -')
124	- vic, the MBONE video conferencing tool (version 2.8ucl4-1)
125	- isabel 3R4beta (barely working, but AFAICT all the problems are on
126	  their side)
127	- camserv-0.40
128	
129	See [3] for pointers to v4l-applications.
130	
131	---------------------------------------------------------------------------
132	KNOWN PROBLEMS:
133	
134	- some applications do not handle the image format correctly, you will
135	  see strange horizontal stripes instead of a nice picture -> make sure
136	  your application does use a supported image size or queries the driver
137	  for the actually used size (reason behind this: the camera cannot
138	  provide any image format, so if size NxM is requested the driver will
139	  use a format to the closest fitting N1xM1, the application should now
140	  query for this granted size, most applications do not).
141	- all the todo ;)
142	- if there is not enough light and the picture is too dark try to
143	  adjust the SetSensorFPS setting, automatic frame rate adjustment
144	  has its price
145	- do not try out isabel 3R4beta (built 135), you will be disappointed
146	
147	---------------------------------------------------------------------------
148	TODO:
149	
150	- multiple camera support (struct camera or something) - This should work,
151	  but hasn't been tested yet.
152	- architecture independence?
153	- SMP-safe asynchronous mmap interface
154	- nibble mode for old parport interfaces
155	- streaming capture, this should give a performance gain
156	
157	---------------------------------------------------------------------------
158	IMPLEMENTATION NOTES:
159	
160	The camera can act in two modes, streaming or grabbing. Right now a
161	polling grab-scheme is used. Maybe interrupt driven streaming will be
162	used for a asynchronous mmap interface in the next major release of the
163	driver. This might give a better frame rate.
164	
165	---------------------------------------------------------------------------
166	THANKS (in no particular order):
167	
168	- Scott J. Bertin <sbertin@mindspring.com> for cleanups, the proc-filesystem
169	  and much more
170	- Henry Bruce <whb@vvl.co.uk> for providing developers information about
171	  the CPiA chip, I wish all companies would treat Linux as seriously
172	- Karoly Erdei <Karoly.Erdei@risc.uni-linz.ac.at> and RISC-Linz for being
173	  my boss ;) resp. my employer and for providing me the hardware and
174	  allow me to devote some working time to this project
175	- Manuel J. Petit de Gabriel <mpetit@dit.upm.es> for providing help
176	  with Isabel (http://isabel.dit.upm.es/)
177	- Bas Huisman <bhuism@cs.utwente.nl> for writing the initial parport code
178	- Jarl Totland <Jarl.Totland@bdc.no> for setting up the mailing list
179	  and maintaining the web-server[3]
180	- Chris Whiteford <Chris@informinteractive.com> for fixes related to the
181	  1.02 firmware
182	- special kudos to all the tester whose machines crashed and/or
183	  will crash. :)
184	
185	---------------------------------------------------------------------------
186	REFERENCES
187	
188	   1. http://www.risc.uni-linz.ac.at/
189	      mailto:Peter_Pregler@email.com
190	   2. see the file COPYING in the top directory of the kernel tree
191	   3. http://webcam.sourceforge.net/
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog