<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>3. Création et accès aux périphériques vidéo</title><link href="style.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.68.1" name="generator"><link rel="start" href="index.html" title="Guide pratique des webcams"><link rel="up" href="index.html" title="Guide pratique des webcams"><link rel="prev" href="ar01s02.html" title="2. Support du type de connexion"><link rel="next" href="ar01s04.html" title="4. Informations spécifiques par type de webcam"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">3. Création et accès aux périphériques vidéo</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ar01s02.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s04.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="dev-intro"></a>3. Création et accès aux périphériques vidéo</h2></div></div></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="devfsd"></a>3.1. Système de périphériques (Device Filesystem) </h3></div></div></div><p> <a href="http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.html" target="_top"> Devfs</a>, 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 <span><strong class="command">ps -A</strong></span>. 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 <code class="filename">/dev</code>. </p><p> 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. <span class="emphasis"><em>ATTENTION : </em></span>Le seul autre paquet dont vous aurez besoin est 'devfsd' qui est fournis avec votre distribution Linux. <span class="emphasis"><em>ATTENTION : </em></span>Si vous activez le montage de devicefs lors du démarrage sans installer le démon devfsd votre machine ne démarra plus !</p><p> Avec devfs, en revanche, vous devez toujours assigner les permissions d'accès correctes.</p><p> 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. </p><p> 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 :<a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ" target="_top">http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ</a></p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="dev-manual"></a>3.2. Création Manuelle de l'Accès à un Périphérique Vidéo</h3></div></div></div><p> 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.</p><p> 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 <code class="filename">/dev</code> 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 <code class="filename">/dev</code> comme par exemple <code class="filename">/dev/video0, /dev/video1</code>...etc. D'autres distributions les placeront dans <code class="filename">/dev/v4l</code> ou dans le dossier <code class="filename">/dev/video</code>. 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 : <code class="filename">linux/Documentation/video4linux/bttv/MAKEDEV</code> : </p><pre class="screen"> #!/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 </pre><p> 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 (<span><strong class="command">chmod u+x MAKEDEV</strong></span>). Ensuite, exécutez-le en tant qu'utilisateur root : </p><pre class="screen"> # ./MAKEDEV </pre></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="permissions"></a>3.3. Groupes and droits</h3></div></div></div><p> 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 <code class="filename">/dev</code> : </p><pre class="screen"> # chown root.video /dev/usb/video1* </pre><p> ...où <span><strong class="command">root.video</strong></span> 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. </p><p> Pour savoir si votre compte fait parti du groupe en question, en tant que root utilisez la commande suivante : <span><strong class="command">grep -e video /etc/group</strong></span>. Vous devriez voir apparaître quelque chose comme : </p><pre class="screen"> video:x:44: </pre><p> ...où « <span class="quote">44</span> » 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 « <span class="quote">jhs</span> » au groupe « <span class="quote">video</span> », la commande sera : </p><pre class="screen"> # adduser jhs video </pre><p> Ensuite, il suffit d'ajouter les droits en lecture et en écriture : </p><pre class="screen"> # chmod g+rw /dev/v4l/video0 </pre><p> ...où <span><strong class="command">g+rw</strong></span> signifie ajouter le droit en lecture (<span><strong class="command">r</strong></span>) et le droit en écriture (<span><strong class="command">w</strong></span>) pour le <span><strong class="command">g</strong></span>roup. Consultez la documentation de chmod (<span><strong class="command">man chmod</strong></span> ou <span><strong class="command">info chmod</strong></span>) pour plus d'information. </p></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ar01s02.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ar01s04.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">2. Support du type de connexion </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> 4. Informations spécifiques par type de webcam</td></tr></table></div></body></html>