                       Guide pratique des webcams

  Version franaise du Webcam HOWTO

  Howard Shane

   <hshane CHEZ austin POINT rr POINT com>

   Traduction franaise : Denis Chatelain

   Relecture de la version franaise : ric Madesclair

   Prparation de la publication de la v.f. : Jean-Philippe Gurard

   Version : 1.1.fr.1.1

   2005-09-25

   +----------------------------------------------------------------+
   | Historique des versions                                        |
   |----------------------------------------------------------------|
   | Version 1.1.fr.1.1        | 2005-09-25      | DLC, JPG         |
   |----------------------------------------------------------------|
   | Intgration des corrections suggres par Grard Delafond      |
   |----------------------------------------------------------------|
   | Version 1.1.fr.1.0        | 2004-10-04      | DLC, M, JPG     |
   |----------------------------------------------------------------|
   | Premire traduction franaise                                  |
   |----------------------------------------------------------------|
   | Version 1.1               | 2004-01-12      | JHS              |
   |----------------------------------------------------------------|
   | Mise  jour pour les noyaux 2.6 et les webcams de type NW802   |
   | (Update for 2.6 series kernel release and info on NW802-based  |
   | webcams)                                                       |
   |----------------------------------------------------------------|
   | Version 1.0               | 2003-12-4       | JP               |
   |----------------------------------------------------------------|
   | Premire publication "officielle" (Initial Release / Reviewed  |
   | by TLDP)                                                       |
   |----------------------------------------------------------------|
   | Version 0.5               | 2003-11-07      | JHS              |
   |----------------------------------------------------------------|
   | Dernires modification aprs les commentaires de la liste de   |
   | diffusion v41 (Final revision after v4l mailing list feedback) |
   |----------------------------------------------------------------|
   | Version 0.1               | 2003-10-12      | JHS              |
   |----------------------------------------------------------------|
   | Premire version propose (Initial draft posted)               |
   +----------------------------------------------------------------+

   Rsum

   Ce document est destin  vous aider  configurer et  utiliser
   votre webcam sous Linux.

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

   Table des matires

   1. Introduction

                1.1. Informations de copyright (Copyright
                information)

                1.2. Limitations de responsabilit (Disclaimer)

                1.3. Nouvelles versions

                1.4. Remerciements

                1.5. Commentaires

                1.6. Conventions utilises dans ce document

   2. Support du type de connexion

                2.1. Webcam USB

                2.2. IEEE 1394 (Firewire(TM), i.Link(TM))

                2.3. Prise en charge du port parallle gnrique pour
                des webcams parport

   3. Cration et accs aux priphriques vido

                3.1. Systme de priphriques (Device Filesystem)

                3.2. Cration Manuelle de l'Accs  un Priphrique
                Vido

                3.3. Groupes and droits

   4. Informations spcifiques par type de webcam

                4.1. 3com HomeConnect PC Digital Webcam

                4.2. Puces CPiA

                4.3. Puces SE401, SE402 et EP800

                4.4. Webcam de type OmniVision

                4.5. Logitech (anciennement Connectix) Quickcam

                4.6. Puces NW802

                4.7. Webcam USB Philips

                4.8. Puces STV0680

                4.9. Winbond w9966cf

                4.10. Xirlink C-it(TM) HDCS-1000 Webcams

   5. Framegrabbing Applications

                5.1. Xawtv

                5.2. MoTV

                5.3. Streamer

                5.4. Motion

                5.5. Gqcam

                5.6. camE

                5.7. SANE

   6. Problmes et Solutions

                6.1. Comment puis-je connatre le modle de la puce
                de ma webcam USB si elle n'est pas mentionne dans ce
                Guide Pratique ?

                6.2. Je n'arrive pas  trouver o est ma webcam dans
                /dev

                6.3. La webcam apparat prsente, mais je n'arrive
                pas  y accder

                6.4. Le pilote de ma webcam existe uniquement non
                compil, et c'est  moi de le faire. Par o dois-je
                commencer ?

                6.5. Ma webcam a un pilote qui ncessite un correctif
                de mon noyau. Comment faire ?

                6.6. Ce document ne rpond pas  toutes mes questions

                6.7. Je voudrais contribuer au projet Video4Linux,
                par o dois-je commencer ?

   A. Gnu Free Documentation License

1. Introduction

   Ce document est destin  vous aider  configurer et utiliser
   votre webcam ainsi que d'autres priphriques vido avec Linux. Il
   prsente comment activer et configurer votre noyau pour votre
   priphrique vido ainsi que les logiciels permettant de
   l'exploiter au mieux. En revanche il ne traite pas des diffrents
   formats d'image et de vido, des fonctionnalits particulires
   d'un priphrique, de l'encodage ou de la conversion de formats
   vido.

  1.1.  Informations de copyright (Copyright information)

   Ce document d'Howard Shane a t publi en 2003. This document is
   Copyright 2003, by Howard Shane.

   Ce document peut tre librement copi, redistribu et modifi
   selon les termes de la Licence de documentation libre GNU [GFDL],
   version 1.2 ou suivantes tel que publie par la Free Software
   Foundation, sans section invariante, sans texte de premire ou de
   quatrime de couverture. Une copie de cette licence est disponible
   dans Annexe A, Gnu Free Documentation License. Permission is
   granted to copy, distribute, and/or modify this document under the
   terms of the GNU Free Documentation License, Version 1.2 or any
   later version published by the Free Software Foundation with no
   Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
   A copy of the license can be found in Annexe A, Gnu Free
   Documentation License.

  1.2.  Limitations de responsabilit (Disclaimer)

   Utilisez le contenu de ce document  vos propres risques, nous ne
   saurions tre tenu responsable d'un quelconque dommage. Ce
   document tant une nouvelle dition, il se peut qu'il comporte des
   erreurs techniques ou d'autres incorrections pouvant entraner des
   pertes de donnes. Dans tous les cas, restez prudent, et comprenez
   que, bien qu'il soit peu probable que des erreurs se soient
   glisses dans ce document, l'auteur ou le traducteur ne peuvent en
   aucun cas en tre tenu responsable. No liability for the contents
   of this document can be accepted. Use the concepts, examples and
   other content entirely at your own risk. As this is a new edition,
   there may be technical or other inaccuracies that may result in
   the loss of irreplaceable data. In any case, proceed with caution,
   and realize that although errors are highly unlikely, the author
   can accept no responsibility for them.

   Tous les droits d'utilisation (copyright) sont la proprit de
   leurs possesseurs respectifs,  moins qu'il ne soit fait mention
   du contraire. L'utilisation d'un terme dans ce document ne doit
   pas tre peru comme affectant la validit d'une marque
   commerciale ou de service. All copyrights are held by their
   respective owners, unless specifically noted otherwise. Use of a
   term in this document should not be regarded as affecting the
   validity of any trademark or service mark.

   La citation d'une marque ou d'un produit particulier ne reprsente
   en aucun cas une prfrence de l'auteur par rapport  un produit
   ou  une marque. Naming of particular products or brands should
   not be seen as endorsements.

  1.3. Nouvelles versions

   Ceci est la premire publication du document dans sa forme finale.

   Vous pourrez retrouver sur http://www.tldp.org/HOWTO/Webcam-HOWTO/
   [http://www.tldp.org/HOWTO/Webcam-HOWTO/] la dernire version
   anglaise de ce document, et la dernire traduction franaise 
   l'adresse
   http://www.traduc.org/docs/howto/lecture/Webcam-HOWTO.html
   [http://www.traduc.org/docs/howto/lecture/Webcam-HOWTO.html].

  1.4. Remerciements

   Je souhaite remercier tout ceux qui ont rendu la gestion de la
   vido sous Linux possible et en particulier les quipes v41 et
   v412, ainsi que Gerd Knorr et les frres Metzler, parmis tant
   d'autres.

   Je tiens aussi  remercier Marla qui a eu la bont d'accepter
   inconditionnellement toutes mes imperfections et manies, comme mon
   obsession de mener un projet tel que celui-ci.

  1.5. Commentaires

   N'hsitez pas  faire parvenir tout commentaire relatif  la
   version franaise de ce document  <commentaires CHEZ traduc POINT
   org> en prcisant son titre, sa date et sa version.

   Merci de faire parvenir en anglais  l'auteur vos questions et
   commentaires relatifs  la version originale de ce document 
   l'adresse <hshane CHEZ austin POINT rr POINT com>.

  1.6. Conventions utilises dans ce document

   Les conventions suivantes sont utilises dans ce document et sont
   mises en vidences ici pour ceux qui ne possdent pas une bonne
   matrise de l'accs et du contrle des couches basses du systme
   d'exploitation Linux, qui s'effectue quasiment exclusivement en
   utilisant la ligne de commande Bash.

   Premirement, les noms de fichier sont rfrencs au sein d'un
   paragraphe de la manire suivante : /chemin/fichier

   Les commandes Linux sont excutes (ou 'appeles')  partir de la
   ligne de commande. Si vous tes dans un environnement non
   graphique (lignes de texte uniquement, la ligne de commande Bash
   commence habituellement avec le signe dollar :

 $

   ... ou dise :

 #

   ... Si vous vous tes log en tant que root, si vous tes devenu
   root ou si vous avez les droits d'un super-utilisateur. Vous
   pouvez aussi accder  la ligne de commande Bash  partir de X
   window (ou X ou X11) avec xterm
   [http://invisible-island.net/xterm/] ou un autre mulateur X de
   terminal similaire. Les commandes destines  tre excuter 
   partir de la ligne de commande Bash, mais inclues dans un
   paragraphe du document sont prsentes habituellement comme a :
   une commande

   Les commandes et les rsultats de cette commande peuvent tre
   aussi soulignes avec une prsentation cran au sein mme de leur
   paragraphe ou en-tte :

 $ date
 Sun Jul 27 22:37:11 CDT 2003

   Lorsqu'une commande est crite  la suite d'une invite Bash (tel
   que $ date comme au-dessus), on assumera que la touche [Entre] a
   t frappe aprs la commande, potentiellement suivie par une
   autre ligne affichant le rsultat (de mme que pour l'exemple de
   date ci-dessus)

2. Support du type de connexion

  2.1. Webcam USB

   Si vous possdez une webcam USB, il est trs probable que ce
   matriel soit reconnu par Linux. Il y deux moyens d'utiliser les
   priphriques USB avec Linux. La premire mthode, traditionnelle,
   est de passer par le noyau Linux, la deuxime d'utiliser la
   librairie libusb. Si vous prfrez la voie plus traditionnelle du
   noyau, passez directement  la section Section 2.1.2,  Gestion
   USB du noyau Linux .

    2.1.1. Libusb

   La librairie libusb vous permet d'accder aux fonction USB en
   restant dans l'espace utilisateur courant sans avoir besoin de
   paramtrer le noyau Linux ou de devoir insrer des modules. La
   plupart des distributions proposent actuellement libusb
   [http://libusb.sourceforge.net/] (certaines installent cette
   librairie par dfaut). Si votre noyau ne reconnat pas les
   priphriques USB, il vous suffit simplement d'installer cette
   librairie pour pouvoir accder  ces priphriques. Vous devez
   avoir la gestion des systmes de fichiers USB active dans votre
   noyau. Cette option est active par dfaut dans la plupart des
   noyaux des distributions. Pour vous en assurer, tapez la ligne de
   commande suivante :

 $ cat /proc/filesystems

   Vous devriez voir apparatre (parmis d'autres informations) :

 nodev   usbdevfs
 nodev   usbfs

   Il se peut que vous ayez  monter le systme de fichiers usbdevfs
   pour voir apparatre les lignes correctes. Utilisez alors la
   commande : mount -t usbdevfs none /proc/bus/usb. N'essayez pas
   d'utiliser libusb lorsque le module webcam du noyau est dj
   activ. Que le module soit activ en tant que module statique ou
   dynamique. Vous ne pouvez utiliser qu'une mthode  la fois.

   Vous pouvez obtenir la paquet pour votre distribution Linux au
   format .rpm, .tgz ou .deb.

    2.1.2. Gestion USB du noyau Linux

   La gestion des webcams USB au niveau du noyau est requis si vous
   choisissez de ne pas utiliser libusb. Votre noyau a peut-tre dj
   ce qu'il vous faut. Vous pouvez le savoir en utilisant la commande
   dmesg en regardant si une ligne mentionne le chargement du pilote
   en question lors du dmarrage. En gnral, les webcams USB ont
   besoin du module usbvideo pour fonctionner correctement. Si vous
   ne voyez pas ce module apparatre dans la liste, le module peut
   tre prsent mais non charg. Pour le savoir, vous pouvez utiliser
   la commande suivante :

 $  ls -R /lib/modules/X.XX/kernel/drivers

   En remplaant X.XX par le numro de version de votre noyau. Le
   message suivant est un exemple de ce que vous pourrez obtenir avec
   un noyau qui est prt pour une utilisation de webcams USB o la
   gestion est assure dans son intgralit par des modules. Seules
   les lignes pertinentes ont t conserves.

 ./usb:
 usbvideo.o
 usbcore.o
 ibmcam.o

   (Un petit truc pour les nouveaux : si le rsultat de dmesg ou la
   liste de module s'affiche trop rapidement, vous pouvez obtenir un
   affichage page par page en utilisant | less, ou si vous ne
   possdez pas 'less', utilisez | more : ls -R
   /lib/modules/X.XX/kernel/drivers | less , ou vous pouvez aussi
   mettre le rsultat dans un fichier : ls -R
   /lib/modules/X.XX/kernel/drivers > fichier.txt, et pour lire
   ensuite le fichier vous pouvez utiliser la commande less
   fichier.txt.)

   Si votre noyau ne contient pas le support USB ncessaire, vous
   pouvez toujours recompiler votre noyau. Si vous n'avez pas
   l'habitude de compiler vous-mme le noyau Linux, rendez vous sur
   la page du Guide Pratique du Noyau
   [http://www.traduc.org/docs/howto/lecture/Kernel-HOWTO.html] o
   toutes les tapes vous seront expliques en dtail.

   Vous devez avoir le support du bus USB gnrique dans votre noyau
   Linux, c'est  dire les fonctionnalits de usb-ohci et usb-ehci ou
   tout autre pilote de bus USB de votre choix. La gestion de l'USB
   est prsente dans les dernires version du noyau 2.2. Pour obtenir
   des informations plus dtailles sur la gestion de l'USB, vous
   pouvez vous rendre sur le site en anglais du projet linux-usb
   [http://www.linux-usb.org/]. Si vous souhaitez connatre la liste
   des modules chargs, vous pouvez l'obtenir  partir de la ligne de
   commande ou d'un xterm avec la commande :

 # lsmod

   Comme vous le montre l'invite de commande, vous devez tre
   l'utilisateur root pour avoir les droits ncessaires  l'excution
   de cette commande. Vous devriez alors obtenir quelque chose de
   similaire  :

 cdrom                  29312   0  (autoclean) [sr_mod]
 usb-ohci               17888   0  (unused)
 usbcore                56768   0  [scanner ibmcam usbvideo usb-ohci]
 ibmcam                 39680   0

   Si les modules que vous souhaitiez voir chargs ne le sont pas et
   que vous savez qu'ils sont inclus dans votre noyau, essayez de les
   charger directement (en utilisant le module usb ibmcam par
   exemple) :

 # modprobe -v ibmcam

   ... vous devriez voir  ce moment-l quelque chose comme :

 Using /lib/modules/2.4.20/kernel/drivers/usb/ibmcam.o

   Si vous souhaitez qu'un module soit charg automatiquement lors du
   dmarrage de votre machine, ajoutez par exemple ibmcam  votre
   fichier /etc/modules. Attention, le nom et l'emplacement de ce
   fichier peuvent varier d'une distribution Linux  l'autre. Vous
   pouvez vous assurer du bon chargement du module en consultant le
   syslog (ou les messages de dmarrage avec dmesg | less), o vous
   devriez pouvoir lire quelque chose proche de :

 Oct 18 12:43:12 K7 kernel: hub.c: new USB device 00:02.3-2, assigned address 3
 Oct 18 12:43:12 K7 kernel: ibmcam.c: IBM PC Camera USB camera found (model 2, rev. 0x030a)
 Oct 18 12:43:12 K7 kernel: usbvideo.c: ibmcam on /dev/video1: canvas=352x240 videosize=352x240

  2.2. IEEE 1394 (Firewire(TM), i.Link(TM))

   L'accs aux webcams IEEE 1394 requiert l'utilisation d'une carte
   PCI IEEE 1394. La prise en charge des interfaces IEEE existe
   depuis les premires versions du noyau Linux 2.4. Si vous avez la
   chance de possder ce type d'quipement, vous pourrez trouver en
   anglais des informations gnralistes sur la prise en charge de
   Linux du bus IEEE 1394 sur la page www.linux1394.org
   [http://www.linux1394.org]. Si vous possdez une version du noyau
   antrieur  2.4.2, il faut que vous appliquiez un des correctifs
   que vous trouverez sur cette page
   [http://download.sourceforge.net/linux1394] en choisissant celui
   qui correspond  votre version du noyaux. De plus, vous aurez
   besoin de libraw1394 [http://download.sourceforge.net/libraw1394].
   Vous trouverez un trs bon guide d'installation sur le site
   linux1394.org mentionn prcdemment.

   La IEEE1394 Digital Camera List
   [http://www.tele.ucl.ac.be/PEOPLE/DOUXCHAMPS/ieee1394/cameras/] de
   Damien Douxchamps donne un trs bon rsum des capacits des
   appareils IEEE 1394 ainsi que le statut de la gestion de chaque
   modle.

  2.3. Prise en charge du port parallle gnrique pour des webcams
  parport

   Pour les noyaux 2.2 ou 2.4 le support du port parallle doit tre
   active statiquement ou par un module (les noyaux habituels ont
   gnralement cette option active par dfaut). Si vous le
   souhaitez, vous pouvez consulter des informations gnrales
   [http://www.torque.net/linux-pp.html] (en anglais au sujet des
   priphriques attachs au port parallle avant de vous lancer.
   Pour tre certain que le module parport est charg, vous pouvez
   vrifier le dmesg ou utiliser la commande lsmod comme voqu plus
   haut. La commande dmesg | less devrait vous donner en plus
   d'autres informations :

 Mar  3 08:00:25 K7 kernel: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
 Mar  3 08:00:25 K7 kernel: parport0: irq 7 detected

   Si vous compilez votre propre noyau, activez l'option 'Parallel
   Port support'. Il est conseill aussi d'activer 'IEEE 1284
   transfer modes', ainsi que'PC-style hardware' si vous disposez
   d'une machine d'architecture x86.

   Si modprobe retourne une erreur lors de la tentative de chargement
   du module il est probable que vous ayez  dterminer l'adresse
   matrielle du priphrique pour pouvoir la spcifier lors du
   lancement de la commande modprobe. L'adresse habituelle est 0x378
   pour une machine de type x86 ; dans le cas d'un port parallle
   intgr  la carte mre ou ISA, les valeurs peuvent tre 0x278 et
   0x3BC. L'adresse de base des ports parallle ajouts avec une
   carte PCI ne suis pas d'habitude particulire. Vous pouvez aussi
   utiliser plusieurs priphriques en utilise les modules parport_pc
   ou parport_arc, mais le dtail de ces mises en place sort du
   domaine de ce document. ATTENTION : Vrifiez de bien utiliser
   l'adresse correct avant de renseigner cette information, ou votre
   machine risque de devenir instable, planter ou de partir en
   vrille.

   Choisissez de prfrence le mode  EPP . Vous pouvez aussi
   choisir ECP/EPP  Bidirectionel  (ou encore  BPP  ou  PS/2 )
   ils fonctionneront aussi, mais seront plus lent.
    Unidirectionel  convient pour la numrisation de documents. Ces
   paramtres peuvent tre modifis  partir du menu du BIOS, tout du
   moins sur les architectures x86.

3. Cration et accs aux priphriques vido

  3.1. Systme de priphriques (Device Filesystem)

   Devfs [http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.html], ou
   'device filesystem', est prsent en tant qu'option du noyau Linux
   depuis les dernires version 2.2. Si vous ne l'avez pas encore
   utilis, a peut tre le moment de jeter un coup d'il dessus. Il
   permet de simplifier normment la gestion des priphriques. Le
   dmon devfsd ajoute et supprime dynamiquement les priphriques de
   votre systme sans intervention ncessaire de l'utilisateur. Vous
   pouvez vrifier que devfsd est lanc en regardant s'il est prsent
   dans la liste des processus obtenue avec la commande ps -A. Le
   dmon utilise trs peu de mmoire. Si vous utilisez devfsd/devfs,
   vous pouvez probablement ignorer la section suivante tant donn
   que le procd archaque de cration des nuds de priphrique
   aura dj t effectu pour vous, et il ne reste plus  ce
   moment-l qu' trouver les liens symboliques appropris dans /dev.

   Si vous voulez tenter d'utiliser devfs, il faut que vous activiez
   le '/dev file system' et 'Automatically mount at boot' de la
   section 'File Systems' de la configuration du noyau. Oui, il faut
   vraiment recompiler un noyau s'il n'y est pas dj prsent.
   ATTENTION : Le seul autre paquet dont vous aurez besoin est
   'devfsd' qui est fournis avec votre distribution Linux.
   ATTENTION : Si vous activez le montage de devicefs lors du
   dmarrage sans installer le dmon devfsd votre machine ne dmarra
   plus !

   Avec devfs, en revanche, vous devez toujours assigner les
   permissions d'accs correctes.

   Naturellement, les commentaires que j'ai pu faire au sujet de
   devfs n'engagent que moi, surtout si vous tes un nouveau linuxien
   et que vous ne vous sentez pas trop avoir les nerfs pour
   recompiler votre noyau.

   A partir des version 2.6 du noyau, devfs est rendu obsolte par
   l'apparition d'un dmon ne faisant pas parti du noyau, le dmon
   udev. devfs reste malgr tout une option utilisable. Si vous aimez
   vivre dangereusement, vous pourrez trouver plus d'informations sur
   udev sur le
   site :http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ
   [http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ]

  3.2. Cration Manuelle de l'Accs  un Priphrique Vido

   Si vous n'utilisez ni devfs et devfsd, ni libusb, ni udev, voici
   comment procder. Dans le cas contraire, passez  l'tape
   suivante. Un accs  un priphrique peut tre crer comme un bloc
   (comme pour un disque), un fifo (premier arriv, premier sorti) ou
   un priphrique de caractres reprsentant le reste du matriel.
   Chaque priphrique est caractris par un numro majeur et un
   numro mineur permettant au kernel de connatre sa nature et la
   faon d'y accder. Ces nombres ne sont pas arbitraires.

   Les nuds de priphrique Video4linux utiliss pour accder aux
   priphriques vidos (ce qui inclus les webcams) ont le numro
   majeur 81 et un numro mineur 0, 1, 2, ... et ainsi de suite. Pour
   commencer, vrifiez le contenu de /dev pour connatre le nom
   utilis par votre distribution pour dsigner le priphrique
   vido. Certaines distributions peuvent placer les priphriques
   vido  la racine du dossier /dev comme par exemple /dev/video0,
   /dev/video1...etc. D'autres distributions les placeront dans
   /dev/v4l ou dans le dossier /dev/video. Si vous trouvez ces accs
   priphrique dj prsents (parce qu'ils ont t crs par votre
   distribution ou par devfsd), vous n'avez plus qu' modifier les
   permissions d'accs  votre gr. Au cas contraire, il vous faudra
   crer ces nuds de priphrique vous-mme. Vous pouvez utiliser le
   script suivant que j'ai rcupr  partir des sources du noyau
   (vous pourrez le retrouver ici :
   linux/Documentation/video4linux/bttv/MAKEDEV :

 #!/bin/bash

 function makedev () {

     for dev in 0 1 2 3; do
       echo "/dev/$1$dev: char 81 $[ $2 + $dev ]"
       rm -f /dev/$1$dev
       mknod /dev/$1$dev c 81 $[ $2 + $dev ]
       chmod 666 /dev/$1$dev
     done

     # Lien symbolique pour le nud par dfaut
     rm -f /dev/$1
     ln -s /dev/${1}0 /dev/$1
 }

 # consulter http://roadrunner.swansea.uk.linux.org/v4lapi.shtml

 echo "*** Nouveau noms de priphrique ***"
 makedev video 0
 makedev radio 64
 makedev vtx 192
 makedev vbi 224
 # "*** anciens noms d'accs de priphrique (pour la compatibilit) ***"
 #makedev bttv 0
 #makedev bttv-fm 64
 #makedev bttv-vbi 224

   Copiez et collez le script ci-dessus dans votre diteur de texte
   favoris, enregistrez-le sous MAKEDEV ou un autre nom qui vous
   plaise, et rendez-le excutable (chmod u+x MAKEDEV). Ensuite,
   excutez-le en tant qu'utilisateur root :

 # ./MAKEDEV

  3.3. Groupes and droits

   Il vaut mieux gnralement vrifier que votre compte utilisateur a
   des droit d'accs aux priphriques suffisants une fois que tous
   les modules sont chargs et les accs aux priphriques crs.
   Pour amliorer la scurit, je vous conseille de crer un groupe
   particulier ayant accs  ces priphriques. Sur ma machine par
   exemple, seuls les membres du groupe 'video' ont le droit
   d'utiliser la webcam, le scanner ainsi que tous les autres
   priphriques similaires. Voici ce que je vous conseille pour
   modifier les droits d'accs aux priphriques du dossier /dev :

 # chown root.video /dev/usb/video1*

   ...o root.video sont respectivement le nouvel utilisateur et le
   nouveau groupe ayant l'accs au priphrique. Bien entendu, la
   commande exacte variera suivant votre systme et le type d'accs
   aux priphriques. Il est important de changer les droits d'accs
   sur le nud du priphrique et non sur les liens symboliques. Les
   droits sur les liens symboliques ne sont pas modifis que par un
   changement de l'accs au priphrique parent ou au fichier vers
   lesquels ils pointent.

   Pour savoir si votre compte fait parti du groupe en question, en
   tant que root utilisez la commande suivante : grep -e video
   /etc/group. Vous devriez voir apparatre quelque chose comme :

 video:x:44:

   ...o  44  est le numro correspondant au groupe video. Dans
   notre cas, aucun utilisateur fait parti du groupe video (dans le
   cas contraire ils seraient mentionns aprs la dernire colonne).
   Pour ajouter l'utilisateur  jhs  au groupe  video , la
   commande sera :

 # adduser jhs video

   Ensuite, il suffit d'ajouter les droits en lecture et en
   criture :

 # chmod g+rw /dev/v4l/video0

   ...o g+rw signifie ajouter le droit en lecture (r) et le droit en
   criture (w) pour le group. Consultez la documentation de chmod
   (man chmod ou info chmod) pour plus d'information.

4. Informations spcifiques par type de webcam

   Notez bien que ces informations changent rgulirement. Le site
   Linux-USB [http://http://www.qbik.ch/usb/devices/index.php] (en
   anglais) est une bonne rfrence si vous possdez une webcam USB.
   Vous pourrez trouver la page de rfrence en anglais concernant
   votre matriel sur http://www.exploits.org/v4l/
   [http://www.exploits.org/v4l/]. Les informations ci-dessous sont
   extraites de ces sites, et en consquence ils pourront vous
   fournir des informations plus  jour. Si vous ne trouvez pas
   d'information concernant votre matriel, vous pouvez trouver des
   liens qui vous expliqueront comment crire votre propre pilote !

   Il est important de noter que si votre webcam n'apparat pas dans
   la liste, la manire la plus simple de savoir si votre webcam est
   reconnue est de connatre la version de la puce gnrique utilise
   et son fabricant. Ces informations se trouvent gnralement dans
   le manuel de la webcam ou sur le site du constructeur.

   Si vous ne trouvez pas votre webcam dans la liste et que vous
   n'arrivez pas  trouver quelle est la puce utilise pour le
   modle, abonnez-vous  la liste de diffusion video4linux-list
   [https://listman.redhat.com/mailman/listinfo/video4linux-list].

  4.1. 3com HomeConnect PC Digital Webcam

   Ce modle est reconnu  l'aide d'un patch du noyau que vous
   pourrez trouver sur le site en anglaisthe homeconnectusb project
   [http://homeconnectusb.sourceforge.net/]. Vous aurez srement 
   recompiler le noyau aprs avoir appliqu le correctif suivant sa
   version.

  4.2. Puces CPiA

   Consultez la page webcam [http://webcam.sourceforge.net/] pour
   obtenir des informations  jour. Cette puce est utilise pour la
   fabrication de webcam USB et sur port parallle, notamment par les
   modles suivants :

     o Aiptek HyperVcam Fun USB (modle non bas sur OV511)

     o Creative Video Blaster WebCam II USB et port parallle

     o CVideo-Mail Express port parallle

     o Digicom Galileo USB et Digicom Galileo Plus

     o Dynalink Digital Camera

     o Ezonics EZCam (sauf Pro ou Plus)

     o I-View NetView NV200M

     o Microtek EyeStar USB

     o Pace Color Video Camera USB

     o SuperCam WonderEye

     o TCE Netcam 310 USB

     o Terracam USB (sauf modles bass sur OV511 ou Terracam Pro)

     o Trust SpaceC@m Lite USB et SpaceC@m 100

     o Utopia USB Camera

     o ZoomCam USB et port parallle

  4.3. Puces SE401, SE402 et EP800

   Ce projet est en cours de ralisation. Les pilotes ainsi que
   d'autres informations utiles sont disponibles sur le site du
   projet  l'adresse
   http://members.brabant.chello.nl/~j.vreeken/se401
   [http://members.brabant.chello.nl/~j.vreeken/se401]. Lors de la
   rdaction de ce document, il tait ncessaire d'appliquer des
   correctifs et de recompiler le noyau pour que ces modles soient
   reconnus. Les pilotes conviennent pour le matriel suivant :

   Puces SE401 chipset via le pilote 'se401' :

     o Aox SE401

     o Philips PCVC665 USB VGA webcam 'Vesta Fun'

     o Kensington VideoCAM PC Camera (Modles 67014-67017)

   Puces SE402 et EP 800 via le pilote 'epcam'

     o Spypen Actor

     o Rimax Slim Multicam

     o Concord Eye-Q Easy

     o Creative PD1001

     o Chicony DC-100

     o Endpoints SE402 et EP800

  4.4. Webcam de type OmniVision

   Vous retrouverez dans cette catgorie une multitude de webcam et
   de dispositifs d'enregistrement de vido d'Omnivision, comme par
   exemple OV511(+), OV518(+), OV6620, OV6630, OV7610, et OV7620AE.

   Adresse du site du projet : http://alpha.dyndns.org/ov511
   [http://alpha.dyndns.org/ov511].

   Les modles pris en charge incluent :

     o Aiptek HyperVcam Home et Mobile

     o Amitech AWK-300

     o I-view NetView NV300M

     o TEVion MD9308

     o Intel Me2Cam

     o Dlink DSB C100, C300

     o Hawking Tech. UC-110, UC-300 et UC-310

     o Puretek PT-6007

     o Alpha Vision Tech AlphaCam SE modle AC-520

     o Creative Labs WebCam modle PD1001 avec puce OV518

     o Creative Labs WebCam 3, WebCam Go, Webcam Go Plus

     o Elecom UCAM-C1C20

     o Elta WEBCam 8211 PCC

     o Ezonics EZPhone Cam

     o Philips ToUCam XS (ancienne version avec puce OV518)

     o LG Electronics LPC-UM10

     o Lifeview diffrents modle USB Life TV

     o Genius VideoCam Express

     o AverMedia Intercam Elite

     o Maxxtro Cam22U

     o MediaForte MV300, PC Vision 300

     o Terratec TerraCam PRO et certains modles TerraCam

     o OmniVision ( l'exception de ceux avec une puce OV519)

     o TRENDNet TV-PC301

     o Trust Sp@ceC@m USB

     o Lifetec LT9388

     o BestBuy EasyCam U

     o Maxell Maxcam

     o TCE NetCam 310u

     o Medion MD9388

     o Webeye 2000B

     o Suma eON

     o Prochips PCA-3100

     o Ezonics EZ USB Cam II (les modles OV511+)

     o Waytech I-Pac VIC-30

     o Zoom Telephonics ZoomCam III USB (modle 1598)

  4.5. Logitech (anciennement Connectix) Quickcam

   Les QuickCam VC USB et sur port parallle sont gres par le
   pilote que vous trouverez [1]ici. Il est ncessaire d'appliquer un
   correctif et de recompiler le noyau pour utiliser ces modles.

   Le projet Quickcam Express Linux project propose deux pilotes
   diffrents pour certains modles, chacun tant autonome et ne
   requierant pas un correctif du noyau ou sa recompilation. Les
   pilotes qce-ga [http://qce-ga.sourceforge.net/] et qc-usb
   [http://www.ee.oulu.fi/~tuukkat/quickcam/quickcam.html]
   reconnaissent les modles suivants :

     o Logitech Quickcam Express

     o Quickcam Web

     o Legocam

     o Dexxa Webcam

     o Labtec Webcam

   Le pilote qc-usb est moins stable, mais est sens marcher mieux
   avec certains modles tels que la Quickcam Web. Pour plus de
   renseignements, rendez vous sur les sites mentionns plus haut.
   Note aux utilisateurs de RedHat : le pilote qce-ga ne compile pas
   correctement lorsqu'on utilise le noyau avec les modifications de
   RedHat. Ce problme a t rsolu, rfrez-vous  cette page
   [http://www.ee.oulu.fi/~tuukkat/quickcam/FAQ].

   Quelques unes des webcams Logitech peuvent tre utilises avec le
   pilote Philips Section 4.7,  Webcam USB Philips .

  4.6. Puces NW802

   Cette puce de DIVIO utilise ce pilote
   [http://nw802.sourceforge.net]. Quelques modles utilisables avec
   ce pilotes :

     o BTC SurfCam CMOS300k

     o Mustek WCam 300

     o Logitech QuickCam Pro USB (de la srie "anneau de mise au
       point fonc" )

  4.7. Webcam USB Philips

   Vous trouverez sur cette page
   [http://www.smcc.demon.nl/webcam/release.html#pwc] la dernire
   version du pilote ainsi que le matriel reconnu. Voici une partie
   des modles pris en charge :

     o PCA645VC

     o PCA646VC

     o PCVC675K Vesta, Vesta Pro et Vesta Scan

     o PCVC720K/40 ToUCam XS, ToUCam Fun, ToUCam Pro et ToUCam Scan

     o Askey VC010

     o Creative Labs Webcam 5, Pro Ex

     o Logitech 3000 et 4000 Pro, Notebook Pro, et Zoom

     o Samsung MPC-C10 et MPC-C30

     o Sotec Afina Eye

     o Visionite VCS UM100 et UC300

  4.8. Puces STV0680

   La version USB des webcams utilisant cette puce est prise en
   charge  partir du noyau 2.4.18 par le module stv680.o. Vous
   pouvez aussi rcuprer le code source  partir de la page du
   projet, http://stv0680-usb.sourceforge.net
   [http://stv0680-usb.sourceforge.net]. Ce pilote est utilisable
   avec les modles tels que Aiptek Pencam ou Nisis Quickpix 2.

   Si vous disposez d'une version srie, la plus populaire tant Scan
   e-Studio, consultez la page http://stv0680.sourceforge.net
   [http://stv0680.sourceforge.net].

  4.9. Winbond w9966cf

   C'est le pilote pour les puces Philips SAA7111 CCD des
   priphriques sur port parallle tels que pour les webcams
   Lifeview Flycam SUPRA. Il est inclus dans les derniers noyaux 2.4
   par la section 'video4linux'. Vous pouvez consulter le site du
   projet en anglais  l'adresse
   http://hem.fyristorg.com/mogul/w9966.html
   [http://hem.fyristorg.com/mogul/w9966.html]

  4.10. Xirlink C-it(TM) HDCS-1000 Webcams

   C'est le pilote des webcams de Xirlink, et qui peut tre utilis
   avec les modles IBM et Veo Stringay. La gestion de ces webcam est
   prsente dans le noyau Linux depuis les versions 2.2.12. Page du
   projet : http://www.linux-usb.org/ibmcam
   [http://www.linux-usb.org/ibmcam].

5. Framegrabbing Applications

  5.1. Xawtv

   Xawtv propose plusieurs outils pour accder aux priphriques
   vido, et le programme principal s'appelle Xawtv. Vous retrouverez
   la page en anglais de ce projet sur http://bytesex.org/xawtv
   [http://bytesex.org/xawtv]. Je vous conseille d'utiliser un paquet
   rpm, tgz ou deb dj existant pour l'installer ; mais si vous tes
   courageux ou curieux, vous trouverez le code source  partir du
   lien prcdent.

   La premire fois que vous essayez votre webcam et que vous estimez
   que la configuration est correcte, utilisez l'option -hwscan :

 $ xawtv -hwscan
 This is xawtv-3.72, running on Linux/i686 (2.4.21)
 looking for available devices

 /dev/v4l/video0: OK                     [ -device /dev/v4l/video0 ]
 type : v4l
 name : BT878(Hauppauge (bt878))
 flags: overlay capture tuner

 /dev/v4l/video1: OK                     [ -device /dev/v4l/video1 ]
 type : v4l
 name : IBM USB Camera
 flags:  capture

   ... et vous voyez donc alors apparatre les priphriques
   disponibles (attention, il est trs probable que le rsultat de
   cette commande vous donne quelque chose de trs diffrent). Tentez
   alors d'enregistrer  partir de votre priphrique vido  partir
   d'un xterm en lanant xawtv :

 $ xawtv -c /dev/video1
 This is xawtv-3.72, running on Linux/i686 (2.4.21)

   ... et (avec un peu de chance) vous devriez voir apparatre une
   fentre vous affichant l'enregistrement. Vous verrez peut-tre
   s'afficher des messages d'erreur sur votre xterm. Ils peuvent tre
   trs utiles pour comprendre les problmes de configuration
   existants. Si tous ces messages ne vous intresse pas car tout
   marche  ravir, lancez-le plutt la prochaine fois  partir du
   menu de votre gestionnaire de fentres. Vous obtiendrez plus
   d'informations au sujet des options de xawtv avec la commande man
   xawtv.

  5.2. MoTV

   MoTV est une rcriture de Xawtv qui utilisant Motif, et par
   consquent a un fonctionnement trs similaire  celui de Xawtv. Il
   est plus agrable  utiliser que Xawtv mais propose peu de
   nouvelles fonctionnalits. Il est disponible  partir de la page
   de Xawtv.

  5.3. Streamer

   Streamer est un programme en ligne de commande trs puissant vous
   permettant d'enregistrer facilement  partir de votre webcam ou de
   votre priphrique vido. Il a de fortes chances d'tre livr avec
   le paquet Xawtv (ou il faudra peut-tre le rcuprer sparemment
   comme avec Debian) et il est disponible sur la page de Xawtv
   Section 5.1,  Xawtv . C'est un trs bon programme pour
   automatiser le fonctionnement d'un priphrique vido. Par
   exemple, pour enregistrer une image JPEG  partir de la ligne de
   commande, en considrant que le priphrique vido est accessible
    partir de /dev/video1 :

 $ streamer -c /dev/video1 -b 16 -o fichier.jpeg

   ... o -b est le nombre de couleurs (en bpp, soit 15, 16, 24 ou
   32) et -o est le nom du fichier qui sera cr dans le rpertoire
   courant (spcifiez -o /chemin/fichier.jpg pour l'enregistrer
   ailleurs)

   Pour crer un fichier .avi :

 $ streamer -q -c /dev/video1 -f rgb24 -r 3 -t 00:30:00 -o /home/jhs/fichier.avi

   ... o -q est pour une excution 'silencieuse' (pas de messages),
   -f est le 'format' (rgb24 pour TrueColor ou avi), -r est le nombre
   d'images par seconde et -t est la dure de l'enregistrement (30
   minutes). Streamer peut enregistrer des vido en format non
   compress ou Quicktime(TM) (non Sorensen) ainsi que de l'audio.
   Consultez streamer --help pour en savoir plus.

  5.4. Motion

   Motion est un trs bon programme qui permet de rcuprer un signal
   vido d'une ou plusieurs webcam. Il peut enregistrer des 'photos'
   priodiquement, et lorsqu'il dtecte un mouvement, enregistrer au
   format mpeg ou lancer l'excution d'autres actions telles que
   l'envois d'un courrier lectronique ou excuter une commande. Il
   sait suivre et marquer gographiquement le mouvement qu'il
   dtecte, envoyer les fichiers via un serveur http vers votre site
   web, envoyer un flux vers une autre application, et bien plus
   encore. Il est utilisable  partir de la ligne de commande, et le
   nombre d'options disponibles peut faire un peu peur ; en revanche,
   un guide en ligne
   [http://www.lavrsen.dk/sources/webcam/motion_guide.htm] (en
   anglais) prsente de manire plus facilement comprhensible les
   commandes disponibles ainsi que l'criture du fichier de
   configuration. Vous retrouvez Motion sur
   http://motion.sourceforge.net [http://motion.sourceforge.net].

  5.5. Gqcam

   Gqcam [http://cse.unl.edu/~cluening/gqcam/] est une application
   graphique GTK qui tait  l'origine crite pour utiliser les
   webcams Connectix QuickCams et qui maintenant reconnat la quasi
   totalit des priphriques compatibles Video4Linux. Son interface
   est trs facile  utiliser pour visualiser, prendre des  photos 
   et configurer la webcam. Fortement recommand pour les dbutants
   et ceux qui n'ont pas envie de s'embter avec la ligne de commande
   et des fichiers de configuration  renseigner  la main.

  5.6. camE

   CamE est un programme en ligne de commande rsident qui procde 
   des captures d'image  partir de votre priphrique v41. Ces
   images peuvent tre ensuite archives ou transfres (vers un
   serveur web par exemple) via ftp ou scp. Vous pouvez superposer
   sur l'image d'autres images, ajouter l'heure ou tout autre texte
   dynamique  partir du fichier de configuration. Consultez la page
   de camE sur http://linuxbrit.co.uk/camE/
   [http://linuxbrit.co.uk/camE/] (en anglais) pour plus
   d'information.

  5.7. SANE

   SANE vous permettra d'accder  votre webcam, mme si c'est un
   modle rcent. Si vous avez l'habitude d'utiliser un numrisateur
   graphique (scanner) avec Linux, essayez plutt d'utiliser SANE
   pour capturer des images, car certains priphriques webcam
   apparaissent comme scanner. Consultez la section correspondante du
   Scanner-HOWTO sur
   http://www.traduc.org/docs/howto/lecture/Scanner-HOWTO/sane.html#getting-SANE
   [http://www.traduc.org/docs/howto/lecture/Scanner-HOWTO/sane.html#getting-SANE].

6. Problmes et Solutions

  6.1. Comment puis-je connatre le modle de la puce de ma webcam USB
  si elle n'est pas mentionne dans ce Guide Pratique ?

   Si vous avez une webcam usb (et le gestion du systme de fichiers
   avec /proc et usb), saisissez  partir de la ligne de commande :

 $ cat /proc/bus/usb/devices

   Vous devriez obtenir un message contenant entre autres quelque
   chose du type :

 T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
 D:  Ver= 1.01 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs=  1
 P:  Vendor=0545 ProdID=8080 Rev= 3.0a
 S:  Product=USB IMAGING DEVICE

   La ligne commenant par  T:  indique l'identifiant du bus USB o
   le priphrique est attach.  P:  indique les identifiants du
   fabricant et du produit, rfrencs sur la page du Projet Linux
   USB [http://www.linux-usb.org] (en anglais).

  6.2. Je n'arrive pas  trouver o est ma webcam dans /dev

   En considrant que le type de connexion est support et que votre
   webcam fonctionne, consultez Section 3.2,  Cration Manuelle de
   l'Accs  un Priphrique Vido .

  6.3. La webcam apparat prsente, mais je n'arrive pas  y accder

   Consultez la Section 3.3,  Groupes and droits .

  6.4. Le pilote de ma webcam existe uniquement non compil, et c'est 
  moi de le faire. Par o dois-je commencer ?

   Vrifiez d'abord que votre distribution Linux ne fournit pas une
   version prcompile du driver. Si ce n'est pas le cas, vrifiez
   bien d'avoir install le code source du noyau. Vous allez aussi
   avoir besoin au minimum du make GNU, gcc, binutils ainsi que
   probablement d'autres logiciels suivant votre distribution.
   Vrifiez que ces programmes sont correctement installs.
   Tlchargez le code source du pilote (que nous appellerons, dans
   cet exemple, source.tar.gz) et dsarchivez-le :

 $ tar -xvzf source.tar.gz

   Ensuite, dplacez-vous dans le dossier du noyau :

 # cd /usr/src/linux

   Saisissez les commandes suivantes pour prparer la compilation du
   noyau :

 # make oldconfig
 # make dep

   Et maintenant, revenez au dossier o vous avez dsarchiv le code
   source du pilote, et consultez les fichiers README et INSTALL pour
   connatre les oprations ncessaires  la compilation du pilote.
   Traditionnellement, quelque chose autour de  make   make all ,
    make install . En considrant que la compilation s'est bien
   pass, il suffit maintenant de charger le nouveau module avec la
   commande modprobe. En cas de problmes, consultez la Section 6.6,
    Ce document ne rpond pas  toutes mes questions .

  6.5. Ma webcam a un pilote qui ncessite un correctif de mon noyau.
  Comment faire ?

   Consultez la section concernant l'application de correctif
   [http://www.traduc.org/docs/HOWTO/lecture/Kernel-HOWTO.html] du
   Guide Pratique du Noyau sur traduc.org [http://www.traduc.org].

   Je vous propose avec toute l'humilit de circonstance ma mthode
   personnelle d'ajout de correctif. Vrifiez auparavant d'avoir
   satisfait tous les pr-requis que j'ai voqu ici Section 6.4,
    Le pilote de ma webcam existe uniquement non compil, et c'est 
   moi de le faire. Par o dois-je commencer ? .

   Premirement,  partir de la ligne de commande ou d'un xterm,
   dplacez-vous dans le dossier de la version du noyau que vous tes
   (ou que vous serez) en train d'utiliser avec le correctif de la
   webcam (qui sera nomm dans cet exemple patch.diff).

 # cd /usr/src/linux
 # patch -p1 -E patch.diff

   Vous devriez alors avoir un ou plusieurs messages indiquant que
   les  hunks were successfully applied,  c'est  dire que les
   modifications ont pu tre correctement apportes. Vous pouvez  ce
   moment-l lancer make menuconfig ou tout autre programme que vous
   souhaitez utiliser pour compiler le noyau, en activant les options
   ncessaires. Si les modifications n'ont pas pu tre correctement
   effectues ou si vous rencontrez d'autres problmes, consultez la
   page de manuel de patch et la Section 6.6,  Ce document ne rpond
   pas  toutes mes questions .

  6.6. Ce document ne rpond pas  toutes mes questions

   Consultez la liste de diffusion de video4linux mailing list
   https://listman.redhat.com/mailman/listinfo/video4linux-list
   [https://listman.redhat.com/mailman/listinfo/video4linux-list]
   (attention cependant, c'est une liste anglophone).

  6.7. Je voudrais contribuer au projet Video4Linux, par o dois-je
  commencer ?

   Consultez cette page  l'adresse
   http://www.thedirks.org/v4l2/peopleprojects.htm
   [http://www.thedirks.org/v4l2/peopleprojects.htm] (en anglais).

A. Gnu Free Documentation License

   Version 1.2, November 2002

   Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59
   Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is
   permitted to copy and distribute verbatim copies of this license
   document but changing it is not allowed.

   0. PREAMBLE

   The purpose of this License is to make a manual, textbook, or
   other functional and useful document "free" in the sense of
   freedom: to assure everyone the effective freedom to copy and
   redistribute it, with or without modifying it, either commercially
   or noncommercially. Secondarily, this License preserves for the
   author and publisher a way to get credit for their work, while not
   being considered responsible for modifications made by others.

   This License is a kind of "copyleft", which means that derivative
   works of the document must themselves be free in the same sense.
   It complements the GNU General Public License, which is a copyleft
   cense designed for free software.

   We have designed this License in order to use it for manuals for
   free software, because free software needs free documentation: a
   free program should come with manuals providing the same freedoms
   that the software does. But this License is not limited to
   software manuals; it can be used for any textual work, regardless
   of subject matter or whether it is published as a printed book. We
   recommend this License principally for works in which its purpose
   is instruction or reference.

   1. APPLICABILITY AND DEFINITIONS

   This License applies to any manual or other work, in any medium,
   that contains a notice placed by the copyright holder saying it
   can be distributed under the terms of this License. Such a notice
   grants a world-wide, royalty-free license, unlimited in duration,
   to use that work under the conditions stated herein. The
   "Document", below, refers to any such manual or work. Any member
   of the public is a licensee and is addressed as "you". You accept
   the license if you copy, modify, or distribute the work in a way,
   thus requiring permission under copyright law.

   A "Modified Version" of the Document means any work containing the
   Document or a portion of it, either copied verbatim, or with
   modifications and/or translated into another language.

   A "Secondary Section" is a named appendix or a front-matter
   section of the Document that deals exclusively with the
   relationship of the publishers or authors of the Document to the
   Document's overall subject (or to related matters) and contains
   nothing that could fall directly within that overall subject.
   (Thus, if the Document is in part a textbook of mathematics, a
   Secondary Section may not explain any mathematics.) The
   relationship could be a matter of historical connection with the
   subject or with related matters, or of legal, commercial,
   philosophical, ethical, or political position regarding them.

   The "Invariant Sections" are certain Secondary Sections in which
   titles are designated, as being those of Invariant Sections, in
   the notice that says that the Document is released under this
   License. If a section does not fit the above definition of
   Secondary, then it is not allowed to be designated as Invariant.
   The Document may contain zero Invariant Sections. If the Document
   does not identify any Invariant Sections, then there are none.

   The "Cover Texts" are certain short passages of text that are
   listed, as Front-Cover Texts or Back-Cover Texts, in the notice
   that says that the Document is released under this License. A
   Front-Cover Text may be at most five words, and a Back-Cover Text
   may be at most 25 words.

   A "Transparent" copy of the Document means a machine-readable
   copy, represented in a format where its specification is available
   to the general public, that is suitable for revising the document
   straightforwardly with generic text editors or (for images
   composed of pixels) generic paint programs or (for drawings) some
   widely available drawing editor, and that is suitable for input to
   text formatters or for automatic translation to a variety of
   formats suitable for input to text formatters. A copy made in an
   otherwise Transparent file format in which its markup, or absence
   of markup, has been arranged to thwart or discourage subsequent
   modification by readers is not Transparent. An image format is not
   Transparent if used for any substantial amount of text. A copy
   that is not "Transparent" is called "Opaque".

   Examples of suitable formats for Transparent copies include plain
   ASCII without markup, Texinfo input format, LaTeX input format,
   SGML or XML using a publicly available DTD, and
   standard-conforming simple HTML, PostScript or PDF designed for
   human modification. Examples of transparent image formats include
   PNG, XCF, and JPG. Opaque formats include proprietary formats that
   can be read and edited only by proprietary word processors, SGML
   or XML for which the DTD and/or processing tools are not generally
   available, and the machine-generated HTML, PostScript or PDF
   produced by some word processors for output purposes only.

   The "Title Page" means, for a printed book, the title page itself,
   plus such following pages as are needed to hold, legibly, the
   material this License requires to appear in the title page. For
   works in formats, which do not have any title page as such, "Title
   Page" means the text near the most prominent appearance of the
   work's title, preceding the beginning of the body of the text.

   A section "Entitled XYZ" means a named subunit of the Document in
   which its title either is precisely XYZ or contains XYZ in
   parentheses following text that translates XYZ in another
   language. (Here XYZ stands for a specific section name mentioned
   below, such as "Acknowledgements", "Dedications", "Endorsements",
   or "History".) To "Preserve the Title" of such a section, when you
   modify the Document, means that it remains a section "Entitled
   XYZ", according to this definition.

   The Document may include Warranty Disclaimers next to the notice
   which states that this License applies to the Document. These
   Warranty Disclaimers are considered to be included by reference in
   this License, but only as regards disclaiming warranties: any
   other implication that these Warranty Disclaimers may have is void
   and has no effect on the meaning of this License.

   2. VERBATIM COPYING

   You may copy and distribute the Document in any medium, either
   commercially or noncommercially, provided that this License, the
   copyright notices, and the license notice saying this License
   applies to the Document are reproduced in all copies, and that you
   add no other conditions whatsoever to those of this License. You
   may not use technical measures to obstruct or control the reading
   or further copying of the copies you make or distribute. However,
   you may accept compensation in exchange for copies. If you
   distribute a large enough number of copies you must also follow
   the conditions in section 3.

   You may also lend copies, under the same conditions stated above,
   and you may publicly display copies.

   3. COPYING IN QUANTITY

   If you publish printed copies (or copies in media that commonly
   have printed covers) of the Document, numbering more than 100, and
   the Document's license notice requires Cover Texts, you must
   enclose the copies in covers that carry, clearly and legibly, all
   these Cover Texts: Front-Cover Texts on the front cover, and
   Back-Cover Texts on the back cover. Both covers must also clearly
   and legibly identify you as the publisher of these copies. The
   front cover must present the full title with all words of the
   title equally prominent and visible. You may add other material on
   the covers in addition. Copying with changes limited to the
   covers, as long as they preserve the title of the Document and
   satisfy these conditions, can be treated as verbatim copying in
   other respects.

   If the required texts for either cover are too voluminous to fit
   legibly, you should put the first ones listed (as many as fit
   reasonably) on the actual cover, and continue the rest onto
   adjacent pages.

   If you publish or distribute Opaque copies of the Document
   numbering more than 100, you must either include a
   machine-readable Transparent copy along with each Opaque copy, or
   state in or with each Opaque copy a computer-network location from
   which the general network-using public has access to download
   using public-standard network protocols a complete Transparent
   copy of the Document, free of added material. If you use the
   latter option, you must take reasonably prudent steps, when you
   begin distribution of Opaque copies in quantity, to ensure that
   this Transparent copy will remain thus accessible at the stated
   location until at least one year after the last time you
   distribute an Opaque copy (directly or through your agents or
   retailers) of that edition to the public.

   It is requested, but not required, that you contact the authors of
   the Document well before redistributing any large number of
   copies, to give them a chance to provide you with an updated
   version of the Document.

   4. MODIFICATIONS

   You may copy and distribute a Modified Version of the Document
   under the conditions of sections 2 and 3 above, provided that you
   release the Modified Version under precisely this License, with
   the Modified Version filling the role of the Document, thus
   licensing distribution and modification of the Modified Version to
   whoever possesses a copy of it. In addition, you must do these
   things in the Modified Version:

   A. Use in the Title Page (and on the covers, if any) a title
   distinct from that of the Document, and from those of previous
   versions (which should, if there were any, be listed in the
   History section of the Document). You may use the same title as a
   previous version if the original publisher of that version gives
   permission.

   B. List on the Title Page, as authors, one or more persons or
   entities responsible for authorship of the modifications in the
   Modified Version, together with at least five of the principal
   authors of the Document (all of its principal authors, if it has
   fewer than five), unless they release you from this requirement.

   C. State on the Title page the name of the publisher of the
   Modified Version, as the publisher.

   D. Preserve all the copyright notices of the Document.

   E. Add an appropriate copyright notice for your modifications
   adjacent to the other copyright notices.

   F. Include, immediately after the copyright notices, a license
   notice giving the public permission to use the Modified Version
   under the terms of this License, in the form shown in the Addendum
   below.

   G. Preserve in that license notice the full lists of Invariant
   Sections and required Cover Texts given in the Document's license
   notice.

   H. Include an unaltered copy of this License.

   I. Preserve the section Entitled "History", Preserve its Title,
   and add to it an item stating at least the title, year, new
   authors, and publisher of the Modified Version as given on the
   Title Page. If there is no section Entitled "History" in the
   Document, create one stating the title, year, authors, and
   publisher of the Document as given on its Title Page, then add an
   item describing the Modified Version as stated in the previous
   sentence.

   J. Preserve the network location, if any, given in the Document
   for public access to a Transparent copy of the Document and
   likewise the network locations given in the Document for previous
   versions it was based on. These may be placed in the "History"
   section. You may omit a network location for a work that was
   published at least four years before the Document itself, or if
   the original publisher of the version it refers to gives
   permission.

   K. For any section Entitled "Acknowledgements" or "Dedications",
   Preserve the Title of the section, and preserve in the section all
   the substance and tone of each of the contributor acknowledgements
   and/or dedications given therein.

   L. Preserve all the Invariant Sections of the Document, unaltered
   in their text and in their titles. Section numbers or the
   equivalent are not considered part of the section titles.

   M. Delete any section Entitled "Endorsements". Such a section may
   not be included in the Modified Version.

   N. Do not retitle any existing section to be Entitled
   "Endorsements" or to conflict in title with any Invariant Section.

   O. Preserve any Warranty Disclaimers. If the Modified Version
   includes new front-matter sections or appendices that qualify as
   Secondary Sections and contain no material copied from the
   Document, you may at your option designate some or all of these
   sections as invariant. To do this, add their titles to the list of
   Invariant Sections in the Modified Version's license notice. These
   titles must be distinct from any other section titles. You may add
   a section Entitled "Endorsements", provided it contains nothing
   but endorsements of your Modified Version by various parties--for
   example, statements of peer review or that the text has been
   approved by an organization as the authoritative definition of a
   standard.

   You may add a passage of up to five words as a Front-Cover Text,
   and a passage of up to 25 words as a Back-Cover Text, to the end
   of the list of Cover Texts in the Modified Version. Only one
   passage of Front-Cover Text and one of Back-Cover Text may be
   added by (or through arrangements made by) any one entity. If the
   Document already includes a cover text for the same cover,
   previously added by you or by arrangement made by the same entity
   you are acting on behalf of, you may not add another; but you may
   replace the old one, on explicit permission from the previous
   publisher that added the old one.

   The author(s) and publisher(s) of the Document do not by this
   License give permission to use their names for publicity for or to
   assert or imply endorsement of any Modified Version.

   5. COMBINING DOCUMENTS

   You may combine the Document with other documents released under
   this License, under the terms defined in section 4 above for
   modified versions, provided that you include in the combination
   all of the Invariant Sections of all of the original documents,
   unmodified, and list them all as Invariant Sections of your
   combined work in its license notice, and that you preserve all
   their Warranty Disclaimers.

   The combined work need only contain one copy of this License, and
   multiple identical Invariant Sections may be replaced with a
   single copy. If there are multiple Invariant Sections with the
   same name but different contents, make the title of each such
   section unique by adding at the end of it, in parentheses, the
   name of the original author or publisher of that section if known,
   or else a unique number. Make the same adjustment to the section
   titles in the list of Invariant Sections in the license notice of
   the combined work.

   In the combination, you must combine any sections Entitled
   "History" in the various original documents, forming one section
   Entitled "History"; likewise combine any sections Entitled
   "Acknowledgements", and any sections Entitled "Dedications". You
   must delete all sections Entitled "Endorsements".

   6. COLLECTIONS OF DOCUMENTS

   You may make a collection consisting of the Document and other
   documents released under this License, and replace the individual
   copies of this License in the various documents with a single copy
   that is included in the collection, provided that you follow the
   rules of this License for verbatim copying of each of the
   documents in all other respects.

   You may extract a single document from such a collection and
   distribute it individually under this License, provided you insert
   a copy of this License into the extracted document and follow this
   License in all other respects regarding verbatim copying of that
   document.

   7. AGGREGATION WITH INDEPENDENT WORKS

   A compilation of the Document or its derivatives with other
   separate and independent documents or works, in or on a volume of
   a storage or distribution medium, is called an "aggregate" if the
   copyright resulting from the compilation is not used to limit the
   legal rights of the compilation's users beyond what the individual
   works permit. When the Document is included in an aggregate, this
   License does not apply to the other works in the aggregate which
   are not themselves derivative works of the Document.

   If the Cover Text requirement of section 3 is applicable to these
   copies of the Document, then if the Document is less than one half
   of the entire aggregate, the Document's Cover Texts may be placed
   on covers that bracket the Document within the aggregate, or the
   electronic equivalent of covers if the Document is in electronic
   form. Otherwise, they must appear on printed covers that bracket
   the whole aggregate.

   8. TRANSLATION

   Translation is considered a kind of modification, so you may
   distribute translations of the Document under the terms of section
   4. Replacing Invariant Sections with translations requires special
   permission from their copyright holders, but you may include
   translations of some or all Invariant Sections in addition to the
   original versions of these Invariant Sections. You may include a
   translation of this License, and all the license notices in the
   Document, and any Warranty Disclaimers, provided that you also
   include the original English version of this License and the
   original versions of those notices and disclaimers. In case of a
   disagreement between the translation and the original version of
   this License or a notice or disclaimer, the original version will
   prevail.

   If a section in the Document is Entitled "Acknowledgements",
   "Dedications", or "History", the requirement (section 4) to
   Preserve its Title (section 1) will typically require changing the
   actual title.

   9. TERMINATION

   You may not copy, modify, sublicense, or distribute the Document
   except as expressly provided for under this License. Any other
   attempt to copy, modify, sublicense, or distribute the Document is
   void and will automatically terminate your rights under this
   License. However, parties who have received copies, or rights,
   from you under this License will not have their licenses
   terminated so long as such parties remain in full compliance.

   10. FUTURE REVISIONS OF THIS LICENSE

   The Free Software Foundation may publish new, revised versions of
   the GNU Free Documentation License from time to time. Such new
   versions will be similar in spirit to the present version but may
   differ in detail to address new problems or concerns. See
   http://www.gnu.org/copyleft/.

   Each version of the License is given a distinguishing version
   number. If the Document specifies that a particular numbered
   version of this License "or any later version" applies to it, you
   have the option of following the terms and conditions either of
   that specified version or of any later version that has been
   published (not as a draft) by the Free Software Foundation. If the
   Document does not specify a version number of this License, you
   may choose any version ever published (not as a draft) by the Free
   Software Foundation.

   ADDENDUM: How to use this License for your documents

   To use this License in a document you have written, include a copy
   of the License in the document and put the following copyright and
   license notices just after the title page:

   Copyright (c) YEAR YOUR NAME. Permission is granted to copy,
   distribute, and/or modify this document under the terms of the GNU
   Free Documentation License, Version 1.2 or any later version
   published by the Free Software Foundation; with no Invariant
   Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of
   the license is included in the section entitled "GNU Free
   Documentation License".

   If you have Invariant Sections, Front-Cover Texts and Back-Cover
   Texts, replace the "with...Texts." line with this: with the
   Invariant Sections being LIST THEIR TITLES, with the Front-Cover
   Texts being LIST, and with the Back-Cover Texts being LIST. If you
   have Invariant Sections without Cover Texts, or some other
   combination of the three, merge those two alternatives to suit the
   situation.

   If your document contains nontrivial examples of program code, we
   recommend releasing these examples in parallel under your choice
   of free software license, such as the GNU General Public License,
   to permit their use in free software.

