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 :
    alias tty-ldisc-11 irtty          #
    alias char-major-60 ircomm_tty    # Si vous voulez le support IrCOMM
    
    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.
  • 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 utiliseront irattach 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 un insmod serial. Cherchez une entrée telle :
    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
    
    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.
  • 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 ou kmod insérez le module irda avec modprobe irda.
  • Faites un lsmod. Les modules irda et irtty 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, tels irattach.
  • 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 :

  1. SIR = IrDA standard (Standard IrDA), jusqu'à 115kbps IrDA,
  2. MIR = IrDA à vitesse moyenne (Medium Speed IrDA),
  3. FIR = IrDA rapide (Fast IrDA) (4Mbps),
  4. VFIR = IrDA très rapide (Very Fast IrDA) (16Mbps), semble devenir le standard futur
Jusqu'à 115,200 bps, beaucoup de contrôleurs infrarouges fonctionnent comme un port série. Jusqu'à 4Mbps, ils marchent dans le mode "FIR". Actuellement, seuls deux contrôleurs sont supportés : NationalSemiConductor NSC PC87108 (utilisé dans les IBM Thinkpad 560X) et la puce Winbond W83977AF (utilisé dans le PC Corel Netwinder). Vous pouvez lancer le service FIR en chargeant le modules approprié. Linux/IrDA se chargera de détecter vos périphériques à ce moment là.


Page suivante - Page précédente - Table des matières