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:
- SIR-only device, unterstützt 2400 bis 57600 bps
- SIR-only Device, unterstützt 2400 bis 115200 bps
- 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
-
|