SDB:Linux et IrDA
Version: 6.3
Sommaire
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 exempleminicom
ou mêmepppd
. Le téléphone portable Siemens S25, par exemple, supporte ce protocole et il est ainsi possible de se connecter à Internet avec wvdial. -
IrLPT
ouPrinter
- É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 sousNom 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 commandelpr
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>