LIRC

Das LIRC-Projekt realisiert die Nutzung einer Infrarot-Schnittstelle mit dem cIR-Protokoll, welches auch bei normalen Fernbedienungen verwendet wird. Die LIRC-Treiber werden benötigt um mit dem RCX zu kommunizieren.

Bei einigen Architekturen kann der LIRC-Treiber bereits bei der Kernelkonfiguration eingebunden werden. Es existiert auch ein Packet für LIRC.
Alternativ kann der Quellcode von der LIRC-Seite bezogen werden. In diesem Projekt wurde die Version 0.7.1 verwendet. Da der iPAQ nicht die übliche i386-Architektur verwendet, wird zum Kompilieren ein ARM-Crosscompiler benötigt. Wir haben den arm-linux-gcc verwendet. Auf die Installation und die grundlegende Verwendung wird hier nicht weiter eingegangen.

Wir geben an dieser Stelle keine vollständige Anleitung zur Installation von LIRC, da hierfür genügend Dokumentationen vorhanden sind. Stattdessen weisen wir nur auf einige Besonderheiten und mögliche Probleme hin.

Der interne IR-Port des iPAQs oder eines Notebooks benötigt den Treiber lirc_sir. Bei der Konfiguration ist daher die Option --with-driver=lirc_sir zu verwenden.
Der Aufruf des configure-Scripts könnte wie folgt aussehen:
./configure --host=arm --without-x --with-kerneldir=/opt/ipaq/kernel/ --with-driver=sir
Dabei befinden sich in /opt/ipaq/kernel die Kernel-Quellen des iPAQ-Kernels.

Unser iPAQ verwendet den PXA250 Microprozessor, der bisher nicht von dem LIRC-Projekt unterstützt wird. Aus diesem Grund haben wir den Code der Datei drivers/lirc_sir/lirc_sir.c im LIRC-Verzeichnis angepasst. Die angepasste lirc_sir.c ist nur sehr provisorisch und unterstützt nur das senden. Für eventuelle Fehlfunktionen übernehmen wir keine Haftung.

Da nur die Module lirc_dev und lirc_sir benötigt werden, können diese in den entsprechenden Verzeichnissen unter driver/ direkt durch einen Aufruf von make kompiliert werden. Die fertigen Module werden auf den iPAQ kopiert und können dort mit insmod lirc_dev.o ; insmod lirc_sir.o geladen werden.
Nun sollte ein neues lirc-Device angelegt werden. Ein Aufruf von dmesg gibt Auskunft über Fehler.

Wir haben die Erfahrung gemacht, dass ein evtl. laufendes Opie vor dem Laden der Module beendet werden sollte. Zur Freigabe der IR-Schnittstelle sollten die Module ircomm-tty, ircomm, pxa_ir und irda entladen werden. Das start_up-Script automatisiert diese Schritte und lädt anschließend die Module, die sich im selben Verzeichnis befinden müssen.

Auf einem Notebook kann es nötig sein, dem LIRC-Treiber den verwendeten IRQ und den I/O-Port mitzuteilen. Auskunft darüber gibt beispielsweise der Aufruf dmesg | grep tty . Die Ausgabe listet u. U. auch eine vorhandene serielle Schnittstelle auf. Diese Daten werden beim laden des Moduls übergeben, z. B. modprobe lirc_sir irq=3 io=0x2f8 .

Zum Testen kann das Tool mode2 aus dem LIRC-Projekt verwendet werden. Sendet man mit einer handelsüblichen Fernbedienung Signale an die IR-Schnittstelle wird die Codierung angezeigt.
Das Senden kann z. B. mit dem Tool lego aus der RCX-IR Bibliothek geprüft werden. Ausgehende IR-Signale kann man z. B. mit einer Handy-Kamera einfach sichtbar machen.