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 (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 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. 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™, i.Link™)

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. 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 en choisissant celui qui correspond à votre version du noyaux. De plus, vous aurez besoin de libraw1394. Vous trouverez un très bon guide d'installation sur le site linux1394.org mentionné précédemment.

La IEEE1394 Digital Camera List 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 (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.