8.3. IrDA – Infrared Data Association

IrDA (engl. Infrared Data Association) ist ein Industriestandard für drahtlose Kommunikation über Infrarotlicht. Viele heute ausgelieferte Laptops sind mit einem IrDA-kompatiblen Sender/Empfänger ausgestattet, der die Kommunikation mit anderen Geräten, wie Druckern, Modems, LAN oder anderen Laptops ermöglicht. Die Übertragungsrate reicht von 2400 bps bis hin zu 4 Mbps.

Es gibt zwei Betriebsmodi für IrDA. Im Standardmodus SIR wird der Infrarotport über eine serielle Schnittstelle angesprochen. Dieser Modus funktioniert auf fast allen Geräten und genügt für viele Anforderungen. Der schnellere Modus FIR benötigt einen speziellen Treiber für den IrDA-Chip. Es gibt aber nicht für alle Chips solche Treiber. Außerdem muss der gewünschte Modus im BIOS-Setup des Computers eingestellt werden. Dort erfährt man meist auch, welche serielle Schnittstelle für den SIR-Modus verwendet wird.

Informationen zu IrDA finden Sie im IrDA-Howto von Werner Heuser unter http://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html und auf der Homepage des Linux IrDA Projekts: http://irda.sourceforge.net/.

8.3.1. Software

Die notwendigen Kernelmodule sind im Kernelpaket enthalten. Das Paket irda stellt die nötigen Hilfsprogramme zur Unterstützung der Infrarotschnittstelle bereit. Nach der Installation des Paketes findet man die Dokumentation unter /usr/share/doc/packages/irda/README.

8.3.2. Konfiguration

Der IrDA Systemdienst wird nicht automatisch beim Booten gestartet. Verwenden Sie das YaST Runlevel-Modul um die Einstellungen zu den Systemdiensten zu verändern. Alternativ kann auch das Programm chkconfig verwendet werden. Leider benötigt IrDA merklich mehr (Batterie-)Strom, da alle paar Sekunden ein Discovery-Paket verschickt wird, um andere Peripheriegeräte automatisch zu erkennen. Deshalb sollte man, wenn man auf Batteriestrom angewiesen ist, IrDA am besten nur bei Bedarf starten. Mit dem Kommando rcirda start können Sie die Schnittstelle jederzeit manuell aktivieren bzw. deaktivieren (mit dem Parameter stop). Beim Aktivieren der Schnittstelle werden die notwendigen Kernel-Module automatisch geladen.

In der Datei /etc/sysconfig/irda gibt es nur eine Variable IRDA_PORT. Dort können Sie einstellen, welche Schnittstelle im SIR-Modus verwendet wird; dies wird über das Skript /etc/irda/drivers beim Start der Infrarotunterstützung eingestellt.

8.3.3. Verwendung

Will man nun über Infrarot drucken, kann man dazu über die Gerätedatei /dev/irlpt0 die Daten schicken. Die Gerätedatei /dev/irlpt0 verhält sich wie die normale drahtgebundene Schnittstelle /dev/lp0, nur dass die Druckdaten drahtlos über infrarotes Licht verschickt werden.

Einen Drucker, der über die Infrarotschnittstelle betrieben wird, können Sie wie einen Drucker am Parallelport oder an der seriellen Schnittstelle einrichten. Beachten Sie bitte beim Drucken, dass sich der Drucker in Sichtweite der Infrarotschnittstelle des Computers befindet und dass die Infrarotunterstützung gestartet wird.

Will man über die Infrarotschnittstelle mit anderen Rechnern, mit Handys oder ähnlichen Geräten kommunizieren, so kann man dies über die Gerätedatei /dev/ircomm0 erledigen. Mit dem Siemens S25 Handy beispielsweise kann man sich über das Programm wvdial mittels Infrarot drahtlos ins Internet einwählen. Auch ein Datenabgleich mit dem Palm Pilot ist so möglich, dazu muss im entsprechenden Programm als Gerät einfach /dev/ircomm0 eingegeben werden.

Beachten Sie bitte auch, dass Sie ohne weiteres nur Geräte ansprechen können, die die Protokolle Printer oder IrCOMM unterstützen. Mit speziellen Programmen (irobexpalm3, irobexreceive, bitte beachten Sie hierzu die Beschreibung im IR-HOWTO) können Sie auch Geräte ansprechen, die das IROBEX-Protokoll verwenden (3Com Palm Pilot). Die vom Gerät unterstützten Protokolle werden bei der Ausgabe von irdadump nach dem Gerätenamen in eckigen Klammern angeben. Die Unterstützung des IrLAN-Protokolls ist „work in progress“ – es ist leider zur Zeit noch nicht stabil, wird aber sicher in naher Zukunft auch unter Linux zur Verfügung stehen.

8.3.4. Troubleshooting

Falls Geräte am Infrarotport nicht reagieren, können Sie als Benutzer root mit dem Kommando irdadump überprüfen, ob das andere Gerät vom Computer erkannt wird.

Bei einem Canon BJC-80 Drucker in Sichtweite des Computers erscheint dann eine Ausgabe ähnlich der folgenden in regelmäßiger Wiederholung (vgl. Ausgabe 8.3. “Ausgabe von irdadump”.

Beispiel 8.3. Ausgabe von irdadump

21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14)
21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14)
21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14)
21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14)
21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14)
21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14)
21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC-80 
                        hint=8804 [Printer IrCOMM ] (23) 
21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* erde 
                        hint=0500 [ PnP Computer ] (21)
   

Sollte überhaupt keine Ausgabe erfolgen oder das andere Gerät sich nicht zurückmelden, so überprüfen Sie bitte die Konfiguration der Schnittstelle. Verwenden Sie überhaupt die richtige Schnittstelle? Manchmal ist die Infrarotschnittstelle auch unter /dev/ttyS2 oder /dev/ttyS3 zu finden oder ein anderer Interrupt als Interrupt 3 wird verwendet. Diese Einstellungen können Sie aber bei fast jedem Laptop im BIOS-Setup konfigurieren.

Mit einer einfachen Video-Kamera können Sie auch überprüfen, ob die Infrarot-LED überhaupt aufleuchtet – im Gegensatz zum menschlichen Auge können die meisten Videokameras Infrarotlicht sehen.