Forgot your password?

Forgot your username?

All about IT, Web and Development.
By users for users.

Fernbedienung unter Ubuntu mit LIRC



Vor allem im Multimedia-Bereich sind Fernbedienung nicht mehr wegzudenken. Besonders in Home Theatre PCs steigern sie den Bedienkomfort deutlich.



In Ubuntu bzw. anderen Linux Distributionen sind Fernbedienung häufig ein leidiges Thema bezüglich der Einrichtung und Konfiguration.

Dieser Artikel soll eine Übersicht über das System von LIRC (Linux Infrared Remote Control) liefern und die Einrichtung anhand einer Hauppauge WinTV NOVA HD S2 inklusive Fernbedienung erläutern.


LIRC


Mit Hilfe von LIRC ist es möglich Infrarot-Fernbedienung innerhalb eines Linux-Systems funktionsfähig zu machen. Dabei gibt es hier immer zwei Ebenen bzw. Komponenten des Systems.

Zum einen die Treiber- und Konfigurationsebene. Hier wird festgelegt, welcher Treiber für den Infrarot-Empfänger, welcher in unserem Fall auf der TV-Karte verbaut ist, verwendet werden soll. Daneben muss auch die Signalbelegung der Fernbedienung in einer Konfigurationsdatei hinterlegt werden.

Auf der anderen Seite müssen den bestimmten Tasten feste Befehle innerhalb der Programme, welche später bedient werden sollen, zugewiesen werden. Normalerweise weißt man hier einer bestimmten Taste auf der Fernbedienung eine normale Taste auf der Tastatur zu.


LIRC installieren


Um LIRC zu installieren genügt in Ubuntu der folgende Befehl:

sudo apt-get install lirc

Bei der Installation erscheint ein Einrichtungsmenü für LIRC. Hier ist es wichtig immer None durch Drücken der Eingabetaste auszuwählen.


Fester Pfad für den IR-Empfänger


Gerätenamen identifizieren


Bevor man mit der Einrichtung von LIRC beginnt, muss zunächst der IR-Empfänger über einen festen Pfad erreichbar sein. Standardmäßig werden Eingabegeräte unter Linux in /dev/input/eventX eingebunden, wobei X durch eine sich verändernde Zahl ersetzt wird.
Deshalb muss man zunächst den Namen des IR-Empfängers in Erfahrung bringen:

cat /proc/bus/input/devices

Hier müsste irgendwo ein Abschnitt auftauchen, welcher einem IR-Empfänger ähnlich sieht.

I: Bus=0001 Vendor=0070 Product=6906 Version=0001
N: Name="cx88 IR (Hauppauge WinTV-HVR400"
P: Phys=pci-0000:00:0d.2/ir0
S: Sysfs=/devices/pci0000:00/0000:00:0d.2/rc/rc0/input5
U: Uniq=
H: Handlers=kbd event5 
B: PROP=0
B: EV=100013
B: KEY=10afc312 214a807 0 0 0 0 18000 41a8 4801 9e16c0 0 0 10000ffc
B: MSC=10


Dabei ist für uns nur der Name "cx88 IR (Hauppauge WinTV-HVR400" interessant. Warum hier eine Klammer fehlt ist von keiner Bedeutung.


Udev Regel erstellen


Als nächstes muss man dem System beibringen, den IR-Empfänger immer auf einen bestimmten Pfad einzubinden. Dazu legt man eine sogenannte Udev-Regel an:

sudo nano /etc/udev/rules.d/10-local.rules

Hier muss nun folgendes eingetragen werden:

KERNEL=="event*",ATTRS{name}=="cx88 IR (Hauppauge WinTV-HVR400",SYMLINK+="input/ir0"

Hier ist in der Variable ATTRS{name} der vorher herausgefundene Name des Empfängers anzugeben. Damit wird der IR-Receiver immer auf /dev/input/ir0 eingebunden.

Abschließend kann die Datei mit STRG + O gespeichert werden.

Im Anschluss, muss zunächst das udev System neugestartet werden:

sudo /etc/init.d/udev restart

Alternativ kann auch ein Neustart des Systems vollzogen werden, was meist auch anzuraten ist um mögliche Fehlerquellen auszuschließen.


Funktion testen


Abschließend kann man noch testen, ob überhaupt Signale auf dem IR-Empfänger anliegen:

sudo cat /dev/input/ir0

Anschließend sollte beim Drücken beliebiger Tasten auf der Fernbedienung einige kryptische Zeichen erscheinen. Bei manchen Fernbedienungen muss man bis zu einer Minute auf den Tasten herumdrücken, bis man eine Ausgabe sieht.

Erfolgt hier keine Ausgabe, ist die Fernbedinung evtl. leer oder der IR-Empfänger nicht richtig angeschlossen. Im schlimmsten Fall wird der IR-Empfänger nicht von Linux unterstützt.

Sind Sie mit dem Test fertig, genügt das Drücken der Tastenkombination STRG + C um wieder zur Konsole zurückzugelangen.


LIRC einrichten


Nun kann man die eigentliche Konfiguration vornehmen. Hier spielt sich alles im Verzeichnis /etc/lirc ab. Hier gibt es zwei zentrale Dateien:

  • hardware.conf - Grundlegende Einstellungen zu LIRC und dem Empfänger

  • lircd.conf - Signalbelegung für die Tasten (vom Gerät abhängig)


Konfiguration der hardware.conf


Zunächst muss die Datei wieder per Editor geöffnet werden:

sudo nano /etc/lirc/hardware.conf

Hier sollte folgender Inhalt vorhanden sein:


# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="Fernbedienung"
REMOTE_MODULES=""
REMOTE_DRIVER="devinput"
REMOTE_DEVICE="/dev/input/ir0"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""


#Enable lircd
START_LIRCD="true"
START_LIRCMD="false"
LIRCMD_CONF=""

#Kernel modules
LOAD_MODULES="true"

#Automatic reconfiguration
FORCE_NONINTERACTIVE_RECONFIGURATION="false"


Hier ist vor allem die erste Variable REMOTE wichtig. Über den Namen Fernbedienung können wir später die Tasten belegen.


Erstellen der lircd.conf


Diese Datei ist von Gerät zu Gerät unterschiedlich. Häufig gibt es bereits fertige lircd.conf Dateien für gängige Geräte, welche dann nur noch nach /etc/lirc kopiert werden müssen.

Wichtig ist hier aber, dass der Name der Fernbedienung in der lircd.conf ebenfalls an die hardware.conf angepasst wird. Suchen Sie daher folgenden Abschnitt in einem Editor.

begin remote

  name  Fernbedienung
  bits           16
  eps            30
  aeps          100


Hier muss in unserem Fall die Variable name auf Fernbedienung stehen. In dem Abschnitt unter begin codes sieht man die Namen der einzelnen Tasten, was später wichtig ist.

Jetzt muss die Datei noch gespeichert und lirc neugestartet werden:

sudo /etc/init.d/lirc restart

Belegung testen


Anschließend kann man testen, ob die Signale der Fernbedienung korrekt umgesetzt werden:

irw

Hier sollte dann der richtige Button angezeigt werden. Beendet wird wieder mit STRG + C.


Tasten mit Befehlen belegen


Nun können wir uns endlich der Belegung der Tasten widmen. Dazu müssen Sie in Ihrem Home-Verzeichnis (/home/<Ihr Benutzername>) eine neue Datei anlegen

nano ~/.lircrc

Hier müssen dann folgende Zeilen eingefügt werden:

include ~/.lirc/mythtv
include ~/.lirc/mplayer
include ~/.lirc/xine
include ~/.lirc/vlc
include ~/.lirc/totem


Damit werden die Konfigurationsdateien, welche wir später in dem Ordner .lirc anlegen werden, in die Datei .lircrc eingebunden.

Anschließend muss die Datei abgespeichert werden und die eigentlichen Konfigurationsdateien in einen Ordner .lirc eingefügt werden. Dazu einfach die Konfigurationsdateien herunterladen und in Ihrem Home-Verzeichnis entpacken.

Danach exisitert ein neuer Ordner .lirc. In normalen Dateimanagern ist dieser, genauso wie die Datei .lircrc, versteckt.

Als Beispiel sehen wir uns einmal die Datei mythtv im diesem Ordner an:

begin
    remote = Fernbedienung
    prog = mythtv
    button = ArrowRight
    config = Right
    repeat = 4
    delay = 10
end


Dies entspricht der Belegung einer Taste. In diesem Fall die Taste zum Vorwärtsspulen.
Bei remote wird wieder der Name aus der hardware.conf und lircd.conf angegeben.

Bei prog das ensprechende Programm auf das die Befehle angewendet sollen.

Im Bereich button wird der in der lircd.conf festgelegte Tastenname eingetragen.

Die Variable config legt das Äquivalent der Taste auf der Tastatur fest. In diesem Fall die Pfeiltaste nach rechts.

Die letzten beiden Variablen dienen dem Verhalten bei gedrückt halten der Taste und können so übernommen werden.

Auf diese Weise kann man für fast jedes erdenkliche Programm eine Konfigurationsdatei erstellen. Diese muss dann aber auch wieder in der Datei .lircrc im Home-Verzeichnis eingebunden werden.

Eventuell muss das entsprechende Programm neugestartet werden, damit die Fernbedienung ordnungsgemäß funktioniert.


Fazit


Die Einrichtung einer Fernbedinung unter Ubuntu bzw. Linux gestaltet sich sehr umfangreich. Es bedarf einiger Grundkenntnisse im Umgang mit der Konsole, dem Kernel und den Konfigurationsdateien. Mit einer guten und übersichtlichen Anleitung ist die Einrichtung aber durchaus machbar.

Michael Kostka

Fachinformatiker / Systemintegration
Ich schreibe hier regelmäßig zu den Themen Android, Web, Linux und Hardware.

Raspberry Pi Starter Kit

Leave a comment

I have read the privacy policy and agree to electronically store and process my input data to answer the request.

Alex

07.12.2013 21:45

Ich hätte eine Frage: gibt es auch eine lösung für Funkfernbedienungen? Ich habe eine ATI Remote Wonder. Aktuell läuft Ubuntu 13.10. Vielen Dank.