Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > ebac5394abc62d2e0b61505bfba9712a > files > 241

howto-text-fr-2006-5mdv2010.0.noarch.rpm

                       Guide pratique des webcams

  Version française du Webcam HOWTO

  Howard Shane

   <hshane CHEZ austin POINT rr POINT com>

   Traduction française : Denis Chatelain

   Relecture de la version française : Éric Madesclair

   Préparation de la publication de la v.f. : Jean-Philippe Guérard

   Version : 1.1.fr.1.1

   2005-09-25

   +----------------------------------------------------------------+
   | Historique des versions                                        |
   |----------------------------------------------------------------|
   | Version 1.1.fr.1.1        | 2005-09-25      | DLC, JPG         |
   |----------------------------------------------------------------|
   | Intégration des corrections suggérées par Gérard Delafond      |
   |----------------------------------------------------------------|
   | Version 1.1.fr.1.0        | 2004-10-04      | DLC, ÉM, JPG     |
   |----------------------------------------------------------------|
   | Première traduction française                                  |
   |----------------------------------------------------------------|
   | 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               |
   |----------------------------------------------------------------|
   | Première publication "officielle" (Initial Release / Reviewed  |
   | by TLDP)                                                       |
   |----------------------------------------------------------------|
   | Version 0.5               | 2003-11-07      | JHS              |
   |----------------------------------------------------------------|
   | Dernières modification après les commentaires de la liste de   |
   | diffusion v41 (Final revision after v4l mailing list feedback) |
   |----------------------------------------------------------------|
   | Version 0.1               | 2003-10-12      | JHS              |
   |----------------------------------------------------------------|
   | Première version proposée (Initial draft posted)               |
   +----------------------------------------------------------------+

   Résumé

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

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

   Table des matières

   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 utilisées 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 parallèle générique pour
                des webcams parport

   3. Création et accès aux périphériques vidéo

                3.1. Système de périphériques (Device Filesystem)

                3.2. Création Manuelle de l'Accès à un Périphérique
                Vidéo

                3.3. Groupes and droits

   4. Informations spécifiques 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. Problèmes et Solutions

                6.1. Comment puis-je connaître le modèle de la puce
                de ma webcam USB si elle n'est pas mentionnée dans ce
                Guide Pratique ?

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

                6.3. La webcam apparaît présente, mais je n'arrive
                pas à y accéder

                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 nécessite un correctif
                de mon noyau. Comment faire ?

                6.6. Ce document ne répond 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 périphériques vidéo avec Linux. Il
   présente comment activer et configurer votre noyau pour votre
   périphérique vidéo ainsi que les logiciels permettant de
   l'exploiter au mieux. En revanche il ne traite pas des différents
   formats d'image et de vidéo, des fonctionnalités particulières
   d'un périphérique, de l'encodage ou de la conversion de formats
   vidéo.

  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 publiée par la Free Software
   Foundation, sans section invariante, sans texte de première ou de
   quatrième 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 entraîner des
   pertes de données. Dans tous les cas, restez prudent, et comprenez
   que, bien qu'il soit peu probable que des erreurs se soient
   glissées 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 propriété 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 perçu 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 représente
   en aucun cas une préférence 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 première 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 dernière version
   anglaise de ce document, et la dernière traduction française à
   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
   vidéo sous Linux possible et en particulier les équipes v41 et
   v412, ainsi que Gerd Knorr et les frères 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'hésitez pas à faire parvenir tout commentaire relatif à la
   version française de ce document à <commentaires CHEZ traduc POINT
   org> en précisant 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 utilisées dans ce document

   Les conventions suivantes sont utilisées dans ce document et sont
   mises en évidences ici pour ceux qui ne possèdent pas une bonne
   maîtrise de l'accès et du contrôle des couches basses du système
   d'exploitation Linux, qui s'effectue quasiment exclusivement en
   utilisant la ligne de commande Bash.

   Premièrement, les noms de fichier sont référencés au sein d'un
   paragraphe de la manière suivante : /chemin/fichier

   Les commandes Linux sont exécutées (ou 'appelées') à 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 dièse :

 #

   ... 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 accéder à 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 destinées à être exécuter à
   partir de la ligne de commande Bash, mais inclues dans un
   paragraphe du document sont présentées habituellement comme ça :
   une commande

   Les commandes et les résultats de cette commande peuvent être
   aussi soulignées avec une présentation écran au sein même de leur
   paragraphe ou en-tête :

 $ 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 [Entrée] a
   été frappée après la commande, potentiellement suivie par une
   autre ligne affichant le résultat (de même que pour l'exemple de
   date ci-dessus)

2. Support du type de connexion

  2.1. Webcam USB

   Si vous possédez une webcam USB, il est très probable que ce
   matériel soit reconnu par Linux. Il y deux moyens d'utiliser les
   périphériques USB avec Linux. La première méthode, traditionnelle,
   est de passer par le noyau Linux, la deuxième d'utiliser la
   librairie libusb. Si vous préférez 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'accéder aux fonction USB en
   restant dans l'espace utilisateur courant sans avoir besoin de
   paramètrer le noyau Linux ou de devoir insérer des modules. La
   plupart des distributions proposent actuellement libusb
   [http://libusb.sourceforge.net/] (certaines installent cette
   librairie par défaut). Si votre noyau ne reconnaît pas les
   périphériques USB, il vous suffit simplement d'installer cette
   librairie pour pouvoir accéder à ces périphériques. Vous devez
   avoir la gestion des systèmes de fichiers USB activée dans votre
   noyau. Cette option est activée par défaut dans la plupart des
   noyaux des distributions. Pour vous en assurer, tapez la ligne de
   commande suivante :

 $ cat /proc/filesystems

   Vous devriez voir apparaître (parmis d'autres informations) :

 nodev   usbdevfs
 nodev   usbfs

   Il se peut que vous ayez à monter le système de fichiers usbdevfs
   pour voir apparaître 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 déjà
   activé. Que le module soit activé en tant que module statique ou
   dynamique. Vous ne pouvez utiliser qu'une méthode à 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 déjà
   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 démarrage. En général, les webcams USB ont
   besoin du module usbvideo pour fonctionner correctement. Si vous
   ne voyez pas ce module apparaître dans la liste, le module peut
   être présent mais non chargé. Pour le savoir, vous pouvez utiliser
   la commande suivante :

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

   En remplaçant X.XX par le numéro de version de votre noyau. Le
   message suivant est un exemple de ce que vous pourrez obtenir avec
   un noyau qui est prêt pour une utilisation de webcams USB où la
   gestion est assurée dans son intégralité par des modules. Seules
   les lignes pertinentes ont été conservées.

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

   (Un petit truc pour les nouveaux : si le résultat 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
   possédez pas 'less', utilisez | more : ls -R
   /lib/modules/X.XX/kernel/drivers | less , ou vous pouvez aussi
   mettre le résultat 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 nécessaire, vous
   pouvez toujours recompiler votre noyau. Si vous n'avez pas
   l'habitude de compiler vous-même 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 expliquées en détail.

   Vous devez avoir le support du bus USB générique dans votre noyau
   Linux, c'est à dire les fonctionnalités de usb-ohci et usb-ehci ou
   tout autre pilote de bus USB de votre choix. La gestion de l'USB
   est présente dans les dernières version du noyau 2.2. Pour obtenir
   des informations plus détaillées 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 connaître la liste
   des modules chargés, 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 nécessaires à l'exécution
   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 chargés 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
   démarrage 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 démarrage 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'accès aux webcams IEEE 1394 requiert l'utilisation d'une carte
   PCI IEEE 1394. La prise en charge des interfaces IEEE existe
   depuis les premières versions du noyau Linux 2.4. Si vous avez la
   chance de posséder ce type d'équipement, vous pourrez trouver en
   anglais des informations généralistes sur la prise en charge de
   Linux du bus IEEE 1394 sur la page www.linux1394.org
   [http://www.linux1394.org]. Si vous possédez une version du noyau
   antérieur à 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 très bon guide d'installation sur le site
   linux1394.org mentionné précédemment.

   La IEEE1394 Digital Camera List
   [http://www.tele.ucl.ac.be/PEOPLE/DOUXCHAMPS/ieee1394/cameras/] de
   Damien Douxchamps donne un très bon résumé des capacités des
   appareils IEEE 1394 ainsi que le statut de la gestion de chaque
   modèle.

  2.3. Prise en charge du port parallèle générique pour des webcams
  parport

   Pour les noyaux 2.2 ou 2.4 le support du port parallèle doit être
   activée statiquement ou par un module (les noyaux habituels ont
   généralement cette option activée par défaut). Si vous le
   souhaitez, vous pouvez consulter des informations générales
   [http://www.torque.net/linux-pp.html] (en anglais au sujet des
   périphériques attachés au port parallèle avant de vous lancer.
   Pour être certain que le module parport est chargé, vous pouvez
   vérifier 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 à déterminer l'adresse
   matérielle du périphérique pour pouvoir la spécifier lors du
   lancement de la commande modprobe. L'adresse habituelle est 0x378
   pour une machine de type x86 ; dans le cas d'un port parallèle
   intégré à la carte mère ou ISA, les valeurs peuvent être 0x278 et
   0x3BC. L'adresse de base des ports parallèle ajoutés avec une
   carte PCI ne suis pas d'habitude particulière. Vous pouvez aussi
   utiliser plusieurs périphériques en utilise les modules parport_pc
   ou parport_arc, mais le détail de ces mises en place sort du
   domaine de ce document. ATTENTION : Vérifiez 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 préférence 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 numérisation de documents. Ces
   paramètres peuvent être modifiés à partir du menu du BIOS, tout du
   moins sur les architectures x86.

3. Création et accès aux périphériques vidéo

  3.1. Système de périphériques (Device Filesystem)

   Devfs [http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.html], ou
   'device filesystem', est présent en tant qu'option du noyau Linux
   depuis les dernières 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 énormément la gestion des périphériques. Le
   démon devfsd ajoute et supprime dynamiquement les périphériques de
   votre système sans intervention nécessaire de l'utilisateur. Vous
   pouvez vérifier que devfsd est lancé en regardant s'il est présent
   dans la liste des processus obtenue avec la commande ps -A. Le
   démon utilise très peu de mémoire. Si vous utilisez devfsd/devfs,
   vous pouvez probablement ignorer la section suivante étant donné
   que le procédé archaïque de création des n½uds de périphérique
   aura déjà été effectué pour vous, et il ne reste plus à ce
   moment-là qu'à trouver les liens symboliques appropriés 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 déjà présent.
   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
   démarrage sans installer le démon devfsd votre machine ne démarra
   plus !

   Avec devfs, en revanche, vous devez toujours assigner les
   permissions d'accès 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 obsolète par
   l'apparition d'un démon ne faisant pas parti du noyau, le démon
   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. Création Manuelle de l'Accès à un Périphérique Vidéo

   Si vous n'utilisez ni devfs et devfsd, ni libusb, ni udev, voici
   comment procéder. Dans le cas contraire, passez à l'étape
   suivante. Un accès à un périphérique peut être créer comme un bloc
   (comme pour un disque), un fifo (premier arrivé, premier sorti) ou
   un périphérique de caractères représentant le reste du matériel.
   Chaque périphérique est caractérisé par un numéro majeur et un
   numéro mineur permettant au kernel de connaître sa nature et la
   façon d'y accèder. Ces nombres ne sont pas arbitraires.

   Les n½uds de périphérique Video4linux utilisés pour accéder aux
   périphériques vidéos (ce qui inclus les webcams) ont le numéro
   majeur 81 et un numéro mineur 0, 1, 2, ... et ainsi de suite. Pour
   commencer, vérifiez le contenu de /dev pour connaître le nom
   utilisé par votre distribution pour désigner le périphérique
   vidéo. Certaines distributions peuvent placer les périphériques
   vidéo à 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 accès
   périphérique déjà présents (parce qu'ils ont été créés par votre
   distribution ou par devfsd), vous n'avez plus qu'à modifier les
   permissions d'accès à votre gré. Au cas contraire, il vous faudra
   créer ces n½uds de périphérique vous-même. Vous pouvez utiliser le
   script suivant que j'ai récupéré à 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 n½ud par défaut
     rm -f /dev/$1
     ln -s /dev/${1}0 /dev/$1
 }

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

 echo "*** Nouveau noms de périphérique ***"
 makedev video 0
 makedev radio 64
 makedev vtx 192
 makedev vbi 224
 # "*** anciens noms d'accès de périphérique (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 exécutable (chmod u+x MAKEDEV). Ensuite,
   exécutez-le en tant qu'utilisateur root :

 # ./MAKEDEV

  3.3. Groupes and droits

   Il vaut mieux généralement vérifier que votre compte utilisateur a
   des droit d'accès aux périphériques suffisants une fois que tous
   les modules sont chargés et les accès aux périphériques créés.
   Pour améliorer la sécurité, je vous conseille de créer un groupe
   particulier ayant accès à ces périphériques. 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
   périphériques similaires. Voici ce que je vous conseille pour
   modifier les droits d'accès aux périphériques du dossier /dev :

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

   ...où root.video sont respectivement le nouvel utilisateur et le
   nouveau groupe ayant l'accès au périphérique. Bien entendu, la
   commande exacte variera suivant votre système et le type d'accès
   aux périphériques. Il est important de changer les droits d'accès
   sur le n½ud du périphérique et non sur les liens symboliques. Les
   droits sur les liens symboliques ne sont pas modifiés que par un
   changement de l'accès au périphérique 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 apparaître quelque chose comme :

 video:x:44:

   ...où « 44 » est le numéro correspondant au groupe video. Dans
   notre cas, aucun utilisateur fait parti du groupe video (dans le
   cas contraire ils seraient mentionnés après la dernière 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 spécifiques par type de webcam

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

   Il est important de noter que si votre webcam n'apparaît pas dans
   la liste, la manière la plus simple de savoir si votre webcam est
   reconnue est de connaître la version de la puce générique utilisée
   et son fabricant. Ces informations se trouvent généralement 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 utilisée pour le
   modèle, abonnez-vous à la liste de diffusion video4linux-list
   [https://listman.redhat.com/mailman/listinfo/video4linux-list].

  4.1. 3com HomeConnect PC Digital Webcam

   Ce modèle 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 sûrement à
   recompiler le noyau après 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 utilisée pour la
   fabrication de webcam USB et sur port parallèle, notamment par les
   modèles suivants :

     o Aiptek HyperVcam Fun USB (modèle non basé sur OV511)

     o Creative Video Blaster WebCam II USB et port parallèle

     o CVideo-Mail Express port parallèle

     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 modèles basés sur OV511 ou Terracam Pro)

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

     o Utopia USB Camera

     o ZoomCam USB et port parallèle

  4.3. Puces SE401, SE402 et EP800

   Ce projet est en cours de réalisation. 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
   rédaction de ce document, il était nécessaire d'appliquer des
   correctifs et de recompiler le noyau pour que ces modèles soient
   reconnus. Les pilotes conviennent pour le matériel suivant :

   Puces SE401 chipset via le pilote 'se401' :

     o Aox SE401

     o Philips PCVC665 USB VGA webcam 'Vesta Fun'

     o Kensington VideoCAM PC Camera (Modèles 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 catégorie une multitude de webcam et
   de dispositifs d'enregistrement de vidéo 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 modèles 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 modèle AC-520

     o Creative Labs WebCam modèle 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 différents modèle 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 modèles 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 modèles OV511+)

     o Waytech I-Pac VIC-30

     o Zoom Telephonics ZoomCam III USB (modèle 1598)

  4.5. Logitech (anciennement Connectix) Quickcam

   Les QuickCam VC USB et sur port parallèle sont gérées par le
   pilote que vous trouverez [1]ici. Il est nécessaire d'appliquer un
   correctif et de recompiler le noyau pour utiliser ces modèles.

   Le projet Quickcam Express Linux project propose deux pilotes
   différents pour certains modèles, 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 modèles 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 modèles tels que la Quickcam Web. Pour plus de
   renseignements, rendez vous sur les sites mentionnés 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 problème a été résolu, référez-vous à cette page
   [http://www.ee.oulu.fi/~tuukkat/quickcam/FAQ].

   Quelques unes des webcams Logitech peuvent être utilisées 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 modèles utilisables avec
   ce pilotes :

     o BTC SurfCam CMOS300k

     o Mustek WCam 300

     o Logitech QuickCam Pro USB (de la série "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 dernière
   version du pilote ainsi que le matériel reconnu. Voici une partie
   des modèles 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 récupérer 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 modèles tels que Aiptek Pencam ou Nisis Quickpix 2.

   Si vous disposez d'une version série, 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
   périphériques sur port parallèle 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 modèles IBM et Veo Stringay. La gestion de ces webcam est
   présente 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 accéder aux périphériques
   vidéo, 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 déjà existant pour l'installer ; mais si vous êtes
   courageux ou curieux, vous trouverez le code source à partir du
   lien précédent.

   La première 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 apparaître les périphériques
   disponibles (attention, il est très probable que le résultat de
   cette commande vous donne quelque chose de très différent). Tentez
   alors d'enregistrer à partir de votre périphérique vidéo à partir
   d'un xterm en lançant 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 apparaître une
   fenêtre vous affichant l'enregistrement. Vous verrez peut-être
   s'afficher des messages d'erreur sur votre xterm. Ils peuvent être
   très utiles pour comprendre les problèmes de configuration
   existants. Si tous ces messages ne vous intéresse pas car tout
   marche à ravir, lancez-le plutôt la prochaine fois à partir du
   menu de votre gestionnaire de fenêtres. Vous obtiendrez plus
   d'informations au sujet des options de xawtv avec la commande man
   xawtv.

  5.2. MoTV

   MoTV est une réécriture de Xawtv qui utilisant Motif, et par
   conséquent a un fonctionnement très similaire à celui de Xawtv. Il
   est plus agréable à utiliser que Xawtv mais propose peu de
   nouvelles fonctionnalités. Il est disponible à partir de la page
   de Xawtv.

  5.3. Streamer

   Streamer est un programme en ligne de commande très puissant vous
   permettant d'enregistrer facilement à partir de votre webcam ou de
   votre périphérique vidéo. Il a de fortes chances d'être livré avec
   le paquet Xawtv (ou il faudra peut-être le récupérer séparemment
   comme avec Debian) et il est disponible sur la page de Xawtv
   Section 5.1, « Xawtv ». C'est un très bon programme pour
   automatiser le fonctionnement d'un périphérique vidéo. Par
   exemple, pour enregistrer une image JPEG à partir de la ligne de
   commande, en considérant que le périphérique vidéo 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 répertoire
   courant (spécifiez -o /chemin/fichier.jpg pour l'enregistrer
   ailleurs)

   Pour créer 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 exécution '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 durée de l'enregistrement (30
   minutes). Streamer peut enregistrer des vidéo 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 très bon programme qui permet de récupérer un signal
   vidéo d'une ou plusieurs webcam. Il peut enregistrer des 'photos'
   périodiquement, et lorsqu'il détecte un mouvement, enregistrer au
   format mpeg ou lancer l'exécution d'autres actions telles que
   l'envois d'un courrier électronique ou exécuter une commande. Il
   sait suivre et marquer géographiquement le mouvement qu'il
   détecte, 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) présente de manière plus facilement compréhensible 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 reconnaît la quasi
   totalité des périphériques compatibles Video4Linux. Son interface
   est très facile à utiliser pour visualiser, prendre des « photos »
   et configurer la webcam. Fortement recommandé pour les débutants
   et ceux qui n'ont pas envie de s'embêter avec la ligne de commande
   et des fichiers de configuration à renseigner à la main.

  5.6. camE

   CamE est un programme en ligne de commande résident qui procède à
   des captures d'image à partir de votre périphérique v41. Ces
   images peuvent être ensuite archivées ou transférées (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'accéder à votre webcam, même si c'est un
   modèle récent. Si vous avez l'habitude d'utiliser un numérisateur
   graphique (scanner) avec Linux, essayez plutôt d'utiliser SANE
   pour capturer des images, car certains périphériques 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. Problèmes et Solutions

  6.1. Comment puis-je connaître le modèle de la puce de ma webcam USB
  si elle n'est pas mentionnée dans ce Guide Pratique ?

   Si vous avez une webcam usb (et le gestion du système 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 commençant par « T: » indique l'identifiant du bus USB où
   le périphérique est attaché. « P: » indique les identifiants du
   fabricant et du produit, référencés 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 considérant que le type de connexion est supporté et que votre
   webcam fonctionne, consultez Section 3.2, « Création Manuelle de
   l'Accès à un Périphérique Vidéo ».

  6.3. La webcam apparaît présente, mais je n'arrive pas à y accéder

   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 ?

   Vérifiez d'abord que votre distribution Linux ne fournit pas une
   version précompilée du driver. Si ce n'est pas le cas, vérifiez
   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.
   Vérifiez que ces programmes sont correctement installés.
   Téléchargez le code source du pilote (que nous appellerons, dans
   cet exemple, source.tar.gz) et désarchivez-le :

 $ tar -xvzf source.tar.gz

   Ensuite, déplacez-vous dans le dossier du noyau :

 # cd /usr/src/linux

   Saisissez les commandes suivantes pour préparer la compilation du
   noyau :

 # make oldconfig
 # make dep

   Et maintenant, revenez au dossier où vous avez désarchivé le code
   source du pilote, et consultez les fichiers README et INSTALL pour
   connaître les opérations nécessaires à la compilation du pilote.
   Traditionnellement, quelque chose autour de « make » « make all »,
   « make install ». En considérant que la compilation s'est bien
   passé, il suffit maintenant de charger le nouveau module avec la
   commande modprobe. En cas de problèmes, consultez la Section 6.6,
   « Ce document ne répond pas à toutes mes questions ».

  6.5. Ma webcam a un pilote qui nécessite 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 méthode
   personnelle d'ajout de correctif. Vérifiez 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 ? ».

   Premièrement, à partir de la ligne de commande ou d'un xterm,
   déplacez-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 apportées. Vous pouvez à ce
   moment-là lancer make menuconfig ou tout autre programme que vous
   souhaitez utiliser pour compiler le noyau, en activant les options
   nécessaires. Si les modifications n'ont pas pu être correctement
   effectuées ou si vous rencontrez d'autres problèmes, consultez la
   page de manuel de patch et la Section 6.6, « Ce document ne répond
   pas à toutes mes questions ».

  6.6. Ce document ne répond 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.