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

5. Configuration

5.1 Configuration générale

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

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