= Benutzung der IrDA-Schnittstelle =

== Was ist IrDA? ==

Die IrDA-Schnittstelle ist eine Infrarot-Schnittstelle, die
eigentlich an
allen moderneren Laptops vorhanden ist. Sie erlaubt die
Kommunikation vom
Laptop z.B. zu verschiedenen Organizern, zu Handys oder auch zu
anderen
Laptops.

Ich selber bin stolzer Besitzer eines Siemens S25-Handys mit
serieller
Schnittstelle. Ich habe zwei Ziele: Erstens MitDemHandyInsInternet
und
zweitens Zugriff auf Handy-interne Daten wie z.B. Telefonbuch etc.

Ich selber benutzte die IrDA-Schnittstelle schon laenger unter
meinem alten
RedHat 5.2-System. Im Vergleich zum damaligen Kampf kann ich nur
sagen, dass
IrDA inzwischen erwachsen geworden ist. Bis auf einen
Interrupt-Konflikt hatte ich keinerlei Probleme.

== Grundlagen ==

Es gibt zwei verschiedene Verfahren, auf die Schnittstelle
zuzugreifen:

* Die IrDA-Schnittstelle ist immer an einem seriellen Port des
Rechners angeschlossen. (An welchen, kann man meist im BIOS
einstellen bzw. erfahren). Daher ist die einfachste Moeglichkeit,
einen sogenannten SIR-Treiber auf die normale serielle
Schnittstelle audzusetzen. Hierbei ist die
Uebertragungsgeschwindigkeit auf 115.000 Bit / Sekunde beschraenkt.
* Wer es schneller braucht, kann einen der FIR-Kerneltreiber
benutzen. Dieser muss dann jedoch auf den im Laptop verwendeten
IrDA-Chip zugeschnitten sein und erlaubt die volle Geschwindigkeit
des Chips. Der Einfachheit halber habe ich jedoch erstmal mit dem
SIR-Treiber angefangen.

Es muss prinzipiell erstmal ein Netzwerkdevice irda0 erzeugt
werden. Dann koennen verschiedene andere Spezial-Protokolle auf
diesem Device arbeiten. Hier gibt es z.B. 

* IrCOMM - Hiermit werden serielle Verbindungen aufgebaut wie mit
einem Modem. Dieses Protokoll wird z.B. von vielen Handys benutzt,
die somit ein Modem emulieren.
* IrOBEX - Hiermit werden Datensätze ausgetauscht. Z.B. der
Austausch von Visitenkarten zwischen Handys laeuft hierueber.
* IrNET, IrLAN - Damit kann ein Netzwerk zwischen verschiedenen
Computern aufgebaut werden.

Selber ausprobiert habe ich nur IrCOMM, weil das fuer mein Handy
reichte. Wer mehr ausprobieren will, kann mich gerne ansprechen, da
ich auch ueber die anderen Protokolle schn einiges an Informationen
zusammengetragen habe. Uebrigens frage ich mich immer, was
passiert, wenn man dem irda0-Device eine IP-Nummer zuordnet. Es
koennte sein, dass man auf diese Art schon eine TCP/IP-Vernetzung
realisieren kann(?)

== Debian-Pakete ==

Wie immer gebe ich die benoetigten Debian-Pakete an. Allerdings
handelt es
sich im Prinzip nur um sehr wenige Programme, die im Zweifelsfall
auch ohne
Sorge direkt bezogen und installiert werden koennen. Das
Debian-Paket
enthaelt allerdings ein Startskript, das die Sache etwas angenehmer
macht,
weil es die IrDA-Schnittstelle beim booten richtig initialisiert.

Früher (Debian Woody) waren die Pakete '''irda-common''' und
'''irda-tools''' zu installieren, in einem neueren Debian-System
sind alle IrDA-Funktionen im Paket '''irda-utils'''
zusammengefasst.

== Kernel-Module ==

Wie bei allem, was richtig Spass macht, braucht man einige
zusaetzliche
Kernelmodule, was ggf. auf eine Kernel-Neukompilierung
hinauslaeuft. Zu Beginn
sollte man erstmal alle Module, die es zum Thema IrDA gibt,
einbauen.

Eventuell kann man mit dem Programm '''findchip''' den verwendeten
IrDA-Chip
herausfinden, so dass man sich die anderen FIR-Treiber sparen kann.
Von den
Protokollen habe ich bisher nur IrCOMM benutzt, aber da man vorher
nie
weiss, womit man in der Zukunft noch herumspielt, kann man die
anderen
dazunehmen, wenn man will.

Bei den IrDA-Optionen habe ich ''Cache Last LSAP'' eingeschaltet
(das stand
so im menuconfig-Hilfetext) und das wars dann auch schon.

== Debian-Konfiguration ==

Wer das Debian-Paket installiert hat, muss bei der
Paketinstallation noch
ein paar Fragen beantworten. Im Grunde kann man da nichts falsch
machen.
Interessant zu wissen ist vielleicht, dass ein "Dongle" ein
IR-Geraet ist, dass
man an eine normale serielle Schnittstelle stecken kann. Hat man
eine
eingebaute Schnittstelle, braucht man also kein Dongle
einzustellen.

Den Discovery Mode habe ich immer eingestellt. Ich bin mir nicht
ganz
sicher, aber ich glaube, dadurch wird eine Art staendiger Broadcast
eingeschaltet wird, uber den der Computer anderen Geraeten seine
Anwesenheit
mitteilt. ''Da das natürlich auch Energie benötigt, sollte man,
wenn man besonders sparsam sein will, den Broadcast, aber besser
noch das gesamte irda, z.B. per Manipulation der Startskripte,
abschalten, wenn man es nicht braucht.''

== Starten ==

Im Prinzip wird die Schnittstelle durch Start des Programms
''irattach''
eingebunden. Entweder geht das im Startskript oder von Hand:

  irattach /dev/ttyS1 -s

Jetzt kann man durch einfaches starten von ''irdadump'' die
Funktion testen.
Es protokolliert alles mit, was ueber die Schnittstelle laeuft.
Laesst man
das Programm 10-20 Sekunden laufen, sollten einige Pakete sichbar
sein und
darunter auch eines, in dem der Name des Computer erscheint. Dies
ist der
oben erwaehnte Broadcast. Nun ist es an der Zeit, ein anderes
IrDA-Geraet in
die Naehe des Computers zu bringen. Jetzt sollten nach wenigen
Sekunden auch
Meldungen des anderen Geraetes auftauchen. Hier ist dann (zumindest
bei
meinem Handy) auch zu sehen, mit welchen Protokollen das Geraet
arbeiten kann.

Beim Siemens S25 muss die IrDA-Schnittstelle uebrigens im
Einstellungen-Menue vorher aktiviert werden. Da eine aktive
IrDA-Schnittstelle immar auch Energie verbraucht, duerfte das bei
allen
Akkubetriebenen Geraeten so sein.

= IrCOMM - Modembetrieb =

Zum Aufbau einer Verbindung ins Internet arbeitet das S25 mit dem
IrCOMM-Protokoll. Um das zu nutzen, muss der entsprechende
Kerneltreiber
kompiliert sein. Dann muss noch eine entsprechende Geraetedatei in
''/dev''
existieren. Wenn diese nicht vorhanden ist (z.B. in älteren Debian
Woody Systemen ohne devfs), kann man sie mit

  mknod /dev/ircomm c 161 0

erzeugen. Jetzt kann man auf ''/dev/ircomm'' wie auf eine serielle
Schnittstelle
zugreifen. 

Ggf. empfiehlt sich, einen Link von /dev/modem auf /dev/ircomm
anzulegen. Dies ist eine Konvention, die von einigen Programmen
benutzt wird, um auf ein Modem zuzugreifen. Wenn sich dann
irgendwann mal das Device, an dem das Modem angeschlossen ist,
ändert (z.B. Anschluss per Kabel), braucht man nur den einen Link
zu ändern und nicht alle Programme, die das Modem benutzen.

Jetzt kann man MitDemHandyInsInternet! :-)

== Tips am Rande ==

Natuerlich muss ppp bei der Kernelerstellung ausgewaehlt worden
sein, damit
eine Verbindung zum Provider gemacht werden kann. :-)

Ich hatte auf einmal arge Probleme beim Testen, die ich vorher
nicht hatte.
Nachdem ich lange gesucht hatte, fand ich heraus, dass immer Fehler
auftraten, wenn meine PCMCIA-Netzwerkkarte im Rechner steckte.
Daraufhin
habe ich herausgefunden, dass das Ding einfach den Interrupt der
zweiten
seriellen Schnittstelle fuer die Netzwerkkarte benutzt hat. Wie
unhoeflich!
In ''/etc/pcmcia/config.opts'' kann man jedoch einstellen, welche
Interrupts
dabei verschont werden sollen. Jetzt klappt auch beides parallel.
(Seufz! Als
alter Amiga-Hase werde ich die Probleme, die PCs mit Interrupts
haben, nie
wirklich verstehen...)

== Links ==

Tja - da ich das ganzte schon zum zweitenmal gemacht habe, habe ich
es
diesmal ganz ohne externe Dokumentationen gemacht. Ansonsten gibt
es aber
ein http://tuxmobil.org/howtos.html IR-HOWTO und den
http://tuxmobil.org/howtos.html Linux-Mobile-Guide. Wer Links zum
Thema kennt, kann die gerne
hier eintragen.

-- ThomasBayen