34.3. Transmission de données infrarouge

IrDA (Infrared Data Association) est un standard de communication sans fil utilisant les infrarouges. De nombreux ordinateurs portables sont aujourd'hui équipés d'un émetteur-récepteur compatible IrDA, permettant la communication avec d'autres périphériques, comme les imprimantes, les modems, les réseaux locaux ou d'autres portables. La vitesse de transfert varie entre 2 400 bps et 4 Mbps.

Il existe deux modes de fonctionnement IrDA. Le mode standard, SIR, accède au port infrarouge par le biais d'une interface série. Ce mode fonctionne sur quasiment tous les systèmes et est suffisant pour la plupart des besoins. Le mode FIR, plus rapide, nécessite un pilote spécial pour la puce IrDA. Par manque de pilotes appropriés, tous les types de puces ne sont pas pris en charge en mode FIR. Sélectionnez le mode IrDA souhaité dans le BIOS de votre ordinateur. Le BIOS indique également quelle interface série est utilisée en mode SIR.

Des informations sur IrDA sont disponibles sur le site de Werner Heuser à l'adresse http://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html. Vous pouvez également consulter le site Web du projet Linux IrDA, à l'adresse http://irda.sourceforge.net/.

34.3.1. Logiciel

Les modules de kernel requis sont inclus dans le paquetage kernel. Le paquetage irda fournit les applications nécessaires à la prise en charge de l'interface infrarouge. La documentation est accessible sous /usr/share/doc/packages/irda/README après l'installation du paquetage.

34.3.2. Configuration

Le service système IrDA n'est pas démarré automatiquement à l'amorçage du système. Utilisez le module IrDA de YaST pour l'activer. Un seul paramètre peut être modifié dans ce module : l'interface série utilisée par le périphérique infrarouge. La fenêtre de test affiche deux sorties. L'une d'elles correspond à la sortie de la commande irdadump, qui répertorie tous les paquets IrDA envoyés et reçus. Cette sortie doit comporter le nom de l'ordinateur ainsi que les noms de tous les périphériques infrarouges situés dans la plage de transmission. Un exemple de message de ce type est visible dans la Section 34.3.4, « Dépannage ». Tous les périphériques vers lesquels une connexion IrDA existe sont répertoriés dans la partie inférieure de la fenêtre.

Le service IrDA consomme une quantité non négligeable d'électricité. En effet, un paquet de détection est envoyé à intervalles de quelques secondes pour détecter les autres périphériques de ce type. Si vous travaillez en mode batterie, il convient donc de démarrer la fonction IrDA uniquement si nécessaire. Saisissez la commande rcirda start pour l'activer ou rcirda stop pour la désactiver. Tous les modules de kernel requis sont automatiquement chargés quand cette interface est activée.

Une configuration manuelle peut être effectuée dans le fichier /etc/sysconfig/irda. Ce fichier contient une seule variable, IRDA_PORT, qui détermine l'interface à utiliser en mode SIR.

34.3.3. Utilisation

Des données peuvent être envoyées vers le fichier de périphérique /dev/irlpt0 pour être imprimées. Le fichier de périphérique /dev/irlpt0 fonctionne exactement comme l'interface câblée /dev/lp0 normale, si ce n'est que les données d'impression sont envoyées sans fil à l'aide de rayons infrarouges. Pour l'impression, vérifiez que l'imprimante se trouve dans le champ visuel de l'interface infrarouge de l'ordinateur et que la prise en charge infrarouge est démarrée.

Une imprimante utilisée via l'interface infrarouge peut être configurée à l'aide du module d'imprimante de YaST. Étant donné qu'elle n'est pas détectée automatiquement, configurez-la manuellement en cliquant sur Autre (non détecté). Dans la boîte de dialogue suivante, sélectionnez Imprimante IrDA. irlpt0 est généralement la bonne connexion. Des informations détaillées sur l'utilisation d'imprimantes sous Linux sont disponibles dans le Chapitre 11, Fonctionnement de l'imprimante.

La communication avec d'autres hôtes et avec des téléphones mobiles ou d'autres périphériques similaires intervient via le fichier de périphérique /dev/ircomm0. Les téléphones mobiles Siemens S25 et Nokia 6210, par exemple, peuvent se connecter à Internet par le biais de l'interface infrarouge à l'aide de l'application wvdial. La synchronisation de données avec un périphérique Palm Pilot est également possible, à condition que le paramètre de périphérique de l'application correspondante ait été réglé sur /dev/ircomm0.

Si vous le souhaitez, vous pouvez ne prendre en compte que les périphériques prenant en charge l'imprimante ou les protocoles IrCOMM. Les périphériques prenant en charge le protocole IROBEX, comme le Palm Pilot 3Com, sont accessibles à l'aide d'applications spéciales, comme irobexpalm et irobexreceive. Reportez-vous au IR-HOWTO (http://tldp.org/HOWTO/Infrared-HOWTO/) pour plus d'informations. Les protocoles pris en charge par le périphérique sont répertoriés entre crochets après le nom du périphérique dans la sortie de irdadump. La prise en charge du protocole IrLAN est encore en « cours de développement. »

34.3.4. Dépannage

Si des périphériques connectés au port infrarouge ne répondent pas, utilisez la commande irdadump (en tant que root) pour vérifier si l'autre périphérique est reconnu par l'ordinateur. Un résultat semblable à celui de l'Exemple 34.1, « Sortie de irdadump » apparaît normalement quand une imprimante Canon BJC-80 se trouve dans le champ visuel de l'ordinateur :

Exemple 34.1. Sortie de irdadump

21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14) 
21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14)
21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14)
21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14)
21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14)
21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14)
21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC-80 
                        hint=8804 [Printer IrCOMM ] (23) 
21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* earth 
                        hint=0500 [ PnP Computer ] (21)

Vérifiez la configuration de l'interface s'il n'y a pas de sortie ou si l'autre périphérique ne répond pas. Vérifiez que l'interface adéquate est utilisée. L'interface infrarouge se situe parfois dans /dev/ttyS2 ou dans /dev/ttyS3 et une interruption différente de l'IRQ 3 est parfois utilisée. Ces paramètres peuvent être vérifiés et modifiés dans le menu de configuration du BIOS de quasiment tous les ordinateurs portables.

Une simple caméra vidéo peut également servir à déterminer si la diode infrarouge s'allume. En effet, la plupart des caméras vidéo permettent de visualiser les infrarouges, invisibles pour l'oeil humain.