/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.
/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
depmod -a
.
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.
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.
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.
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.
kerneld
ou kmod
insérez le module irda
avec modprobe irda
.
lsmod
. Les modules irda
et irtty
devraient
apparaître.
/var/log/messages
devrait vous afficher
"Serial connection established
" maintenant.
irmanager -d1
, cela lancera les programmes nécessaires, tels
irattach
.
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
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 !
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).
Le standard IrDA(TM) reconnaît trois vitesses différentes :