Devfs, 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
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
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.