Einstieg in LIRC mit inputlirc
inputlirc konfigurieren
Der Daemon inputlircd erwartet eine Liste mit Eingabegeräten auf der Kommandozeile. Es werden nur Ereignisse von diesen Geräten gelesen.
Erkennt der Befehl ir-keytable
einen Empfänger, aber inputlircd reagiert nicht darauf, muss geprüft werden, ob das Gerät dort aufgelistet ist. Die Liste ist in der Datei /etc/default/inputlirc
in der Variable EVENTS
hinterlegt. Taucht das Gerät dort nicht auf, muss es hinzugefügt und die Konfiguration neu eingelesen werden:
# service inputlirc reload
Die Distributionen haben i.d.R. jedoch den Daemon inputlircd so konfiguriert, dass auf alle Eingabegeräte reagiert wird und als Standardwert EVENTS="/dev/input/event*"
hinterlegt, was alle Eingabegräte umfasst.
Steffen Rumberger
Den Dialog für die Startprogrammeinstellungen startet man in der Shell via gnome-session-properties
Clientprogramme konfigurieren
Medienplayer usw. fungieren meist selbstständig als LIRC-Clientprogramm. Eine Ausnahme ist das Terminal. Dieses hat in der Regel keinen LIRC-Client integriert, wertet die LIRC-Konfigurationdatei nicht aus und reagiert nicht auf Ereignisse vom LIRC-Daemon inputlircd, sodass das Programm irexec aus dem Paket lirc
benötigt wird, um einen Shell-Befehl zu starten.
Ist das Programm irexec gestartet, liest es, wie alle LIRC-Clientprogramme, die Konfigurationsdatei $HOME/.lircrc ein. Die Datei ist eine einfache Textdatei.
Um irexec automatisch beim Anmelden zu starten und Shell-Befehle mit der Fernbedienung ausführen zu können, fügt man den Befehl irexec --daemon
zum Autostart hinzu.
Damit auf Tasten wie die zur Lautstärkeregelung und Ton-An/Aus-Wechsel reagiert wird, muss die LIRC-Konfigurationsdatei $HOME/.lircrc angelegt werden und so aussehen wie im unten stehenden Listing.
begin ## Lauter prog = irexec button = KEY_VOLUMEUP ## Wenn Pulsaudio benutzt wird config = pactl set-sink-volume 0 -- +13 ## Wenn ALSA bentutzt wird #config = amixer -q set Master 13end begin ## Leiser prog = irexec button = KEY_VOLUMEDOWN ## Wenn Pulsaudio benutzt wird config = pactl set-sink-volume 0 -- -13 ## Wenn ALSA bentutzt wird #config = amixer -q set Master 13end begin ## Ton-An/Aus-Wechsel prog = irexec button = KEY_MUTE ## Wenn Pulsaudio benutzt wird config = pactl set-sink-mute 0 -- 1 config = pactl set-sink-mute 0 -- 0 ## Wenn ALSA bentutzt wird #config = amixer -q set Master mute #config = amixer -q set Master unmute end begin ## VLC starten und beenden. prog = irexec button = KEY_POWER2 ## starten und Internetradio öffnen config = vlc http://livestream.example.net & ## beenden config = vlc vlc://quit end begin ## VLC Play/Pause-wechsel prog = vlc button = KEY_PLAYPAUSE config = key-play-pause end
Zum Verständnis der Konfigurationsdatei muss man wissen, dass die LIRC-Clientprogramme bei jeder Betätigung einer Taste auf der Fernbedienung, von oben nach unten der Reihe nach, alle Blöcke überprüfen. Ist der jeweilige Block für den jeweiligen Client zuständig (d.h. prog
und button
passen) wird der mit config
angegebene Befehl vom Client ausgeführt.
Mehrere aufeinander folgende config
-Zeilen werden im Wechsel ausgeführt, sodass beim ersten Drücken die erste und bei erneutem Drücken dann die nächste config
-Zeile ausgeführt wird. So lassen sich z.B. Funktionen wie Ton An/Aus oder Play/Plause-Wechsel erstellen (»Toggle«).
Tastensequenzen lassen sich durch mehrere button
-Zeilen hintereinander festlegen.
Mögliche Optionen eines Blocks | |
Option | Beschreibung |
proc | LIRC-Clientprogramm, an das sich der Befehl richtet, z.B. irexec, vlc usw. |
button | Taste, auf die reagiert werden soll |
config | Client spezifischer Befehl, der vom LIRC-Clientprogramm ausgeführt werden soll. |
Daneben gibt es noch weitere Optionen, die auf der LIRC-Webseite dokumentiert sind, aber für einfache Setups in der Regel nicht benötigt werden.
Ist die Konfigurationsdatei angelegt und der Daemon inputlircd gestartet, kann das LIRC-Clientprogramm gestartet werden. In diesem Beispiel das oben erwähnte Programm irexec zur Ausführung von Shell-Befehlen.
Um irexec zu starten, falls noch keine Instanz läuft, öffnet man ein Terminal und führt folgenden Befehl aus:
$ irexec --daemon
Ist irexec gestartet, sollten durch das Drücken der Tasten für »Lauter«, »Leise« und »Stumm« die entsprechenden Befehle ausgeführt werden.
Für erste Tests und zum Debuggen der LIRC-Konfigurationsdatei ist das Kommandozeilen-Programm ircat hilfreich. Es kann die Rolle eines beliebigen LIRC-Clientprogramms annehmen und gibt den Befehl für die jeweils gedrückte Taste aus, ohne diesen auszuführen.
Als Argument erwartet ircat den Namen des Clientprogramms, das debuggt werden soll, so wie mit prog
in der Konfigurationsdatei angegeben. Um vorzugeben, ircat sei der VLC Media Player, damit also alle Blöcke mit gesetztem prog=vlc
greifen, muss folgender Befehl ausgeführt werden:
$ ircat vlc
Angemerkt sei noch, dass die Desktopumgebung GNOME Eingabegeräte der HID-Klasse erkennt und auf die Tastencodes KEY_VOLUMEDOWN
, KEY_VOLUMEUP
und KEY_MUTE
auch ohne LIRC reagiert. Unter KDE stellt KDELirc die Verbindung zwischen LIRC und dem Desktop dar.
VLC-Kommandos für die Option | |
VLC-Kommando | Beschreibung |
key-disc-menu | Zum DVD-Menü gehen |
key-loop | Normal/Wiederh./Schleife |
key-nav-activate | Navigation aktivieren |
key-nav-down | Nach unten bewegen |
key-nav-left | Nach links bewegen |
key-nav-right | Nach rechts bewegen |
key-nav-up | Nach oben bewegen |
key-next | Nächstes |
key-pause | Pause |
key-play-bookmark1 bis key-play-bookmark10 | Wiedergabelistenlesezeichen |
key-play-pause | Play/Pause-Wechsel |
key-play | Play |
key-prev | Vorheriges |
key-quit | Beenden |
key-random | Zufällig |
key-stop | Stopp |
key-title-next | Nächsten Titel wählen |
key-title-prev | Vorherigen Titel wählen |
key-toggle-fullscreen | Vollbild-An/Aus-Wechsel |
key-vol-down | Leiser |
key-vol-mute | Ton aus |
key-vol-up | Lauter |
VLC-Kommandos ausführen
Damit der VLC media player als LIRC-Clientprogamm agiert, die LIRC-Konfigurationsdatei auswertet und per Fernbedienung mittels LIRC gesteuert werden kann, muss die LIRC-Schnittstelle aktiviert sein. Diese aktiviert man im Dialog vlc --help --advanced
aufrufen, dort werden sie unter »Hotkeys« aufgelistet.
Alle diese Kommandos sind im Quellcode des VLC media player in folgender Datei definiert: src/libvlc-module.c.
IR-Empfänger selbst bauen
Im Netz gibt es Anleitungen für den Empfänger-Bau (als HID implementiert), z.B. USB-IR-Boy und usb-ir-remote.
Autoreninformation
Steffen Rumberger ist Debian GNU/Linux-Nutzer. Er nutzt den VLC Media Player für Internetradio und DVB-T.
Dieser Artikel ist in freiesMagazin 04/2014 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.