Linux und IrDA




die IrDA-Schittstelle

Die Infratotschnittstelle namens IrDA (Infrared Data Association) ist bei allen heutigen Notebooks eingebaut. Es gibt sie als so genannte Standard-Schnittstelle (SIR) mit der maximalen Übertragungsgeschwindigkeit einer seriellen Schittstelle von 115 kBit/s und als Fast-IrDA (FIR) mit bis zu 4 MBit/s. In aktuellen Notebooks ist mittlerweile meist das schnelle FIR vorhanden, dieses ist aber abwärtskompatibel zur SIR. Die eigentliche Datenübertagung ist zwar unverschlüsselt, aber dies dürfte eher ein theoretisches Problem darstellen, da zum Datenaustausch die Transceiver relativ exakt und mit Sichtverbindung aufeinander ausgerichtet werden müssen. Die Reichweite beträgt dabei nur rund 1 m.


die IrDA-Hardware

Zur Aktivierung der Infrarot-Schittstelle sollte man mal ein Blick in das BIOS des Rechners werfen. Bei meinem Siemens-Fujitsu LifeBook kann man die Schnittstelle auf COM-Port 2 komplett deaktivieren oder aber auf SIR bzw. FIR einstellen. Bei modernen Motherboards besteht häufig die Möglichkeit der Nachrüstung eines IrDA-Transceivers, wenn die Schnittstelle grundsätzlich auf dem Board schon vorhanden ist. Hier hilft ein Blick in die Dokumentation und ins BIOS, ob sich eine solche Schnittstelle zumeist auf COM-Port 2 aktivieren läßt. Ist dies nicht der Fall, kann man immerhin noch so genannte Dongles für den seriellen Port oder auch USB einsetzen. Eine hervorragende Site mit Informationen und Bezugsquellen ist:

http://www.infrarotport.de/

Hier gibt es die Einzelheiten zu den Nachrüstmöglichkeiten der verschiedensten Boards und zur Pinbelegung der Anschlüsse. Meist ist diese einheitlich. Für einen sehr kostengünsigen Transceiver zum Nachrüsten gibt es hier die Bauteile. Auch fertige Dongles verschiedener Hersteller kann man von hier beziehen.


die IrDA-Protokolle

Die grundlegenden Protikolle des IrDA-Stacks wie IrLAP, IrLMP und IAS regeln die eigentliche Datenübertragung und z. B. die Fehlerkorrektur sowie die Kommunikation der einzelnen Geräte untereineander. Es arbeiten dabei die Geräte entweder als Master oder als Slave. Es ist prinzipiell auch eine Verbindung von mehreren Geräten mittles der IrDA-Protokolle möglich. In der Praxis sind besonders interessant die Protokolle IrCOMM und IrLPT. Wie unter Windows werden hiermit so genannte virtuelle COM-Ports bzw. ein virtueller LPT-Drucker-Port simuliert, auf welche die Anwendungsprogramme in gewohnter Weise zugreifen können, ohne das weitere Anpassungen der Programme für die Nutzung der drahlosen Verbindung nötig wären. Entsprechend beliebt ist diese Möglichkeit. IrOBEX dient speziell der Synchronisation von Daten mit PDA's. Mittels IrLAN können Netzwerkverbindungen per Infrarot zwischen Geräten hergestellt werden, wie es sonst mit Netzwerkkarten möglich wäre.


Linux und IrDA

Die Unterstützung von IrDA ist für Linux bislang nur experimentell. Daher müssen auch die experimentellen Teile des Kernels aktiviert sein um IrDA zu nutzen. Beim SuSE-Standardkernel ist dies gewährleistet. Für die Inbetriebnahme der IrDA-Schittstelle ist die Lektüre des sehr ausführlichen und detailreichen Linux-Infrared-HowTo dringend zu empfehlen. Die Chancen eine Standardschnittstelle zum Laufen zu bekommen sind relativ hoch, aber für FIR ist es eher Glückssache. Einige Chipsätze für Fast-IrDA werden zurzeit überhaupt noch nicht unterstützt.


Konkret lädt man die passenden Module für den SIR-Support mit:

Eine Überprüfung mit lsmod sollte ergeben, dass die Module irda und irtty geladen sind sowie das Device /dev/irda0 eingerichtet ist.

Mit

werden die passenden Treiber für die virtuellen Ports geladen. Die entsprechenden Devices müssen nach angezeigt werden:

Damit zukünftig die notwendigen Module automatisch geladen werden sind ein paar Eintrage in der Konfigurationsdatei /etc/modules.conf erforderlich. Bei SuSE sind sie bereits vorhanden.

/etc/modules.conf


Das eigentliche Tool zur Aktivierung der jeweiligen Schnittstelle heißt irattach . Es ist dabei anzugeben, ob der serielle Port COM1 bzw. /dev/ttys0 oder COM2 bzw. /dev/ttyS1 benutzt wird. Mit der Option "-s" wird gleichzeitig der Discovery-Mode zur Erkennung anderer IrDA-Geräte gestartet. Für den SIR an COM2 sähe das z. B. so aus:

Dies wird bei SuSE automatisch erledigt, durch:

oder kürzer, wenn in der zentaralen Konfgurationsdatei /etc/rc.config die folgenden Einträge gegeben sind: Man muss sich nur überlegen, ob man die IrDA-Schnittstelle tatsächlich schon beim Booten aktiviert, da der Betrieb den Stromverbrauch eines Laptops erhöht und die Treiber noch experimentell sind. Bei mir ist z. B. der Rechner dabei eingefroren, wenn ich gleichzeitig darauf mittels ftp zugregriffen habe um eine Datei zu übertragen.

Natürlich kann man auch serielle Dongles anschließen. Für die Aktivierung des Serial-Dongle Tekram IrMate-IR 210B beispielsweise an COM1 sähe der entsprechende Befehl so aus:

Zusätzlich muss der passende Eintrag in der modules.conf vorhanden sein:
/etc/modules.conf

Für andere unterstützte Dongles sind die notwendigen Angaben der README-Datei des Tools irattach aus der beigefügten Dokumentation zu entnehmen.

Will man FIR in Betrieb nehmen, hat man das Problem den jeweiligen Chipsatz ermitteln zu müssen, um das zugehörige Modul mit den notwendigen Parametern aufrufen zu können. Mit etwas Glück hilft hier der Aufruf von

oder z. B. das DOS-Tool der Zeitschrift c't von

ftp://ftp.heise.de/pub/ct/ctsi/ctpci330.zip

Vor allen Dingen dürfte hier ein Blick in das Linux-Infrared-HowTo absolut unvermeidlich sein. Ich möchte an dieser Stelle nicht unterschlagen, dass es mir beim besten Willen nicht gelungen ist, die FIR-Schnittstelle meines Siemens LifeBook zu nutzen. Deshalb habe ich alle Versuche mit einem seriellen Dongle am Laptop angestellt.


Zur Überprüfung, ob die gegenseitige Kontaktaufnahme per IrDA auch funktioniert stehen ein paar Tools zur Verfügung. Mit irdadump im Terminalfenster wird einem der Datenaustausch angezeigt. Wenn alles klappt erscheint hier mindestens schon mal der Netzwerk-Name der jeweiligen Gegenstelle. Mit irdaping verschickt man Testframes an die Gegenstelle. Hierbei kann man aber nicht, wie beim normalen Ping, die IP-Adresse angeben.


Handy

Der Internetzugang mittels Handy mit Infrarotschnittstelle erfolgt durch einen einen Kunstgriff. Der Gedanke hierbei ist, dass die virtuelle serielle Schnittstelle /dev/ircomm0 anstelle des /dev/modem genutzt wird, indem man den entsprechenden symbolischen Link vorher anpasst.

Verbindungen lassen sich dann wie üblich über den pppd oder minicom aufbauen. Das funktioniert aber nur mit einigen Geräten wie z. B. dem Siemens S25 mit eingebautem echtem GSM-Modem.


Drucker

Auch auf entsprechend mit IrDA-Anschluss ausgestattete Drucker läßt sich ohne Kabelverbindung ein Ausdruck erzeugen. Vom Prinzip her wird dabei bei der Einrichtung des Drucker z. B. mit YaST statt des Parallelen Ports /dev/lp0 für einen gängigen Parallelport-Drucker der emulierte Parallel-Port über die IrDA-Schnittstelle /dev/irlpt0 angeben. Da ich keinen geeigneten Drucker habe, konnte ich das aber nie ausprobieren.


Dateitransfer

Ist unter Windows eine IrDA-Schnittstelle erkannt und der Treiber eingerichtet, läßt sich auf einfache Weise eine Datei drahtlos von einem auf den anderen Rechner übertragen. Dieser Datenaustausch funktioniert grundsätzlich auch mit Linux. Dazu nutzt man das Tool ircp basierend auf openobex von:

http://sourceforge.net/projects/openobex/

Zunächsr installiert man openobex als RPM-Paket

und danach ircp mit:

Das Senden einer Datei von meinem Linux-PC auf einen Windows-PC hat geklappt mit:

Der Empfang einer Datei in umgekehrter Richung von einem Windows-PC aus auf meinem Linux-Rechner erfolgt grundsätzlich mit: ircp -r . Dies hat so leider nicht funktioniert. Ebenso konnte ich nicht ausprobieren, ob der Dateitransfer zwischen 2 Linux-Rechnern auf diese Weise funktioniert, da ich es seltsamerweise nicht geschafft habe, auf meinem Laptop den ircp-Zusatz zu installieren.


Direktverbindung

Auch eine PC-Direktverbindung per IrDA, bei der den beiden beteiligten PC's IP-Adressen zugewiesen werden um die üblichen Netzwerkanwendungen wie z. B. telnet und ftp zu nutzen, läßt sich aufbauen. Serverseitig startet man dazu den ppp-Daemon beispielsweise mit:

U. U. muss auf diesem Rechner die Einstellung noipdefault auskommentiert werden.
An der Gegenstelle ruft man dann auf:

Auch mit Windows ist prinzipiell eine Netzwerkverbindung per DFÜ möglich. Dazu ist die PC-Direktverbindung und das DFÜ-Netzwerk zu installieren. Als Protokolle kommen hier TCP/IP und NetBui in Frage. Aus Austausch erfolgt dann über ein Netzlaufwerk. Für die Datei- und Druckerfreigabe sollte die gleiche Arbeitsgruppe gewählt werden.


Netzwerk

Es gibt auch die Möglichkeit mittels des /dev/irlan0 eine Netzwerkschnittstelle einzurichten. Dazu ist das entsprechende Kernelmodul beispielweise zu laden mit:

Wie etwa eine Netzwerkkarte (z. B: eth0) läßt sich diese Schnittelle mit allen netzwerkspezifischen Angaben konfigurieren und aktivieren: Die Ausgabe von route -n sah bei mir zwar wie gewünscht aus, aber dennoch konnte ich auf diese Weise keine Netzwerkverbindung mit einem anderen PC per IrDA herstellen. Vielleicht war das Ganze ja auch etwas zu naiv gedacht...




[ zur LINUX-Übersicht | zur HOMEPAGE ]
Stand: 01.07.01





                                          - alles ohne Gewähr -                                          


Linux-Support light