Journal GNU/Linux et IRDA

Posté par  .
Étiquettes : aucune
0
3
août
2004
Si j'écris ce journal c'est parce qu'avec mes (faibles) capacités il m'a fallu
des heures et des heures pour parvenir à faire fonctionner une toute petite partie des capacités
de communication entre mon téléphone et mon PC par IRDA, et donc j'ai pensé qu'une telle
documentation de base aurait pu m'être utile et donc peut l'être à certains. Bien entendu
cette documentation n'est pas exhaustive, et les différents HOWTO que vous pouvez trouver
sur le sujet sont bien plus complets (et malheureusement à mon avis plus complexes).

J'espère dans tous les cas que si vous vous intéressez au sujet vous trouverez dans ce journal
au moins une information utile. Dans tous les cas vos commentaires sont les bienvenus, surtout
si vous connaissez un logiciel permettant d'explorer les fichiers du téléphone (le protocole OBEX
devrait permettre cela) et si vous savez vous en servir (moi je n'y arrive pas) ou si vous
connaissez des GUI agréables pour faire de telles choses (autres qu'un programme Tk impossible
à installer qui vous apostrophe en allemand une fois lancé).

La première chose pour faire fonctionner l'IRDA sur votre machine est bien entendu
de trouver et de charger le module correspondant à votre chipset. Vous en avez toute une
panoplie, sur mon laptop Acer Travelmate série 290 il s'agit de smsc-ircc2 (tous les modules
se trouve dans la rubrique réseau de la configuration du noyau ; quelque part vous verrez
IRDA).

Chose importante : l'IRDA doit bien entendu être activé dans votre BIOS, les conflits d'IRQ
doivent comme d'habitude être résolus.

Mais surtout, sur la plupart des laptops, le chipset qui gère l'IRDA est capable d'émuler
un port série et le fait dès que l'IRDA est activé dans le BIOS. Il est donc important que
le driver des ports séries ordinaires n'interfère pas.

Vous pouvez essayer de régler ça avec setserial, à priori comme ça :
setserial /dev/ttySX uart none
où /dev/ttySX représente le port série émulé.

Ceci dit il paraît que ça peut créer des problèmes, le plus simple par conséquent si vous
avez comme moi un laptop ne possédant aucun port série est de décharger le driver du port
série standard, dans mon cas je décharge 8250_pci, 8250 et serial.

Si vous utilisez hotplug, blacklistez :-)

Je charge donc mon module :

modprobe smsc-ircc2

Je vois apparaître dans /var/log/syslog :

Aug 2 17:44:09 Thor2 kernel: irda_init()
Aug 2 17:44:09 Thor2 kernel: NET: Registered protocol family 23
Aug 2 17:44:09 Thor2 kernel: found SMC SuperIO Chip (devid=0x5a rev=00 base=0x002e): LPC47N227
Aug 2 17:44:09 Thor2 kernel: smsc_superio_flat(): fir: 0x230, sir: 0x3f8, dma: 03, irq: 4, mode: 0x0e
Aug 2 17:44:09 Thor2 kernel: SMsC IrDA Controller found
Aug 2 17:44:09 Thor2 kernel: IrCC version 2.0, firport 0x230, sirport 0x3f8 dma=3, irq=4
Aug 2 17:44:09 Thor2 kernel: smsc_ircc_set_sir_speed(), Setting speed to: 9600
Aug 2 17:44:09 Thor2 kernel: No transceiver found. Defaulting to Fast pin select
Aug 2 17:44:09 Thor2 kernel: IrDA: Registered device irda0

S'il vous dit que l'IRDA est désactivé, activez-le dans votre BIOS. Il paraît que certains
laptops doivent l'activer hors du BIOS qui ne contient pas cette option ; cherchez sur Google,
les outils nécessaires semblent exister.

Il est ensuite nécessaire d'activer l'interface correspondante :

ifconfig irda0 up

Maintenant que l'interface est prête, vous pouvez tenter un transfert de fichiers entre votre
périphérique IRDA (compatible avec le protocole OBEX, par exemple mon Sagem MyX 5-2) et votre PC.

D'un côté, lancez irdadump (irda-utils), qui va vous permettre de surveiller le trafic de
l'interface IRDA, de l'autre, irobex_palm3 (openobex-apps), qui va attendre un transfert de
fichier en provenance de votre périphérique.

Note : sous Debian, si vous installez irda-utils et que vous n'utilisez pas l'émulation de
port série pour l'IRDA, c'est-à-dire si vous utilisez un module tel que celui que je viens
de vous indiquer, changez ENABLE="TRUE" pour ENABLE="FALSE" dans /etc/default/irda-utils, cela
vous évitera de voir un message d'erreur à chaque démarrage.

Ensuite, lancez l'envoi d'un fichier par IRDA sur votre périphérique (sur mon téléphone, je
choisis une photo dans l'album, je fais envoyer, je choisis IRDA) et approchez-le du port
infrarouge de votre PC.

Si cela marche, vous voyez irdadump afficher tout un tas de messages, contenant notamment
l'indication OBEX (le dernier étant OBEX SUCCESS), et irobex_palm3 enregistre le fichier
transféré dans /tmp et affiche ceci :

Send and receive files to Palm3
Waiting for files

..........................................................................................HEADER_LENGTH = 43924
put_done() Skipped header 42
Filename = PC.JPG
Wrote /tmp/PC.JPG (43924 bytes)

Vous pouvez également faire l'opération inverse en envoyant depuis votre PC un fichier à votre
périphérique, en tapant :

irobex_palm3 fichier

Vous verrez ainsi irdadump s'agiter à nouveau et irobex_palm3 afficher :

Send and receive files to Palm3

name=/tmp/Photo 0002.JPG, size=43924
........................................................................................

PUT successful

La réception dépend du périphérique en question.

Dans /var/log/syslog, vous voyez des indications de changement de vitesse du port
(de 9600 à 115200).

Si vous avez un téléphone compatible avec IRCOMM, vous pouvez utiliser gsmctl (gsm-utils)
pour récupérer différentes informations et effectuer différentres opérations.

Vous devez d'abord charger ircomm-tty.

Ensuite, par exemple pour savoir à quel réseau est actuellement relié le téléphone, vous
pouvez faire :

gsmctl -d /dev/ircomm0 CURROP

Vous voyez alors par exemple :

Long name: 'Orange F' Short name: 'Orange F' Numeric name: 20801 Mode: automatic

Pour récupérer des informations générales sur le téléphone :

gsmctl -d /dev/ircomm0 ME

Vous voyez par exemple :

Manufacturer: SAGEM
Model: myX5-2 GPRS
Revision: SAGEM KB3,MF
...

Et vous pouvez lire vos SMS grâce à la commande suivante : gsmsmsstore -s /dev/ircomm0 -t SM -l

Vous pouvez également activer le mode Discovery pour pouvoir laisser votre PC et votre
périphérique établir un lien, comme ceci :

echo 1 > /proc/sys/net/irda/discovery

Vous verrez alors votre irdadump s'agiter avec des messages comme ceux-ci :

16:44:12.819915 xid:cmd 060eda9f > ffffffff S=6 s=* Linux hint=4400 [ Computer LAN Access ] (21)
16:44:15.279549 xid:cmd 060eda9f > ffffffff S=6 s=0 (14)
16:44:15.369527 xid:cmd 060eda9f > ffffffff S=6 s=1 (14)
16:44:15.459511 xid:cmd 060eda9f > ffffffff S=6 s=2 (14)
16:44:15.549502 xid:cmd 060eda9f > ffffffff S=6 s=3 (14)
16:44:15.639491 xid:cmd 060eda9f > ffffffff S=6 s=4 (14)
16:44:15.729475 xid:cmd 060eda9f > ffffffff S=6 s=5 (14)

/proc/net/irda/discovery contient le rapport du mode Discovery. Vous ne verrez rien dedans
si aucun périphérique n'est à portée du port.

Si maintenant vous approchez un périphérique, vous pouvez voir dans votre irdadump des réponses,
comme ceci :

16:45:57.784522 xid:rsp 060eda9f < 33ef0bd1 S=6 s=5 SAGEM hint=9025 [ Modem Telephony IrCOMM IrOBEX ] (22)

Et vous voyez apparaître votre périphérique dans le rapport :

IrLMP: Discovery log:

nickname: SAGEM, hint: 0x9025, saddr: 0x060eda9f, daddr: 0x33ef0bd1

Sachez que le mode Discovery consomme de l'électricité, activez-le sur les laptops uniquement
lorsque vous avez besoin (c'est également le cas sur les téléphones et autres, lorsque vous ne
vous servez pas de l'IRDA, désactivez-le).
  • # bah , bravo , merci , tout ca

    Posté par  . Évalué à 3.

    Ca a presque le merite d'etre clair.
    Je pense que des sites comme lea-linux seraient tres heureux de pouvoir avoir ton tutoriel.
    Et je garde ca dans un coin pour le jour ou j'aurais un de ces fameux telephones de geek ^^
  • # Nickel,

    Posté par  . Évalué à 2.

    Merci, j'ai hâte de rentrer maintenant pour essayer. Je n'avais pas réussis auparavant à transfert des photos mais je n'avais pas penser à ordonner l'opération depuis le portable (Sagem My-v65). Donc depuis j'attendais d'avoir la mémoire de mon téléphone rempli pour rebooter sous windows et faire le transfert. Espérons...

    Si cela, marche je pourrais me consacrer entièrement à l'envoi de Vcard afin d'avoir mon emploi du temps, qui est disponible depuis le net, sur mon téléphone et essayer d'automatiser la tâche tout les matins.

    NB: je pense que la plus part des opérations hors configuration de l'irDa sont tout aussi valable avec un cordon data-cable.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.