mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
![Justin P. Mattock](/assets/img/avatar_default.png)
Below you will find an updated version from the original series bunching all patches into one big patch updating broken web addresses that are located in Documentation/* Some of the addresses date as far far back as 1995 etc... so searching became a bit difficult, the best way to deal with these is to use web.archive.org to locate these addresses that are outdated. Now there are also some addresses pointing to .spec files some are located, but some(after searching on the companies site)where still no where to be found. In this case I just changed the address to the company site this way the users can contact the company and they can locate them for the users. Signed-off-by: Justin P. Mattock <justinmattock@gmail.com> Signed-off-by: Thomas Weber <weber@corscience.de> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Cc: Paulo Marques <pmarques@grupopie.com> Cc: Randy Dunlap <rdunlap@xenotime.net> Cc: Michael Neuling <mikey@neuling.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
191 lines
7 KiB
Text
191 lines
7 KiB
Text
This is a driver for the CPiA PPC2 driven parallel connected
|
|
Camera. For example the Creative WebcamII is CPiA driven.
|
|
|
|
) [1]Peter Pregler, Linz 2000, published under the [2]GNU GPL
|
|
|
|
---------------------------------------------------------------------------
|
|
|
|
USAGE:
|
|
|
|
General:
|
|
========
|
|
|
|
1) Make sure you have created the video devices (/dev/video*):
|
|
|
|
- if you have a recent MAKEDEV do a 'cd /dev;./MAKEDEV video'
|
|
- otherwise do a:
|
|
|
|
cd /dev
|
|
mknod video0 c 81 0
|
|
ln -s video0 video
|
|
|
|
2) Compile the kernel (see below for the list of options to use),
|
|
configure your parport and reboot.
|
|
|
|
3) If all worked well you should get messages similar
|
|
to the following (your versions may be different) on the console:
|
|
|
|
V4L-Driver for Vision CPiA based cameras v0.7.4
|
|
parport0: read2 timeout.
|
|
parport0: Multimedia device, VLSI Vision Ltd PPC2
|
|
Parallel port driver for Vision CPiA based camera
|
|
CPIA Version: 1.20 (2.0)
|
|
CPIA PnP-ID: 0553:0002:0100
|
|
VP-Version: 1.0 0100
|
|
1 camera(s) found
|
|
|
|
|
|
As modules:
|
|
===========
|
|
|
|
Make sure you have selected the following kernel options (you can
|
|
select all stuff as modules):
|
|
|
|
The cpia-stuff is in the section 'Character devices -> Video For Linux'.
|
|
|
|
CONFIG_PARPORT=m
|
|
CONFIG_PARPORT_PC=m
|
|
CONFIG_PARPORT_PC_FIFO=y
|
|
CONFIG_PARPORT_1284=y
|
|
CONFIG_VIDEO_DEV=m
|
|
CONFIG_VIDEO_CPIA=m
|
|
CONFIG_VIDEO_CPIA_PP=m
|
|
|
|
For autoloading of all those modules you need to tell module-init-tools
|
|
some stuff. Add the following line to your module-init-tools config-file
|
|
(e.g. /etc/modprobe.conf or wherever your distribution does store that
|
|
stuff):
|
|
|
|
options parport_pc io=0x378 irq=7 dma=3
|
|
alias char-major-81 cpia_pp
|
|
|
|
The first line tells the dma/irq channels to use. Those _must_ match
|
|
the settings of your BIOS. Do NOT simply use the values above. See
|
|
Documentation/parport.txt for more information about this. The second
|
|
line associates the video-device file with the driver. Of cause you
|
|
can also load the modules once upon boot (usually done in /etc/modules).
|
|
|
|
Linked into the kernel:
|
|
=======================
|
|
|
|
Make sure you have selected the following kernel options. Note that
|
|
you cannot compile the parport-stuff as modules and the cpia-driver
|
|
statically (the other way round is okay though).
|
|
|
|
The cpia-stuff is in the section 'Character devices -> Video For Linux'.
|
|
|
|
CONFIG_PARPORT=y
|
|
CONFIG_PARPORT_PC=y
|
|
CONFIG_PARPORT_PC_FIFO=y
|
|
CONFIG_PARPORT_1284=y
|
|
CONFIG_VIDEO_DEV=y
|
|
CONFIG_VIDEO_CPIA=y
|
|
CONFIG_VIDEO_CPIA_PP=y
|
|
|
|
To use DMA/irq you will need to tell the kernel upon boot time the
|
|
hardware configuration of the parport. You can give the boot-parameter
|
|
at the LILO-prompt or specify it in lilo.conf. I use the following
|
|
append-line in lilo.conf:
|
|
|
|
append="parport=0x378,7,3"
|
|
|
|
See Documentation/parport.txt for more information about the
|
|
configuration of the parport and the values given above. Do not simply
|
|
use the values given above.
|
|
|
|
---------------------------------------------------------------------------
|
|
FEATURES:
|
|
|
|
- mmap/read v4l-interface (but no overlay)
|
|
- image formats: CIF/QCIF, SIF/QSIF, various others used by isabel;
|
|
note: all sizes except CIF/QCIF are implemented by clipping, i.e.
|
|
pixels are not uploaded from the camera
|
|
- palettes: VIDEO_PALETTE_GRAY, VIDEO_PALETTE_RGB565, VIDEO_PALETTE_RGB555,
|
|
VIDEO_PALETTE_RGB24, VIDEO_PALETTE_RGB32, VIDEO_PALETTE_YUYV,
|
|
VIDEO_PALETTE_UYVY, VIDEO_PALETTE_YUV422
|
|
- state information (color balance, exposure, ...) is preserved between
|
|
device opens
|
|
- complete control over camera via proc-interface (_all_ camera settings are
|
|
supported), there is also a python-gtk application available for this [3]
|
|
- works under SMP (but the driver is completely serialized and synchronous)
|
|
so you get no benefit from SMP, but at least it does not crash your box
|
|
- might work for non-Intel architecture, let us know about this
|
|
|
|
---------------------------------------------------------------------------
|
|
TESTED APPLICATIONS:
|
|
|
|
- a simple test application based on Xt is available at [3]
|
|
- another test-application based on gqcam-0.4 (uses GTK)
|
|
- gqcam-0.6 should work
|
|
- xawtv-3.x (also the webcam software)
|
|
- xawtv-2.46
|
|
- w3cam (cgi-interface and vidcat, e.g. you may try out 'vidcat |xv
|
|
-maxpect -root -quit +noresetroot -rmode 5 -')
|
|
- vic, the MBONE video conferencing tool (version 2.8ucl4-1)
|
|
- isabel 3R4beta (barely working, but AFAICT all the problems are on
|
|
their side)
|
|
- camserv-0.40
|
|
|
|
See [3] for pointers to v4l-applications.
|
|
|
|
---------------------------------------------------------------------------
|
|
KNOWN PROBLEMS:
|
|
|
|
- some applications do not handle the image format correctly, you will
|
|
see strange horizontal stripes instead of a nice picture -> make sure
|
|
your application does use a supported image size or queries the driver
|
|
for the actually used size (reason behind this: the camera cannot
|
|
provide any image format, so if size NxM is requested the driver will
|
|
use a format to the closest fitting N1xM1, the application should now
|
|
query for this granted size, most applications do not).
|
|
- all the todo ;)
|
|
- if there is not enough light and the picture is too dark try to
|
|
adjust the SetSensorFPS setting, automatic frame rate adjustment
|
|
has its price
|
|
- do not try out isabel 3R4beta (built 135), you will be disappointed
|
|
|
|
---------------------------------------------------------------------------
|
|
TODO:
|
|
|
|
- multiple camera support (struct camera or something) - This should work,
|
|
but hasn't been tested yet.
|
|
- architecture independence?
|
|
- SMP-safe asynchronous mmap interface
|
|
- nibble mode for old parport interfaces
|
|
- streaming capture, this should give a performance gain
|
|
|
|
---------------------------------------------------------------------------
|
|
IMPLEMENTATION NOTES:
|
|
|
|
The camera can act in two modes, streaming or grabbing. Right now a
|
|
polling grab-scheme is used. Maybe interrupt driven streaming will be
|
|
used for a asynchronous mmap interface in the next major release of the
|
|
driver. This might give a better frame rate.
|
|
|
|
---------------------------------------------------------------------------
|
|
THANKS (in no particular order):
|
|
|
|
- Scott J. Bertin <sbertin@mindspring.com> for cleanups, the proc-filesystem
|
|
and much more
|
|
- Henry Bruce <whb@vvl.co.uk> for providing developers information about
|
|
the CPiA chip, I wish all companies would treat Linux as seriously
|
|
- Karoly Erdei <Karoly.Erdei@risc.uni-linz.ac.at> and RISC-Linz for being
|
|
my boss ;) resp. my employer and for providing me the hardware and
|
|
allow me to devote some working time to this project
|
|
- Manuel J. Petit de Gabriel <mpetit@dit.upm.es> for providing help
|
|
with Isabel (http://isabel.dit.upm.es/)
|
|
- Bas Huisman <bhuism@cs.utwente.nl> for writing the initial parport code
|
|
- Jarl Totland <Jarl.Totland@bdc.no> for setting up the mailing list
|
|
and maintaining the web-server[3]
|
|
- Chris Whiteford <Chris@informinteractive.com> for fixes related to the
|
|
1.02 firmware
|
|
- special kudos to all the tester whose machines crashed and/or
|
|
will crash. :)
|
|
|
|
---------------------------------------------------------------------------
|
|
REFERENCES
|
|
|
|
1. http://www.risc.uni-linz.ac.at/
|
|
mailto:Peter_Pregler@email.com
|
|
2. see the file COPYING in the top directory of the kernel tree
|
|
3. http://webcam.sourceforge.net/
|