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

6. Protocoles et connexions spécifiques

6.1 Connexion imprimante - IrLPT

IrLPT est en phase de développement active en ce moment. La partie cliente devrait marcher, mais le serveur pourrait planter.

  • Supprimer toutes les impressions en attente avec lprm "*".
  • Si vous n'utilisez pas kerneld faites un modprobe irtty.
  • Faites un modprobe irlpt_client.
  • Vérifiez que le module est bien chargé avec lsmod. Il devrait y avoir irda, irtty et irlpt_client
  • cat /proc/misc vous donne le numéro mineur du périphérique. C'est le premier chiffre sur la ligne avec irlpt0.
  • faites un su pour devenir root, et faites un mknod /dev/irlpt0 c 10 <numéro mineur>. Note : quelque chose comme ./MAKEDEV irlpt0 n'est toujours pas possible, mais un load_misc irlpt marche, bien que je ne puisse pas le confirmer.
  • Essayez d'écrire un petit fichier vers /dev/irlpt0 en cat FILE >/dev/irlpt0 (ne pensez pas au format, c'est juste un test). Pour moi, ça n'a pas toujours marché, mais je n'ai jamais compris pourquoi.
  • La meilleure façon est de changer votre /etc/printcap pour utiliser plutôt /dev/irlpt0 ou même à la place de /dev/lp1. Référez vous au Printing-HOWTO pour plus de détails.
  • Pour imprimer plus facilement, utilisez un logiciel d'impression tel APSFILTER, MagicFilter EZ-Magic (avec la RedHat il devrait aussi y avoir une interface graphique pour cette chose là). Faites toujours une copie de /etc/printcap avant :-).
  • Exemple pour APSFILTER avec une imprimante HP 6P (non postscript, HP 6MP est postscript). Les deux questions utiles sont :

    "Avez vous une interface (s)série ou (p)parallèle ?" Réponse "p"

    "Quelle est le nom du périphérique pour votre imprimante parallèle ?" Réponse "/dev/irlpt0"

  • Redémarrez le démon d'impression avec kill -HUP <PID de lpd>. Si vous utilisez un autre démon d'impression, utilisez la commande appropriée.
  • Regardez si l'indicateur de connexion de votre imprimante montre des signes d'activité, par exemple, sur les HP 6P/6MP le petit voyant vert au dessus du port infrarouge s'allume (en bas à gauche, près du bac à papier).
  • Je n'ai jamais réussi à imprimer des documents de plus d'environ 10 pages jusqu'à présent. Mais cela dépend peut être de la mémoire de mon système (16Mo). Mais il semble qu'il y ait un problème logiciel aussi, Thomas Davis a écrit : "Je ... limiterais IrLPT pour qu'il ne prenne pas trop de mémoire lors de l'impression d'un gros fichier.".

Takahide Higuchi a rapporté : "J'ai testé IrCOMM avec une imprimante (Canon BJC-80v) ayant un port IrDA et le protocole IrCOMM (pas IrLPT). J'ai pu imprimer de petits textes, mais il se peut que cela cause facilement un blocage total lorsque j' essaye d'imprimer un fichier postscript avec gs.".

Sur la page de Thomas Davis http://www.jps.net/tadavis/irda, on peut lire que pour utiliser le serveur IrLPT, il faut :

/sbin/insmod irlpt_server
/sbin/mknod /dev/irlptd c 10 `grep irlptd /proc/misc|cut -f 1`

A ce moment là, le serveur IrLPT est prêt à recevoir des fichiers à imprimer. Maintenant, tout ce dont vous avez besoin est un script :

#!/bin/sh
#
while (true)
do
cat /dev/irlptd | lpr
done

6.2 Connexion LAN - IrLAN

  • Vous pouvez connecter votre ordinateur sous Linux en utilisant IrLAN avec un autre périphérique, par exemple, une autre machine Linux avec IrLAN, un HP NetBeamer ou une machine Windows9* avec une interface infrarouge.
  • Dag Brattli a écrit : "Si vous voulez utiliser IrLAN, vous devez faire un modprobe irlan_client avant ifup eth0. J'ai du supprimer toute la partie request_module() car cela nécessite un contexte non disponible dans le noyau.".
  • Lancez ifconfig eth0 up <addresse_ip> netmask <masque_sous_réseau> pour le configurer avec une adresse IP et d'autres paramètres. Si le protocole est toujours en mémoire, vous pourrez commencer à communiquer. Il est possible d'utiliser l'outil netcfg de la RedHat pour le faire, cela rend les choses plus faciles. La prochaine fois, vous aurez juste à faire un /sbin/ifup eth0.
  • Testez l'interface réseau en la pingant. Pour plus de détails, référez vous au NET3-HOWTO.
  • N'oubliez pas d'ajouter une route, ex : route add default gw <ip_passerelle> ou route add -host <cible> dev eth0.
  • Pingez une autre IP, pour tester la connexion.
  • Pour des raisons de test, je recommande de n'utiliser qu'un seul portable et une seule interface infrarouge dans la même pièce. Si il y a des problèmes, regardez quels sont les différents modes possibles pour l'interface infrarouge. Testez les...

Pour une carte ou un dongle ACTiSYS FIR, vous aurez à faire :

irmanager -d1
/sbin/modprobe pc87108  # Supprimer irattach de /etc/irda/drivers, ou
 # substituer irattach par modprobe !

Sur la machine 1 :

modprobe irlan_client # Pas vraiment nécessaire, vu que irmanager devrait le faire !

Sur la machine 2 (si vous n'avez pas un point d'accès)

modprobe irlan_server

Ne compilez pas irlan_server dans le noyau, car il n'aime pas ça du tout pour l'instant ! Vous devriez avoir configuré /etc/sysconfig/network-scripts/ircfg-eth0 avec le bon réseau si vous utilisez deux machines. Si vous avez un point d'accès, alors, le paramétrage par défaut devrait être bon.

Remarquez que dans le dernier patch (2.2.0-irda1), irlan_client devrait appeler le périphérique irlan0 par défaut, mais il est possible de modifier ce comportement en donnant eth=1 comme option à irlan_client (modprobe irlan_client eth=1 ou options irlan_client eth=1 dans /etc/conf.modules).

La prochaine version d'IrLAN ne sera qu'un seul module, alors, vous n'aurez pas à penser au fait qu'il vous faut le client et/ou le serveur d'installé.

Il est possible de faire un ifconfig irlan0 -broadcast pour empêcher l'AP de vous submerger avec des trames de broadcast ! Cela peut être un problème si vous êtes connectés à un segment ethernet très large. Le seul problème sera que votre machine aura à démarrer toutes les communications, et donc, ne pourra pas marcher en tant que serveur (bon, vous devriez pouvoir trouver une machine fixe qui pourrait répondre aux requêtes ARP à votre place).

6.3 Connexion Palm III - IrOBEX

La partie IrOBEX semble être en constant développement. Par conséquent, les applications changent aussi. Par conséquent, je ne peux pas vous donner des informations exactes. Allez voir la page de Dag Brattli à http://www.cdpubs.com/hhsys/archives/66/10brattl.pdf.

Le script /etc/irda est vraiment juste bon pour configurer les périphériques, en faisant le bon mknod pour /dev/irobex etc, pas pour démarrer des applications.

  • Palm III -> Linux

    1) Terminal 1> irattach /dev/ttyS<x>

    2) Terminal 2> load_misc irobex

    3) Terminal 3> Démarrez irobex_app depuis le répertoire irobex. Je suppose que irobex_app ne marche plus maintenant. Maintenant, vous devez utiliser le programme gtk/irobex ! Vous avez besoin que la librairie gtk soit installée pour pouvoir utiliser ce programme. Une interface graphique devrait être développée par quelqu'un. Le programme à utiliser devrait être irobex_receive.

    4) Récupérez quelque chose depuis votre Palm III.

    5) Si tout va bien, vous pouvez aller voir le fichier qui vient d'arriver dans le répertoire depuis lequel a été lancé irobex_app (ou /tmp pour irobex_receive). Le nom de ce fichier dépendra de l'objet que vous avez transféré.

  • Linux -> Palm III

    Cela devrait être possible, mais je n'ai pas d'informations pour l'instant.

  • PPP

    Rui Oliveira a écrit : "Grâce au dernier patch IrCOMM (050998) de Takahide Higuchi, j'ai réussi à synchroniser et à établir une connexion PPP entre mon Palm III et ma machine Linux. J'utilise IRLink (provenant de IsComplete) pour rediriger le port série vers un port IR. La communication avec pilot-xfer marche sans aucun problème. Bien que j'aie réussi à établir une connexion PPP, je n'arrive toujours pas à récupérer des emails et à naviguer sur le Web. Cela est probablement du à des timeouts de connexion. Je suis en train d'essayer de résoudre ce problème.". Référez vous au PPP-HOWTO pour de plus amples informations sur le PPP.

  • IrCOMM

    Jon Howell a écrit : "Je pensais essayer IrCOMM, car le Palm III peut être configuré pour rerouter les infos du port série vers le port IR (en utilisant IrLink de IS/Complete, disponible sur www.palmcentral.com), et ensuite, vous pouvez lancer un programme terminal (tel "PalmTelnet" en mode série) à travers IrDA. Je peux seulement supposer qu'il utilise le protocole IrCOMM. J'ai testé cette configuration entre deux Palm Pilots, mais là, je ne peux pas savoir quel protocole est utilisé.

    Je n'ai pas réussi à trouver une application au code IrCOMM. Je vois sur la page d'avancement qu'il y a un "support client (devrait commencer à être utilisable)" mais je ne trouve aucune documentation sur comment l'utiliser.".

6.4 Connexion avec un téléphone cellulaire.

D'après ce que je sais, quelques téléphones utilisent le standard IrCOMM, ex: Ericsson SH888 et NOKIA 8110. Benny Amorsen a écrit : "J'ai utilisé minicom avec le SH888, et j'ai réussi à établir une connexion (CONNECT 9600...). Je n'ai pas réussi à lui faire faire quoi que ce soit d'autre après la connexion, et raccrocher en arrêtant la porteuse ne marche pas. +++ J'ai bien travaillé, maintenant, il sait raccrocher. Je dois dire que le SH888 n'est pas loin de marcher très bien avec Linux/IrDA, et devrait même marcher avec les noyaux 2.0.x. Je n'utilise que les noyaux 2.1.".

Il se peut que d'autres téléphones utilisent le standard IrOBEX, allez faire un tour dans la section Palm III pour apprendre à faire une connexion.

Carlos Vidal a écrit : "Corrigez moi si j'ai tout faux, mais il me semble que les téléphones NOKIA ne contiennent pas de modem matériel, mais quelque chose assez similaire aux WinModems pour les PC. Car à chaque fois que NOKIA écrit un truc à propos de communication via modem, ils utilisent le même nom de "Modem Windows logiciel" (ou quelque chose de similaire). Ce qui est actuellement confirmé par le fait qu'il faut utiliser les logiciels NOKIA pour Windows (nommés : NOKIA Cellular Data Suite).

Joonas Lehtinen a écrit : "Cela est vrai pour les modèles 61xx. Les modèles 8810, 9000(i) et 9110 devraient marcher (ils ont un modem intégré). Mon N9000 marche avec IrCOMM et Linux de la façon suivante :

Pour démarrer une session de communication avec /dev/irnine, par exemple, faites :

dip -t
> port irnine
> term

Vous utiliserez peut être cu à la place de dip. Il y a aussi du travail de fait avec l'Ericsson GF768 et le modem IR DI 27.

Benny Amorsen a écrit : Le SH888 émule le port IrDA quand vous vous connectez via un câble série, alors que beaucoup penseraient que c'est une chose plutôt obscure comme cela l'est pour moi. Mais c'est la seule manière de le faire fonctionner avec Windows, bien que je n'ai jamais réussi à le faire marcher avec Windows.

6.5 Connexion avec un appareil photo numérique

Markus Schill a écrit : "Heureusement qu'il y a d'autre personnes qui sont intéressées à faire fonctionner l'adaptateur IR SONY DSC-F1 sous Linux. Jusqu'à maintenant, je n'ai fait que jouer avec les logiciels de la suite Linux/IrDA et l'adaptateur série qui est fournit avec l'appareil photo. Voici où cela en est. J'utilise un noyau 2.0.33 et les derniers Linux/IrDA... Si je fait :

insmod irda
insmod irtty
irattach /dev/cua0

L'adaptateur commence à discuter avec l'appareil photo. /var/log/messages dit que le SONY-DSC-F1 a été trouvé, mais qu'aucun service n'a été démarré. (notez que ce comportement ne s'applique peut être pas aux noyaux 2.2.x).

Il y a deux programmes pour Linux qui sont disponibles et qui peuvent être utilisés avec l'appareil photo avec le câble : (1) chotplay et (2) stillgrab. Ils prennent tous les deux un tty comme ligne de commande, par conséquent, je suppose qu'ils devraient marcher si la couche irtty et la pile de protocole fonctionnent correctement... Je n'ai pas jeté de coup d'oeil au code Linux/IrDA pour l'instant ! Je ne suis pas certain de comprendre la pile, mais irtty ne devrait-il pas faire en sorte que cela ressemble à un vrai tty ? Quel service devrait être démarré ? "

Dag Brattli a écrit : "Je ne suis pas certain de savoir quel protocole l'appareil photo utilise, mais il est possible qu'il implémente les spécifications du protocole IrDA(TM) transfert d'images par infrarouge (Infrared Transfer Picture IrTran-P). Allez jeter un coup d'oeil à http://www.irda.org/standards/pubs/IrTran-P_10.pdf, vous verrez que le protocole est implémenté par dessus IrCOMM (pas IrTTY !). IrTTY est quelque chose que nous utilisons juste pour communiquer avec le pilote série de Linux. "

6.6 Window$95 et Linux/IrDA

Introduction

Pourquoi cette section ? Malheureusement, les utilisateurs de Linux ne sont pas toujours capable de savoir tout sur leur configuration matérielle. Quelquefois, il est possible de trouver ces informations depuis Window$95.

Où commencer ? Sur http://www.microsoft.com/windows95/info/irda.htm vous trouverez un support pour "Infrared Transfer 2.0". C'est une archive auto extractible (W95IR.EXE) qui fait 331Ko.

Avec certaines machines telles le HP Omnibook 800, il est nécessaire d'utiliser les spécifications du fabricant (pour cet Omnibook, cela se trouve sur votre CD de secours).

Les fichiers les plus intéressants pour trouver des détails sur la configuration sont les ..\windows\inf\*.inf et les gestionnaires de périphériques.

D'après ce que je sais, Window$NT ne supporte pas IrDA(TM). Et pour Windows98, je n'ai pas encore entendu parler de support IrDA(TM) pour l'instant.

Il y a aussi quelques périphériques non M$ disponibles. Notez toutefois que certains utilisent des protocoles infrarouges propriétaires :

  • CounterPoint: QuickBeam 1.15
  • LapLink 7.5
  • CarbonCopy 32 4.0
  • pc ANYWHERE 7.5
  • Puma Technology: TRANXIT pro 4.0

Connexion entre Linux/IrDA et Window$95 IrDA(TM)

Je pense qu'il y a trois façons de connecter Linux/IrDA et Window$95 :

Une connexion réseau entre les deux PC. Si vous avez mis en place Infrared Transfer 2.0, vous devriez trouver une interface réseau IrDA(TM) dans la liste des interfaces réseaux. Mais je n'ai pas encore réussi à faire une connexion.

Il est certainement aussi possible d'utiliser le protocole IrOBEX. Mais je ne sais pas quel logiciel utiliser et où le trouver. Je pensais que les logiciels nécessaires viendraient avec le Palm III, mais il s'avère que ce n'est pas le cas.

Takahide Higuchi <thiguchi@pluto.dti.ne.jp> a fournit le support IrCOMM. Depuis sa page http://www.pluto.dti.ne.jp/~thiguchi/irda/ j'ai récupéré la description suivante (que j'ai légèrement modifiée) : "Avec IrCOMM, il est possible d'envoyer et de recevoir de petits messages entre une machine Linux et un programme de terminal sur un portable sous Win95 ! Ajoutez cette ligne à votre /etc/conf.modules :

alias char-major-60 ircomm_tty

Ensuite, créez un fichier de périphérique mknod /dev/irnine c 60 64. Maintenant, les services Linux/IrDA peuvent être démarrés avec irattach /dev/ttyS? &. /dev/irnine peut être utilisé comme port série. Les modules ircomm et ircomm_tty seront chargés automatiquement par kerneld/kmod quand un programme utilise /dev/irnine. NOTE : Je pense que le programme "setserial" ne devrait pas être utilisé sur /dev/irnine. Quelques petits trucs :

  • Pour autoriser les login via IrCOMM, utilisez cela en tant que root : Premièrement, activez IrDA et IrCOMM, Ensuite, éditez /etc/inittab et ajoutez une ligne comme celle là :
    T1:23:respawn:/sbin/getty -L -w irnine 38400 vt100
    
    Et faites ceci en tant que root : init q. Et init commencera à attendre les connexions IrCOMM. Vous verrez apparaître votre prompt de login préféré depuis un émulateur de terminal depuis Win95 !
  • Si vous essayez pppd, pensez à utiliser l'option -crtscts pour désactiver le contrôle de flux. J'ai implémenté une petite émulation de contrôle de flux, mais cela n'a pas été testé.
  • Maintenant, mon patch montre quel fonctionnalités sont nécessaires à l'autre interface infrarouge. Des messages de ce style seront écrits dans le syslog :
    Sep 4 10:01:02 monolith kernel: parse_control:instruction(0x12)
    Sep 4 10:01:02 monolith kernel: data:03
    
  • Je voudrais spécialement connaître les messages donnés par SH888 (ou tout autre type de périphériques sauf les PC sous windows 95). Donc, s'il vous plaît envoyez moi vos syslog générés durant les connexions IrCOMM ! Si vous avez une copie des spécifications IrCOMM écrites par IrDA(TM), référez vous aux pages 34 ou 38, et vous comprendrez ce que ces messages signifient."

6.7 Connexion de Linux à Linux

Méthodes de connexions

Il devrait y avoir trois façons de connecter deux machines Linux via Linux/IrDA.

  • Dag Brattli a écrit à propos du support IrOBEX : "Le lecteur averti se demandera ce qui peut empêcher de transférer des fichiers d'une machine Linux à une autre machine Linux. Et bien, rien !! (mais je n'ai pas encore essayé ;-)). Cela signifie que nous avons maintenant une manière "simple" de transférer des fichiers entre deux portables Linux. Je pense que cela devrait être la "fonctionnalité qui tue" que nous attendions tous !" Essayez de faire load_misc irobex des deux cotés, et ensuite, essayer iroabex_app get sur l'une des deux machines et irobex put <file> sur l'autre.".
  • Via une connexion réseau Linux/IrDA. Je suppose que vous aurez à charger le module irlan_client sur l'une des machines et le module irlan_server sur l'autre.
  • Avec le support IrCOMM, c'est à dire via une liaison série, ce qui signifierait minicom, pppd, etc.

Compression

Notez que cette fonctionnalité est toujours vraiment expérimentale ! Dag Brattli a écrit : "Je voulais juste vous dire que je viens juste d'ajouter de la COMPRESSION à IrLAP ! Comme vous le savez peut être, cela ne fait pas partie du standard IrDA(TM), mais Linux peut négocier avec son voisin et savoir si il est capable de compresser les données. Donc, si vous discutez avec une machine Win95, Palm III ou quoi que ce soit d'autre, vous n'aurez pas de compression !!! C'est une fonctionnalité propre à Linux d'autant que je sache ! Le standard IrDA(TM) dit que les périphériques doivent ignorer les champs inconnus dans les en-têtes de négociations, donc, nous sommes toujours compatibles avec le standard IrDA(TM) (j'ai juste emprunté une valeur non utilisée dans les en-têtes).

Si vous voulez essayer d'utiliser la compression (Linux <-> Linux) vous aurez à insérer le module irda_deflate quelques temps avant de faire la connexion. Personnellement, je le fait avant irattach.

Le standard de compression que j'ai ajouté est le format deflate utilisé par la librairie zlib qui est décrit par les RFC (Request for Comments) 1950 à 1952 dans les fichiers ftp://ds.internic.net/rfc/rfc1950.txt (format zlib), rfc1951.txt (format deflate) et rfc1952.txt (format gzip).

L'interface de compression est similaire à celle qu'utilise PPP, par conséquent vous pouvez ajouter autant de compresseurs différents. Pour l'instant, seul GZIP est supporté, mais la compression BSD sera ajoutée plus tard."

6.8 Instances multiples

Dag Brattli a écrit : "La couche IrLAP a été améliorée de telle sorte qu'elle autorise plusieurs instances (de cette façon, je peux utiliser mon port infrarouge pour IrLAN et communiquer avec mon Pilot via un dongle IrDA en même temps)... Comment faire pour avoir plusieurs connexions Linux/IrDA ? Et bien, facile, lancez tout simplement irattach autant de fois que vous avez de ports... procédez comme il suit : "

irattach /dev/ttyS0 &    (mon dongle ESI)
irattach /dev/ttyS2 &    (mon port IrDA intégré)
insmod irlan_client
insmod irobex


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