Les HOWTO Linux...
Page suivante - Page précédente - Table des matières
5. Configuration
5.1 Configuration générale
- Tout d'abord vous devriez mettre vos périphériques infrarouges à portée l'un de l'autre. Bien que le service Linux/IrDA détecte peut être automatiquement les nouveaux périphériques, j'ai bonne expérience de la configuration quand les périphériques sont à portée l'un de l'autre.
- Gardez vos périphériques infrarouges ensembles, dans un espace d'un mètre maximum et dans un angle de 30 degrés. Ils doivent être en vis à vis. Si cela n'est pas possible, utilisez un miroir (un CD de M$ non utilisé fera l'affaire).
- Ajoutez les lignes suivantes à votre
/etc/conf.modules
:
Je ne suis plus tout à fait sûr de ces paramètres. Il y a des informations contradictoires sur les page de Dag Brattli et sur la liste. Ces paramètres étaient utilisés avec les anciens paquetages Linux/IrDA, ces paramètres ont certainement changés dans les versions 2.2.x des noyaux.alias tty-ldisc-11 irtty # alias char-major-60 ircomm_tty # Si vous voulez le support IrCOMM
- Allez faire un tour dans
/etc/irda
. ces fichiers sont similaires à ceux dans/etc/pcmcia
. Editez/etc/irda/drivers
pour que cela soit en accord avec votre configuration. La majorité des gens utiliserontirattach
depuis ce fichier. les fichiers sont :Makefile network* network.redhat* serial drivers network.opts obex printer
- Lancez un
depmod -a
.
5.2 IrManager
Dag Brattli a écrit : IrManager [...]. est un démon utilisateur qui s'inspire et qui est assez similaire à cardmgr utilisé pour contrôler les cartes PCMCIA.
IrManager recevra les événements qui proviennent de l'espace noyau de
la pile du protocole. Quand IrManager reçoit un événement, il peut exécuter des
commandes shell ou des scripts, par conséquent, j'ai ajouté le répertoire
/etc/irda
pour contenir ces scripts. [...]
Par exemple, si IrLMP découvre un périphérique qui peut fournir un service IrLAN, et qu'aucun client IrLAN ne s'est enregistré, alors, IrLMP enverra un événement à IrManager et lui fera faire un "modprobe" sur le module requis. [...]
Lorsque les clients (applications utilisateurs) sont prêts à effectuer la
configuration des paramètres de communication et de l'utilisateur, ils peuvent
également contacter IrManager, de façon à ce qu'il exécute le bon script. Par
exemple, IrLAN enverra un événement EVENT_IRLAN_START quand le canal de
données sera prêt pour échanger des trames ethernet. Quand IrManager reçoit
cet événement, il exécute /etc/irda/network start <devname>
pour
configurer l'interface réseau. Ce script network est d'ailleurs le même que
celui utilisé par le code PCMCIA, et vu que j'utilise sa variante RedHat, il
finira par exécuter /sbin/ifup <devname>
.
Par conséquent, en utilisant l'IrManager, j'ai "juste" à faire cela quand je démarre la pile :
irattach /dev/ttyS2 &
irmanager -d 1 # -d 1 signifie : démarre la reconnaissance automatique
et quand mon portable découvre le fournisseur IrLAN (un HP Netbeamer dans mon
cas) il demandera à IrManager de charger le module
irlan_client
. Quand la connexion est établie et prête, il demandera
l'exécution de /etc/irda/network start eth0
. Si la connexion est
perdue, il lui demandera de supprimer l'interface en lançant
/etc/irda/network stop eth0
.[...]
C'est tout ce que vous avez à faire si vous utiliser une RedHat. Si vous
utilisez une distribution qui n'a pas /sbin/ifup
, alors, vous devriez
copier /etc/pcmcia/network.opts
vers /etc/irda/network.opts
ou
configurer le fichier vous même.
Si vous voulez utiliser le serveur IrLAN, vous aurez quand même à faire un
modprobe irlan_server
avant de lancer irmanager
sans-d 1
.
Et tout comme le cardmgr
, vous aurez (et si vous le voulez) un bip
quand la connexion est établie et prête et quand elle est déconnectée !!!
J'espère que nous pourrons ajouter de tels scripts pour tous les autres
services/clients qui ont besoin d'une configuration dans l'espace
utilisateur. Cela serait super d'avoir un script /etc/irda/printer
pour
configurer les imprimantes compatibles IrDA(TM) de telle sorte que si vous
entrez dans le champ d'une telle imprimante, IrManager charge le module
irlpt_client
et configure aussi ce qui doit l'être pour utiliser cette
imprimante.
J'espère aussi que nous pourrons utiliser le fichier de configuration pour configurer les ports et les pilotes IrDA(TM). Quelque chose dans le style :
Device Drivers
module "irtty" script="irattach /dev/ttyS2"
module "smc_ircc" irq=11 port=0x34f
de telle sorte que IrManager soit capable de charger et démarrer tout ça quand
il est exécuté. De cette façon, il serait juste de lancer IrManager depuis
/etc/rc.d/init.d/irda
et le reste sera plug & play. Il ne serait
plus nécessaire de démarrer manuellement les programmes et de configurer les
périphériques. Pour l'instant, lorsque irmanager
reçoit les événements
suivants, il fera :
EVENT_IRLAN_START, démarre et configure le périphérique avec /sbin/ifup
<dev>
EVENT_IRLAN_STOP, ferme l'interface avec /sbin/ifdown <dev>
cela peut bien sur être changé simplement par l'utilisateur, si ce n'est pas la façon qu'il a de le faire.
5.3 Pilotes de bas niveau
Il y a trois sortes de pilotes de bas niveau : SIR, dongle et FIR. Si le bon pilote est trouvé par le noyau, vous aurez un message ressemblant à :
IrDA irda_device irda0 registered.
SIR
- Essayez de trouver quel port série est utilisé par le périphérique
infrarouge. Vous pouvez le faire en regardant ce que donne
dmesg
. Si le support série est sous forme de module vous pouvez faire uninsmod serial
. Cherchez une entrée telle :
Si ce n'est pas le cas, soit vous n'avez pas activé le support infrarouge dans le BIOS ou votre périphérique infrarouge n'est pas détecté par le noyau. Pour l'instant, je ne connais que deux portables qui ont ce comportement, le HP OmniBook 800 et les Toshiba Libretto. Je ne suis pas certain du rôle que joue le PnP dans la détection du port IR. Si vous n'êtes pas sûr, essayez et donnez moi le résultat.Serial driver version 4.25 with no serial options enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A #Permier port série /dev/ttyS0 ttyS01 at 0x3000 (irq = 10) is a 16550A #ex. port IR ttyS02 at 0x0300 (irq = 3) is a 16550A #ex. port modem PCMCIA
- Dans certaines situations, vous aurez peut être à faire un
setserial /dev/ttyS<0-2> port 0xNNNN irq M
pour donner les bonnes valeurs à votre port infrarouge série, surtout si le port série est sur une ligne série séparée. Normalement, il n'est pas nécessaire de modifier ces valeurs ! Pour plus d'informations, référez vous à la FAQ ci dessous. - Si vous n'utilisez pas
kerneld
oukmod
insérez le module irda avecmodprobe irda
. - Faites un
lsmod
. Les modulesirda
etirtty
devraient apparaître. - Un coup d'oeil dans
/var/log/messages
devrait vous afficher "Serial connection established
" maintenant. - Tapez
irmanager -d1
, cela lancera les programmes nécessaires, telsirattach
. - Donnez à
irattach
un peu de temps (ex: sept secondes), pour détecter les autres périphériques infrarouges. Ensuite, regardez ce que vous affiche le noyau dans/var/log/messages
. Cela devrait ressembler aux lignes suivantes (j'ai supprimé quelques lignes qui n'étaient pas en relation avec Linux/IrDA) :
Jan 2 12:57:26 japh kernel: ttyS00 at 0x03f8 (irq = 4) is a 16550A
Jan 2 12:57:26 japh kernel: ttyS02 at 0x03e8 (irq = 4) is a 16550A
Jan 2 12:57:26 japh kernel: Linux Support for the IrDA (tm) protocols (Dag Brattli)
Jan 2 12:59:09 japh syslog: executing: 'echo 1 > /proc/sys/net/irda/discovery'
Jan 2 12:59:09 japh syslog: Setting discovery to 1 exited with status 1
Jan 2 12:59:09 japh syslog: + 0.1 Fri Jul 25 11:45:26 1997 Dag Brattli
Jan 2 12:59:09 japh syslog: + 0.1 Fri Jul 25 11:45:26 1997 Dag Brattli
Jan 2 12:59:09 japh syslog: Serial connection established.
Jan 2 12:59:09 japh kernel: IrDA irda_device irda0 registered.
Jan 2 13:01:22 japh syslog: executing: './drivers start '
Jan 2 13:01:22 japh syslog: Serial connection established.
Jan 2 13:01:42 japh syslogd: Printing partial message
Jan 2 13:01:42 japh 0.1 Fri Jul 25 11:45:26 1997 Dag Brattli
Jan 2 13:02:49 japh kernel: IrDA Discovered: japh
Jan 2 13:02:49 japh kernel: Services: Computer
Connexion des dongles - Adaptateurs infrarouges sur port série.
Les dongles supportés actuellement sont le Extended Systems Inc. ESI-9680 JetEye, le Tekram IRmate 210B, le ACTiSYS IR220L et 2\20L+, le Greenwich GIrBIL.
Dag Brattli a écrit (modifié par wh) : "Pour utiliser un dongle, vous aurez à faire un truc comme :
modprobe tekram # ou esi ou actisys
irmanager -d 1 #
irattach -d tekram # ou -d esi ou -d actisys
Comme vous pouvez le voir, vous avez toujours à utiliser l'option -d
avec irattach
vu qu'il est possible d'avoir deux ports séries
utilisant deux dongles différents au même moment (le tty que vous liez doit
savoir à quel dongle il a à faire). Donc, si vous avez deux dongles et deux
ports séries, vous aurez à faire un truc comme cela :
modprobe tekram
modprobe esi
irattach /dev/ttyS0 -d esi &
irattach /dev/ttyS1 -d tekram &
PS : Je n'essaierais pas de mettre les deux dongles l'un en face de l'autre, car je ne sais pas trop quelle serait la réaction de la pile :-)
Comme je n'ai pas de nouveaux dongles ACTiSYS 220L+ sous la main, je ne peut
pas les tester. Et comme ces nouveaux dongles supportent une vitesse
supplémentaire (28400bps), vous devez spécifier le dongle différemment avec
irattach
de telle sorte que le noyau sache quel dongle vous utilisez
(et quel QoS peut être utilisé) :
irattach /dev/ttyS0 -d actisys # pour le dongle 220L
irattach /dev/ttyS0 -d actisys+ # pour le dongle 220L+
L'implémentation actuelle du support des dongles n'a aucun état précis, il n'est donc pas possible d'utiliser les deux dongles ACTiSYS (220L et 220L+ en même temps (connecté à deux ports séries) pour l'instant. Si vous avez besoin de le faire, envoyez moi un e-mail (Dag Brattli) et j'y songerais peut être !"
Note : Quand j'ai essayé d'utiliser un modem infrarouge (Swissmod 56Ki, construit par Telelink AG) connecté à mon portable (l'IrDA n'y marche qu'avec Windows 95 du à un matériel non standard) j'ai du désactiver le support infrarouge depuis le BIOS pour le faire marcher !
Connexion des dongles - Adaptateur infrarouge pour carte mère
Le support pour le dongle ACTiSYS IR2000 a été implémenté dans un fichier
appelé px87108
que vous pouvez soit compiler dans le noyau, soit en
tant que module :
irmanager -d 1
modprobe pc87108
ou insérez modprobe pc87108
dans le fichier /etc/irda/drivers
(je pense).
Infrarouge rapide (FIR = Fast InfraRed)
Le standard IrDA(TM) reconnaît trois vitesses différentes :
- SIR = IrDA standard (Standard IrDA), jusqu'à 115kbps IrDA,
- MIR = IrDA à vitesse moyenne (Medium Speed IrDA),
- FIR = IrDA rapide (Fast IrDA) (4Mbps),
- VFIR = IrDA très rapide (Very Fast IrDA) (16Mbps), semble devenir le standard futur
Page suivante - Page précédente - Table des matières