www.to-st.de
Home  |  Impressum  |  Datenschutz  |  Kolophon  |  Kontakt
Eyecatcher Image: /img/eyecatcher/eeepc/teaser_780x175_eeepc_irda-01.jpg
SI4735 PC-Radio USB V2 Linux Software Linux & Computer Blog / Vermischtes  
Lexmark X215 MFP unter Linux Scannen mit Linux (h) CD-Brennen mit Linux (h) EPSON E0855-2 LCD Display unter Linux  
Artikel auf Deutscharticle not available in English

IrDA Installation — Infrarot-Datenübertragung mit dem Asus Eee PC

Infrared Data Association, abgekürzt IrDA heiß der Industriestandard für die kabellose Kommunikation über Infrarot. Trotz des seit einiger Zeit ebenfalls hierfür gebräuchlichen Bluetooth als Funk-Standard gibt es immer noch neuere und vor allem ältere Geräte, z.B. Mobiltelefone, PDAs, Druckern, Modems, die via Infrarot kommunizieren.
Der Eee PC 701 besitzt keinen IrDA-Anschluss, diesen kann man jedoch leicht mit einem externen USB IrDA Dongle nachrüsten. Hier soll die Installation der Kernel-Module (die nicht Bestandteil des 2.6.21.4-eeepc-Standardkernel sind) sowie der irda-utils beschrieben werden.

Inhalt



Vorbemerkungen

... zu IrDA und Eee

Der Standardkernel des Eee (2.6.21.4-eeepc) bringt leider keine vorkompilierten Kernelmodule (d.h. Treiber) für IrDA und IrDA USB Adapter mit. Man kann diese jedoch jederzeit (mit den Kernelquellen) selbst kompilieren bzw. stelle ich hier einfach vorkompilierte Module (für den Asus Xandros Kernel 2.6.21.4-eeepc) als Debian-Pakete bereit. Die Kernelsourcen selbst werden von Asus bereitgestellt, die Bezugsquellen etvl. noch verwendeter Softwarequellen sind ebenso jeweils angegeben.

Ferner braucht man mindestens noch das Paket irda-utils. Nach dessen Konfiguration und kleiner Erweiterung der udev-Regeln sollte einem erfolgreichen Einsatz von IrDA am Eee nichts mehr im Weg stehen.

... zum Angebot an und Kauf von IrDA USB Adaptern

Beim Kauf eines IrDA USB Adapters sollte man zudem darauf achten, dass man auch bekommen hat, was man bestellt / angeboten bekommen hat. Da IrDA mit verschiedenen Geschwindigkeiten arbeitet (bspw. SIR bis 115,2 kBps, MIR bis 1,152 MBps und FIR bis 4 MBit/s) ist es sinnvoll, nicht am falschen Ende zu sparen, und einen FIR Adapter zu erwerben (bspw. mit SigmaTel STIr4200 Chipsatz). Sehr güstige Adapter sind meist nur bis 115.2 kBps (SIR) zu verwenden (siehe hierzu auch die Fussnoten zu den KingSun Adaptern).

Diese Tatsache wird im Internet (siehe Links am Ende der Seite: Wikipedia [A1], Artikel auf infrarotport.de [A4]) gern mit Zitat (3.8.2008): »USB-Infrarotport-Fälschungen« oder Zitat Wikipedia (3.8.2008): »Infrarotports für den USB-Anschluss sollten immer mindestens FIR können. [Anmerkung: zwar wünschenswert, aber sonst falsche Aussage! Wenn ich einen SIR-Dongle kaufe, dann kann dieser nur SIR. Punkt.] Allerdings wird der Markt in der letzten Zeit mit Fälschungen überschwemmt, die bestenfalls in der Lage sind 115,2 kBit pro Sekunde zu übertragen.« bezeichnet.

Persönlich habe ich mit derartigen Aussagen ein wenig Bauchschmerzen, denn es ist falsch, grundsätzlich davon zu sprechen bzw. auch Produkte, die korrekt mit "nur" SIR / 115,2 kBps angegeben sind, so zu bezeichnen! Wenn man einen derartigen USB IrDA Adapter erwirbt, bekommt man natürlich einen SIR Adapter und mehr eben nicht.

Diese Bezeichnungen stimmt aber in der Tat dann, wenn im Angebot (Webshop und/oder Verpackung) mit einer Geschwindigkeit bzw. Angabe wie FIR geworben wird, die das Produkt gar nicht erreicht.

Deshalb: Insbesondere beim Online-Kauf Produktbeschreibungen genau lesen und später mit dem gelieferten Dongle vergleichen! Im Zweifel nicht zögern, das Produkt zurück zu senden und vom Kauf zurück zu treten.

Wenn einem ein SIR-Dongle jedoch reicht, weil die andere Hardware (PDA, Mobiltelefon) auch nich mehr als SIR unterstützt, kann man natürlich auch damit auskommen.

Kernel-Module: Download und Installation

Meine vorkompilierten Pakete finden sich unter:

http://www.to-st.de/download/linux/eeepc/

zum Download. Es handelt sich dabei um folgende Pakete:
Paket irda-usb-modules-2.6.21.4-eeepc
stellt die Basis bereit, d.h. grundlegende IrDA Kernelmodule (wie irda.ko, ircomm.ko etc) und Module für einige USB-Dongles, siehe Tabelle
Paket irda-kingsun-modules-2.6.21.4-eeepc
weitere Module für Kingsun USB Dongles

Liste Kernel-Module mit USB IDs

irda-usb-modules-2.6.21.4-eeepc
Modul USB ID (wie lsusb) Vendor ID Product ID Beschreibung
stir4200 066f:4200 0x066f 0x4200 IrDA-USB Dongle Driver for SigmaTel STIr4200
mcs7780 9710:7780 0x9710 0x7780 IrDA-USB Dongle Driver for MosChip MCS7780
irda-usb 09c4:0011 0x09c4 0x0011 IrDA-USB Dongle Driver, ACTiSys ACT-IR2000U
4428:0012 0x4428 0x0012 IrDA-USB Dongle Driver, IBM UltraPort IrDA
050f:0180 0x050f 0x0180 IrDA-USB Dongle Driver, KC Technology, KC-180
08e9:0100 0x08e9 0x0100 Extended Systems, Inc. XTNDAccess IrDA Dongle
066f:4210 0x066f 0x4210 IrDA-USB Dongle Driver, SigmaTel STIr4210
066f:4220 0x066f 0x4220 IrDA-USB Dongle Driver, SigmaTel STIr4220
066f:4116 0x066f 0x4116 IrDA-USB Dongle Driver, SigmaTel STIr4116
irda-kingsun-modules-2.6.21.4-eeepc
Modul USB ID (wie lsusb) Vendor ID Product ID Beschreibung
ks959-sir [1] 07d0:4959 0x07d0 0x4959 IrDA-USB Dongle Driver for KingSun KS-959
ksdazzle-sir [2] 07d0:4100 0x07d0 0x4100 rDA-USB Dongle Driver for KingSun Dazzle
kingsun-sir [3] 07c0:4200 0x07c0 0x4200 IrDA-USB Dongle Driver for KingSun/DonShine
Anmerungen:
  1. SIR-only device, unterstützt 2400 bis 57600 bps
  2. SIR-only Device, unterstützt 2400 bis 115200 bps
  3. SIR-only Device, unterstützt 9600 bps
Alle Angaben aus [S2]

Durch welches Kernel-Modul wird mein Dongle unterstützt?
(USB ID des IrDA Dongles feststellen)

Um festzustellen welche Module benötigt werden oder ob der Dongle überhaupt unterstützt wird, ist es - wie immer bei USB Geräten - ratsam, nach der USB ID zu schauen, bspw. mit lsusb.

Beispiel 1: Belkin USB Infrared Smartbeam (USB ID hervorgehoben):
/home/user> lsusb
Bus 002 Device 001: ID 0000:0000  
Bus 002 Device 002: ID 066f:4200 SigmaTel, Inc. STIr4200 IrDA Bridge 
...
Der USB Dongle aus diesem Beispiel hat die USB ID 066f:4200, benötigt also das Kernelmodul stir4200. Es reicht damit, das Paket irda-usb-modules-2.6.21.4-eeepc zu installieren.

Beispiel 2: Dazzle USB IrDA Dongle (USB ID hervorgehoben):
/home/user> lsusb
Bus 003 Device 001: ID 0000:0000  
Bus 002 Device 003: ID 07d0:4959 Dazzle 
...
Der USB Dongle aus diesem Beispiel hat die USB ID 07d0:4959, benötigt also das Kernelmodul ks959-sir. Es müssen damit die Pakete irda-usb-modules-2.6.21.4-eeepc und irda-kingsun-modules-2.6.21.4-eeepc installiert werden.

Download und Installation der Pakete

Die Installation (und der Download) erfolgt zum Beispiel aus der Konsole, deshalb öffnen wir zuerst mit: [Strg] + [Alt] + [T] unser Terminal. Wenn alles klappt grüsst uns ein grünes /home/usr>.

Als nächstes Laden wir uns das bzw. die Debian-Paket/e herunter:
wget http://www.to-st.de/download/linux/eeepc/irda-usb-modules-2.6.21.4-eeepc_20080701-1_i386.deb
Die Installation müssen wir mit root/Superuser-Rechten durchführen. Dazu entweder sudo su eingeben (alle danach - bis zum Verlassen durch exit - eingegebenen Befehle werden als root ausgefürt) oder dem Befehl ein sudo voranstellen.

Die Installation mit dpkg des Paketes erfolgt mit:
dpkg -i irda-usb-modules-2.6.21.4-eeepc_20080701-1_i386.deb
Danach kann man die .deb-Datei wieder löschen.

Erster Test ...

Nun können wir zum Test den Dongle anstecken.

Wird dieser jetzt (hoffentlich) erkannt erscheint in den Kernelmeldungen (Anzeige mittels dmesg):
asus-1234:/home/user>dmesg
...
[665.950] usb 2-1: new low speed USB device using uhci_hcd and address 4
[666.120] usb 2-1: configuration #1 chosen from 1 choice
[666.130] KingSun KS-959 IRDA/USB found at address 4, Vendor: 7d0, Product: 4959
[666.130] /mnt/nfs_gate/IrDA/dazzle/ks-959/ks959-sir.c: IrDA: Registered KingSun KS-959 device irda0
...
Das dabei angelegte Device, meist wie im Beispiel irda0 (hervorgehoben) merken wir uns gleich für die spätere Konfiguration der irda-utils.

Installation der irda-utils

Vorbereitung (entfällt ggf.)

Die irda-utils können aus einem Repository mit apt-get (oder einem anderen Programm wie synaptic etc.) installiert werden. Als Repository kann man - sofern dort nicht schon vorhanden - in der /etc/apt/sources.list verwenden:
deb http://xnv4.xandros.com/xs2.0/upkg-srv2 etch main contrib non-free
Danach Aktualisierung der Paketlisten in der Konsole mit sudo apt-get update

Installation

Die Installation erfolgt dann einfach durch:
sudo apt-get install irda-utils
Sollten hier weitere Abhängigkeiten "erfüllt" werden müssen, so werden diese in der Regel gleich mitinstalliert.

irda-utils einrichten

Das Paket irda-utils installiert u.a. ein Startskript in /etc/init.d/irda-utils (welches wir nachher über udev aufrufen werden).

Einige Parameter hierfür werden in der Datei /etc/default/irda-utils vorgenommen. Sofern - wie bei USB Dongles üblich - ein Device irda0 genutzt wird, siehe diese Datei in etwa so aus:
# Set your startup settings for irattach, the IrDA-daemon, here.

# Set this to 'false' if you do not need to start irattach. Otherwise set it
# to 'true'.
ENABLE="true"

# Set discovery mode which usually is a good idea for finding other devices.
# If set 'true' or 'false' irattach and sysctl are used to enable and disable
# discovery mode. By default discover mode is disabled.
DISCOVERY="true"

# Set IRDA device to access (e.g. /dev/ttyS1 or irda0).
# In case of irda0, the proper module for FIR-mode has to be set in
# /etc/modutils/irda-utils (2.4) or /etc/modprobe.d/irda-utils (2.6)
DEVICE="irda0"

# Set dongle type, e.g. none, tekram, esi, actisys, actisys+, ep7211, girbil,
# litelink, airport, old_belkin, mcp2120, act200l, ma600). You do not need
# a dongle for FIR mode.
DONGLE="none"

# Set the serial device to quiet with setserial. This is only useful on some
# machines in FIR-mode, so most people should leave it blank. See
# README.Debian for more information.
SETSERIAL=""
Zur Erklärung der Einstellungen:
ENABLE="true"
wir wollen irattach automatisch starten
DISCOVERY="true"
Einschalten des Discovery-Modus, es soll ja nach IrDA-Geräten im Umfeld des Dongle gesucht werden
DEVICE="irda0"
Bezeichnung des Devices, bei USB Dongles meist irda0 (1. Dongle), siehe Ausgabe von dmesg
DONGLE="none"
wird auf none gestellt, das USB Dongle i.d.R. FIR Dongles
SETSERIAL=""
bei USB Dongles nicht benötigt

Änderungen am udev (Dynamic Device Management)

Da es sich ja um einen an-/absteckbaren USB Dongle handelt, ist es sinnvoll, das Startskript /etc/init.d/irda-utils beim Erstellen des irda-Devices auszuführen. Dies erreichen wir durch eine entsprechende udev-Regel.

Weiterhin ist es sinnvoll, die Berechtigungen der ircomm-Schnittstellen entsprechend so zu ändern, dass auch als normaler Benutzer darauf zugegriffen werden kann.

Folgende Regeln:
# set permissions for user access to IrCOMM devices
KERNEL=="ircomm*", MODE="0666"
# restart irda-utils (irattach)
KERNEL=="irda*", ACTION=="add", RUN+="/etc/init.d/irda-utils restart"
kann man deshalb z.B. am Ende der Datei /etc/udev/rules.d/50-xandros-udev.rules anfügen. Besser legt man jedoch eine eigene Datei, bspw. unter dem Namen 99-irda.rules in /etc/udev/rules.d/ an.

Nach dem Eintragen der Änderungen sollte man nun noch die udev-Regeln neu laden, durch Eingabe von:
sudo udevcontrol reload_rules
Fertig. Danach sollte beim Einstecken das Startskript ausgeführt werden, Geräte werden automatisch erkannt etc.

... ein paar Befehle für die Konsole

ifconfig

/home/user> /sbin/ifconfig irda0
irda0     Protokoll:IrLAP  Hardware Adresse dc:2f:4c:c7  
          UP RUNNING NOARP  MTU:2048  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:8 
          RX bytes:186 (186.0 b)  TX bytes:1035 (1.0 KiB)

irdadump

08:54:51.257685 xid:cmd d151626f > ffffffff S=6 s=0 (14) 
08:54:51.344735 xid:rsp d151626f < 00610102 S=6 s=0 SIEMENS ME45 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29) 
08:54:51.347645 xid:cmd d151626f > ffffffff S=6 s=1 (14) 
08:54:51.435738 xid:rsp d151626f < 08824260 S=6 s=1 SIEMENS M65 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (28) 
08:54:51.437656 xid:cmd d151626f > ffffffff S=6 s=2 (14) 
08:54:51.527642 xid:cmd d151626f > ffffffff S=6 s=3 (14) 
08:54:51.617646 xid:cmd d151626f > ffffffff S=6 s=4 (14) 
08:54:51.707650 xid:cmd d151626f > ffffffff S=6 s=5 (14) 
08:54:51.791748 xid:rsp d151626f < 5f5c165c S=6 s=5 Palm V hint=8220 [ PDA/Palmtop IrOBEX ] (23) 
08:54:51.797662 xid:cmd d151626f > ffffffff S=6 s=* asus-123456789 hint=0400 [ Computer ] (31) 

cat /proc/net/irda/discovery

/home/user> cat /proc/net/irda/discovery 
IrLMP: Discovery log:

nickname: SIEMENS M65, hint: 0xb124, saddr: 0xd151626f, daddr: 0x08824260

nickname: SIEMENS ME45, hint: 0xb124, saddr: 0xd151626f, daddr: 0x00610102

nickname: Palm V, hint: 0x8220, saddr: 0xd151626f, daddr: 0x5f5c165c

irdaping

/home/user> irdaping 0x5f5c165c
IrDA ping (0x5f5c165c on irda0): 32 bytes
32 bytes from 0x5f5c165c: irda_seq=0 time=104.34 ms.
32 bytes from 0x5f5c165c: irda_seq=2 time=109.31 ms.
32 bytes from 0x5f5c165c: irda_seq=3 time=111.30 ms.
32 bytes from 0x5f5c165c: irda_seq=5 time=108.26 ms.
32 bytes from 0x5f5c165c: irda_seq=6 time=106.68 ms.

Mögliche Fehlerquellen

...

Links

Sourcen zu Linux IrDA

[S1] http://eeepc.asus.com/global/download.htm
Kernel-Sourcen zum Kernel 2.6.21.4-eeepc unter "Linux Kernel"
[S2] http://palosanto.com/~a_villacis/codeprojects/kingsun-linux.en.html
Alex Villacis Lasso: Linux Kernel Module Sourcecode für Kingsun USB IrDA Adapter
Linux kernel drivers for Kingsun USB IrDA dongles
Anmerkung: seit Kernelversionen 2.4.22 bzw. 2.4.24 sind diese z.T. dann bereits Bestandteil des Kernels
[S3] http://irda.sourceforge.net
Linux-IrDA Project / IrDA Utilities für Linux

Allgemeine Infos

[A1] http://de.wikipedia.org/wiki/Infrared_Data_Association
Wikipedia-Artikel (Deutsch) zu Infrared Data Association (IrDA)
[A2] http://en.wikipedia.org/wiki/Infrared_Data_Association
Wikipedia-Artikel (Englisch) zu Infrared Data Association (IrDA)
[A3] http://www.irda.org
Offizielle Website der Infrared Data Association
[A4] http://www.infrarotport.de/faelschung.HTML
Beitrag auf infrarotport.de / Dschen Reinecke zum Thema "USB-Infrarotport-Fälschungen"

Infos zu Linux IrDA

http://www.tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html
Werner Heuser: »Linux Infrared HOWTO« - schon etwas älter
http://www.hpl.hp.com/personal/Jean_Tourrilhes/IrDA/IrDA.html
Jean_Tourrilhes et. al.: »Linux-IrDA quick tutorial«
http://www.tuxmobil.org/ir_misc.html
TuxMobil.org: IrDA and Infrared Devices working with Linux - auch älter


CSS ist valide! CSS ist valide!