SDB:Linux und IrDA
aus openSUSE, der freien Wissensdatenbank
Version: 6.3
Inhaltsverzeichnis |
Anliegen
Es soll ein Gerät über einen Infrarotport angeschlossen werden.
Hintergrund
Fast alle Laptops und einige Peripherigeräte haben eine Infrarotschnittstelle zur drahtlosen Datenübertragung eingebaut. Zur Kommunikation zwischen diesen Geräten wird das sogenannte IrDA Protokoll verwendet, das von Infrared Data Association standardisiert wurde.
Informationen über die Linux Implementierung des IrDA Protokolls finden Sie unter der URL http://irda.sourceforge.net/. Detaillierte Informationen zu IrDA und Linux können Sie auch dem IrDA HOWTO entnehmen.
Fast alle in PCs eingebauten Infrarotschnittstellen werden wie eine serielle Schnittstelle angesprochen. Dies bedeutet daß der serielle Treiber von Linux diese Schnittstelle findet und wie ein normalle serielle Schnittstelle konfiguriert. Über ein Zusatzkernelmodul welches auf den seriellen Treiber zugreift wird dann die Verwendung der Infrarotschnittstelle ermöglicht.
Linux unterstützt die Kommunikation mit den meisten Geräten die das IrDA Protokoll verwenden. Genauer: Linux unterstützt z.Zt. die Protokolle:
-
IrCOMM- Emuliert eine serielle Schnittstelle über die Infrarotverbindung, der Treiber im Linuxkernel stellt eine simulierte serielle Schnittstelle/dev/ircomm0zur Verfügung auf die man mit den üblichen Programmen zur Steuerung von Geräten an der seriellen Schnittstelle zugreifen kann, z.B.minicomoder gar derpppd. Beispielsweise unterstützt das Siemens S25 Handy dieses Protokoll, daher kann man sich hierüber mit wvdial ins Internet einwählen. -
IrLPTbzw.Printer- Emuliert eine parallele Schnittelle über die Infrarotverbindung, der Treiber im Linuxkernel stellt eine simulierte parallele Schnittstelle/dev/irlpt0zur Verfügung die sich ähnlich verhält wie die entsprechende drahtgebundene Druckerschnittstelle /dev/lp0. Ein Drucker über die Infrarotschnittstelle wird genauso angesprochen wie ein Drucker an der normalen Parallelschnittstelle, nur das die Schnittstelle nunmehr /dev/irlpt0 und nicht mehr /dev/lp0 heißt. Dieses Protokoll verstehen z.B. der portable Canon-BJC 80 Drucker der unter Linux mit dem bjc600 Treiber von Ghostskript betrieben werden kann oder der HP LaserJet 6P/MP. -
IrLAN- Über dieses Protokoll kann man 2 oder mehr Rechner vernetzen. Leider ist das entsprechende Kernelmodul noch experimentell. Falls diese Unterstützung funktioniert, so stellt der entsprechende Kerneltreiber eine Netzwerkschnittstelle `irlan0' zur Verfügung die über die Tools ifconfig/route usw. wie die Schnittstelle `eth0' konfiguriert werden kann. -
IrOBEX- Dieses Protokoll wird von Palmtops und anderen sogenannten Handheld Computern `gesprochen'. Zur Unterstützung dieses Protokolls gibts es einige Programme unter Linux um mit z.B. dem Palm Pilot von 3Com Verbindung aufnehmen zu können.
Vorbedingungen
Seit SuSE Linux 6.3 werden Geräte am Infrarotport unterstützt. Im vorkonfigurierten Paket irda sind alle nötigen Programme integriert um die meisten Infrarotschnittstellen ansprechen zu können. um eine UART kompatible SIR (langsame) Infrarotschnittstelle anzusprechen. Im Paket kernmod sind alle Module vorbereitet die von der Kernelseite her nötig sind um die Infrarotschnittstelle anzusprechen.
Einrichten der Schnittstelle
Überprüfen Sie bitte unter welcher I/O Adresse und welchem Interrupt Sie die Infrarotschnittstelle ansprechen können. Die Verwendung von /dev/ttyS1 und Interrupt 3 ist voreingestellt, die entspricht der Verwendung von I/O Adresse 0x2f8.
Sind diese Vorbedingungen erfüllt können Sie gleich loslegen. Starten Sie hierzu IrDA mit dem Kommando rcirda start. Nach dem erfolgreichen Start können Sie mit dem Programm irdadump überprüfen ob alles glatt geht. Sollte der Start der infraroten Unterstützung geklappt haben so sollte folgende Ausgabe im 3 Sekunden Takt auf dem Bildschirm erscheinen:
erda:~ # irdadump 13:42:57.118679 xid:cmd d04496e2 > ffffffff S=6 s=0 (14) 13:42:57.208957 xid:cmd d04496e2 > ffffffff S=6 s=1 (14) 13:42:57.298645 xid:cmd d04496e2 > ffffffff S=6 s=2 (14) 13:42:57.388923 xid:cmd d04496e2 > ffffffff S=6 s=3 (14) 13:42:57.478670 xid:cmd d04496e2 > ffffffff S=6 s=4 (14) 13:42:57.568914 xid:cmd d04496e2 > ffffffff S=6 s=5 (14) 13:42:57.658705 xid:cmd d04496e2 > ffffffff S=6 s=* erde hint=0500 [ PnP Computer ] (23)
Hierbei handelt es sich um die soganannten Discovery Pakete (`exchange station identification frame" - daher `xid'). Nachdem Sie ein anderes Infrarotgerät in Sichtweite gebracht haben sollte sich dieses auf diese `xid' Pakete zurückmelden. Dies sieht dann folgendermassen aus:
09:12:56.756986 xid:cmd 84663133 > ffffffff S=6 s=0 (14) 09:12:56.846938 xid:cmd 84663133 > ffffffff S=6 s=1 (14) 09:12:56.936963 xid:cmd 84663133 > ffffffff S=6 s=2 (14) 09:12:57.026938 xid:cmd 84663133 > ffffffff S=6 s=3 (14) 09:12:57.116931 xid:cmd 84663133 > ffffffff S=6 s=4 (14) 09:12:57.206934 xid:cmd 84663133 > ffffffff S=6 s=5 (14) 09:12:57.286939 xid:rsp 84663133 < 556ecd9e S=6 s=5 BJC-80 hint=8804 [ Printer IrCOMM ] (23) 09:12:57.296982 xid:cmd 84663133 > ffffffff S=6 s=* erde hint=0500 [ PnP Computer ] (23)
Sollte sich das andere Gerät nicht melden so überprüfen Sie bitte die Hardwareeinstellungen (I/O Adressen, Interrupts) Ihres Laptops und vergleichen Sie diese mit den Einstellungen in der Datei /etc/rc.config, die Variablen hießen IRDA_PORT für die zu verwendende serielle Schnittstelle und IRDA_IRQ für den zu verwendenden Interrupt.
Der Ausgabe von irdadump können Sie auch entnehmen, welche Protokolle vom anderen Gerät unterstützt werden. Im obigen Beispiel werden vom Gerät BJC-80 die Protkolle Printer und IrCOMM gesprochen. Man kann an dieses Gerät also beispielsweise als Drucker über die Schnittstelle /dev/irlpt0 ansprechen.
Falls Sie die Infrarote Unterstützung dauerhaft einbinden wollen, so können Sie die Variable START_IRDA in der Datei /etc/rc.config auf yes stellen. Nach dieser Änderung wird IrDA dann gleich nach dem Booten gestartet.
Einrichten eines Infrarot Druckers
Falls der obige Schnittstellentest erfolgreich war und Sie nun Ihren Infrarotdrucker einrichten wollen so können Sie dies mit dem Setupprogramm yast erledigen:
- Starten Sie yast und wählen Sie
Administration des Systems->Hardware ins System integrieren->Drucker konfigurieren. - Gehen Sie vor wie beim Einrichten eines `normalen' Druckers. Wählen Sie
Angeschlossen über Schnittstelle: Parallele Schnittstelleund unterName der Device: /dev/irlpt0. - Nach dem Einrichten des Druckers und dem Neustart des Druckerdienstes über das Kommando:
rclpd restartsollten Sie auf den Drucker wie gewohnt über das Kommandolprbzw. aus Applikationen heraus zugreifen können.
Einrichten einer Modemverbindung (z.B. zu einem Handy)
Bitte geben Sie folgende Kommandos ein um das im Handy eingebaute Modem zu verwenden:
rm /dev/modem ln -s /dev/ircomm0 /dev/modem
Danach können Sie das im Handy eingebaute Modem z.B. mit minicom oder wvdial zur Einwahl verwenden. Konfigurieren Sie das Modem so wie es im Handbuch zu normalen seriellen Modems beschrieben ist. Beachten Sie bitte die Kompatibilitätsliste um zu erfahren ob Ihr Handy unter Linux verwendet werden kann.
Austausch von Daten zwischen zwei Linux Rechnern
Zum Austausch von Daten zwischen zwei oder mehr Computern ist eigentlich das IrLAN Protokoll vorgesehen. Allerdings kommt es z.Zt. manchmal zu Problemen beim automatischen Erkennen des Kommunikationspartners.
Was sehr zuverlässig funktioniert ist die Verwendung des PPP Protokolls über die emulierte serielle Infrarotschnittstelle.
Stellen Sie hierzu die 2 Computer in Sichtweite zueinander und starten Sie auf einem Rechner den PPP Dämon z.B. mit folgendem Kommando
erde:~# pppd /dev/ircomm0 10.0.0.1:10.0.0.2
Starten Sie auf dem anderen Computer den pppd wie folgt
sonne:~# pppd /dev/ircomm0
Hierdurch wird zwischen den 2 Infrarotschnittstellen dieser beiden Beispielrechner eine ppp Verbindung aufgebaut. Der Rechner `sonne' erhält von `erde' die IP Adresse 10.0.0.2 zugewiesen, das PPP Interface von `erde' erhält die IP Adresse 10.0.0.1. Sie können also von `sonne' aus den Rechner `erde' mit der IP Adresse 10.0.0.1 erreichen und die üblichen Netzwerkdienste zur Kommunikation zwischen diesen Rechnern verwenden (telnet, ftp, nfs usw.).
Eventuell ist es nötig, daß Sie auf dem Rechner erde die Option noipdefault deaktivieren. Kommentieren Sie bitte hierzu die entsprechende Zeile in der Datei /etc/ppp/options aus.
Keywords: irda | linur/ir | infrarot | infrared | notebook | laptop

