SDB:Linux et IrDA

Aller à : navigation, rechercher


Version: 6.3

Sujet

Un périphérique doit être relié via un port infrarouge.

Informations de fond

Presque tous les laptops ainsi que quelques périphériques sont dotés d'une interface infrarouge intégrée pour la transmission sans fil de données. Pour établir une communication entre ces périphériques, on utilise le protocole IrDA qui a été standardisé par Infrared Data Association.

Vous trouverez des informations sur l'implémentation pour Linux du protocole IrDA sous l'URL http://www.cs.uit.no/linux-irda/. Des informations détaillées sur IrDA et Linux sont également fournies par IrDA HOWTO.

Presque toutes les interfaces infrarouge intégrées dans les PC sont accessibles de la même manière que les interfaces série. Celà signifie que le pilote série de Linux détecte cette interface et la configure comme une interface série normale. Un module du noyau supplémentaire qui accède au pilote série permet l'utilisation de l'interface infrarouge.

Linux supporte la communication avec la plupart des périphériques qui utilisent le protocole IrDA. Plus précisément: Linux supporte actuellement les protocoles:

  • IrCOMM - Émule une interface série via la connexion infrarouge. Le pilote dans le noyau Linux fournit une simulation d'interface série /dev/ircomm0 à laquelle on peut accéder avec les programmes courants pour le contrôle de périphériques sur interface série, par exemple minicom ou même pppd. Le téléphone portable Siemens S25, par exemple, supporte ce protocole et il est ainsi possible de se connecter à Internet avec wvdial.
  • IrLPT ou Printer - Émule une interface parallèle via la connexion infrarouge. Le pilote dans le noyau Linux fournit une simulation d'interface parallèle /dev/irlpt0 qui se comporte de la même manière que le port imprimante avec câble /dev/lp0. On accède à une imprimante sur port infrarouge de la même manière qu'à une imprimante sur port parallèle normal. La seule différence est que le nom de l'interface est maintement /dev/irlpt0 au lieu de /dev/lp0. Ce protocole est supporté par exemple par l'imprimante portable Canon-BJC 80 qui peut être utilisée sous Linux avec le pilote bjc600 de Ghostscript ou par l'imprimante HP LaserJet 6P/MP.
  • IrLAN - Ce protocole permet de connecter deux ou plusieurs machines. Malheureusement le module du noyau est encore au stade expérimental. Dans les cas où ce support fonctionne, le pilote du noyau met à disposition une interface réseau `irlan0' pouvant être configurée au moyen des outils ifconfig/route de la même manière que l'interface `eth0'.
  • IrOBEX - Ce protocole est utilisé par les Palmtops et autres ordinateurs "Handheld". Il existe, pour le support de ce protocole, quelques programmes sous Linux permettant par exemple d'établir une communication avec le Palm Pilot de 3Com.

Prérequis

À partir de SuSE Linux 6.3, les périphériques sur port infrarouge sont supportés. Le paquetage préconfiguré irda inclut tous les programmes nécessaires pour accéder à la plupart des interfaces infrarouge. Le paquetage kernmod contient tous les modules nécessités par le noyau pour l'accès à l'interface infrarouge.

Configuration de l'interface

Vérifiez sous quelle adresse d'E/S et sous quelle interruption vous pouvez accéder à l'interface infrarouge. L'utilisation de /dev/ttyS1 et de l'interruption 3 est prévue par défaut. Elle correspond à l'utilisation de l'adresse d'E/S 0x2f8.

Si toutes ces conditions préliminaires sont remplies, vous pouvez commencer dès maintenant. Démarrez alors IrDA avec la commande rcirda start. Après un démarrage effectué avec succès, vous pourrez contrôler si tout se passe bien avec le programme irdadump. Si le démarrage du support infrarouge a fonctionné, vous devriez voir apparaître sur l'écran, à la fréquence de 3 secondes, l'affichage suivant:

terre:~ # irdadump
13:42:57.118679 xid:cmd d04496e2 > ffffffff S=6 s=0 (14)
13:42:57.208957 xid:cmd d04496e2 > ffffffff S=6 s=1 (14)
13:42:57.298645 xid:cmd d04496e2 > ffffffff S=6 s=2 (14)
13:42:57.388923 xid:cmd d04496e2 > ffffffff S=6 s=3 (14)
13:42:57.478670 xid:cmd d04496e2 > ffffffff S=6 s=4 (14)
13:42:57.568914 xid:cmd d04496e2 > ffffffff S=6 s=5 (14)
13:42:57.658705 xid:cmd d04496e2 > ffffffff S=6 s=* terre hint=0500 [ PnP Computer ] (23)

Il s'agit ici des paquets `de découverte' (`exchange station identification frame" - donc `xid'). Lorsque vous aurez placé un autre périphérique infrarouge à portée de vue, celui-ci devrait répondre à ces paquets `xid'. Ceci a l'aspect suivant:

09:12:56.756986 xid:cmd 84663133 > ffffffff S=6 s=0 (14)
09:12:56.846938 xid:cmd 84663133 > ffffffff S=6 s=1 (14)
09:12:56.936963 xid:cmd 84663133 > ffffffff S=6 s=2 (14)
09:12:57.026938 xid:cmd 84663133 > ffffffff S=6 s=3 (14)
09:12:57.116931 xid:cmd 84663133 > ffffffff S=6 s=4 (14)
09:12:57.206934 xid:cmd 84663133 > ffffffff S=6 s=5 (14)
09:12:57.286939 xid:rsp 84663133 < 556ecd9e S=6 s=5 BJC-80 hint=8804 [ Printer IrCOMM ] (23)
09:12:57.296982 xid:cmd 84663133 > ffffffff S=6 s=* terre hint=0500 [ PnP Computer ] (23)

Dans le cas où l'autre périphérique ne se manifesterait pas, vérifiez les paramètres matériels (adresses d'E/S, interruptions) de votre laptop et comparez-les avec les paramètres contenus dans le fichier /etc/rc.config. Les variables sont IRDA_PORT pour l'interface série à utiliser et IRDA_IRQ pour l'interruption à utiliser.

L'affichage d'irdadump vous fait aussi savoir quels protocoles sont supportés par l'autre périphérique. Dans l'exemple cité plus haut, le périphérique BJC-80 utilise les protocoles Printer et IrCOMM. On peut donc accéder à ce périphérique, par exemple en tant qu'imprimante, via l'interface /dev/irlpt0.

Si vous voulez intégrer en permanence le support infrarouge, vous pouvez positionner la variable START_IRDA à yes dans le fichier /etc/rc.config. Après cette modification, IrDA sera démarré immédiatement après l'amorçage.

Configuration d'une imprimante infrarouge

Si le test d'interface a été réalisé avec succès et si vous souhaitez maintenant configurer votre imprimante infrarouge, vous pouvez le faire avec le programme de configuration yast:

  • Lancez yast et sélectionnez Administration du système->Intégrer le matériel dans le système->Configurer les imprimantes.
  • Procédez de la même manière que pour la configuration d'une imprimante `normale'. Sélectionnez Connectée sur port: Port parallèle et sous Nom du périphérique: /dev/irlpt0.
  • Après configuration de l'imprimante et nouveau démarrage du service d'impression par la commande rclpd restart, vous devriez pouvoir accéder comme d'habitude à l'imprimante par la commande lpr ou à partir d'applications.

Configuration d'une connexion modem (par exemple à un cellulaire)

Exécutez les commandes suivantes pour utiliser le modem intégré dans le cellulaire:

rm /dev/modem
ln -s /dev/ircomm0 /dev/modem

Vous pourrez ensuite utiliser le modem intégré dans le cellulaire, par exemple avec minicom ou wvdial, pour établir une communication. Configurez le modem de la manière décrite dans le manuel se rapportant aux modems série normaux. Consultez laliste de compatibilité afin de savoir si vous pouvez utiliser votre cellulaire sous Linux.

Échange de données entre deux machines Linux

Le protocole IrLAN a été prévu pour l'échange de données entre deux ou plusieurs machines. Mais actuellement, il survient parfois quelques problèmes lors de la reconnaissance automatique de la machine avec laquelle la communication a été établie.

Le protocole PPP, utilisé via l'interface infrarouge émulée, fonctionne de façon très fiable.

Placez pour cela les deux machines dans le champ de vision l'une de l'autre et lancez sur l'une des machines le démon PPP en utilisant par exemple la commande suivante

terre:~# pppd /dev/ircomm0 10.0.0.1:10.0.0.2

Lancez sur l'autre machine pppd de la manière suivante

soleil:~# pppd /dev/ircomm0

Il est alors établi une connexion ppp entre les 2 interfaces infrarouge de ces deux machines exemples. La machine `terre' assigne à la machine `soleil' l'adresse IP 10.0.0.2 et il est attribué à l'interface PPP de `terre' l'adresse IP 10.0.0.1. Vous pouvez donc, à partir de `soleil', atteindre la machine `terre' avec l'adresse IP 10.0.0.1 et utiliser les services réseau habituels pour la communication entre ces machines (telnet, ftp, nfs etc).

Il peut éventuellement s'avérer nécessaire de désactiver sur la machine terre l'option noipdefault. Placez pour cela en commentaire la ligne correspondante dans le fichier /etc/ppp/options. <keyword>irda,linur/ir,infrarouge,infrared,notebook,laptop</keyword>