LIRC
Teile dieser Seite stammen aus dem VDR-Wiki
Inhaltsverzeichnis
Fernbedienung auswählen
Für die Fernbedienung des VDR sind hauptsächlich die folgenden Dateien verantwortlich:
- /etc/lircd.conf ist die Konfigurationsdatei zu LIRC, hier werden die Tasten-Codes der Fernbedienung "Klartext" (z.B. "OK") zugeordnet.
- /etc/vdr/remote.conf enthält die Tasten-Zuordnungen aller konfigurierten Fernbedienungen zu VDR-Tasten bzw. VDR-Aktionen.
Bei easyVDR sind die o.g. Dateien nur symbolische Links auf die Konfigurationsdateien im Order /etc/vdr/remotes/....
Hier findet man für eine Menge Fernbedienungen die passenden Dateien. Wenn dort nicht das passende Modell aufgelistet ist, wird man vieleicht direkt bei lirc fündig: supported remote controls.
Um die Verknüpfungen richtig zu setzen, wird zunächst die falsche Verknüpfung gelöscht und dann neuer erstellt:
cd /etc rm lircd.conf ln -s /etc/vdr/remotes/FernbedienungX/lircd.conf cd /etc/vdr rm remote.conf ln -s /etc/vdr/remotes/FernbedienungX/remote.conf
Anschließend den VDR neu starten.
Ansonsten erstellt man sich die lirc.conf
mit irrecord
selbst (s.u.).
Fernbedienung per Hand anlernen
Um die Fernbedienung per Hand anzulernen müsst ihr folgende Schritte vornehmen.
1. VDR stoppen um Prozess lircd anzuhalten
stopvdr
2. Löschen oder Umbenennen einer vorhandenen Datei /etc/lircd.conf
, diese Datei beinhaltet die LIRC Konfiguration der Fernbedienung.
mv /etc/lircd.conf /etc/lircd.conf.alt
3. Neue lircd.conf anlernen. (evtl. ist beim folgenden Befehlsaufruf die Option -d /dev/lirc0
nötig, ohne diese wird /dev/lirc verwendet.) Dazu vorher die Schnittstelle initialisieren:
lirc_on_com1 irrecord /etc/lircd.conf
Die hierbei wichtigen Tasten sind.
Up Down Menu Ok Back Left Right Red Green Yellow Blue 0...9 Power Volume+ Volume- Mute
4. Prozess lirc starten.
lircd
5. Fernbedienung überprüfen.
irw
6. Lircd direkt überprüfen.
Um den Lircd direkt zu überprüfen, kann der Socket direkt benutzt werden, dort sind dann auch die Befehle, wie Green, Red, etc. direkt gesehen werden:
socat UNIX-CONNECT:/dev/lircd STDIO
Anmerkung: Falls irw ordnungsgemäß funktioniert und der VDR fehlerfrei LIRC aufruft, die Fernbedienung aber dennoch nicht im VDR funktioniert, vergewissert Euch, dass /etc/lircd.conf und remote.conf auch wirklich die gleichen Namen der Tastenbelegungen haben.
7. remote.conf erstellen
Über das OSD kann man mit der Funktion "Fernbedienung neu anlernen" eine neue remote.conf anlegen, alternativ löscht man die vorhande remonte.conf und startet den VDR neu.
Fehlersuche:
Bei einem stopvdr werden auch die lirc-module entladen. Deshalb muss die Schnittstelle z.B. mit lirc_on_com1 erneut zu initialisiert werden. Lircd wird dabei nicht mitgestartet.
Signaltransport:
Fernbedienung --> FB-Empfänger --> com1 --> lirc_serial --> /dev/lirc0 --> (A) --> lircd --> /dev/lircd --> (B) --> VDR
- bei (A) kann man mit "mode2" testen bzw mit "irrecord" ein lircd.conf erstellen, lircd darf dazu nicht laufen.
Also entweder:- bei laufendem VDR:
- killall lircd
- irrecord - oder:
- stopvdr
- lirc_on_com1
- irrecord
- bei laufendem VDR:
- bei (B) kann man mit irw testen was ankommt
Test der Installation mit mode2
Nach der Installation von LIRC, kann man einen ersten Test bei gestopptem Lirc machen. Wenn man Tasten auf der Fernbedienung drückt muß eine Ausgabe kommen, ansonsten sind die Treiber nicht korrekt installiert.
killall lircd mode2 -d <device>
<device> ist in den meisten Fällen "/dev/lircd" oder "/dev/lirc0"
Konfiguration der lircrc zum Ausführen von Aktionen
Irexec ist ein nützlicher daemon, mit dem man so ziemlich alles anstellen kann.
Die Konfigurations-Datei lircrc wird unter /etc/lircrc
oder unter ~/.lircrc
abgespeichert.
Aufbau der lircrc.
begin prog = <Daemon für Skript- und Programm-Ausführungen> button = <Tasten-Name, ist in der lircd.conf definiert> config = <Auszuführender Befehl> mode = <Modus: Schaltet Modus ein oder aus> repeat = <Wiederholung an oder aus (0 oder 1)> remote = <Name des Buttons in der lircd.conf> end
Beispiele.
4 x Button Power würde einen Reboot einleiten, somit sind Doppel-Belegungen ("über") vdr möglich.
begin prog = irexec button = Power button = Power button = Power button = Power config = reboot end
1 Key = 2 Funktionen.
begin prog = irexec button = Reserve config = eject config = eject -t end
Wurde diese Datei erzeugt, kann der daemon gestartet werden, wichtig dass dieses nach lirc geschieht (Reihenfolge beachten).
start-stop-daemon --start --verbose --exec /usr/local/sbin/lircd -- /etc/lircd.conf start-stop-daemon --start --verbose --exec /usr/local/bin/irexec -- --daemon /etc/lircrc
Sollte irexec nicht auf anhieb funktionieren muss man noch die Path Variable ins init Script schreiben.
PATH=$PATH:/usr/local/sbin:/usr/local/bin
XMBC mit LIRC
Um XBMC mit der Fernbedienung steuern zu können wird die Datei /root/.xbmc/userdata/Lircmap.xml
benötigt. Sie verknüpft die Tasten aus der lircd.conf
mit den Befehl-Definitionen aus der Datei /root/.xbmc/userdata/keymap.xml
:
Funktioniert die Fernbedienung unter easyVDR, kann die Lircmap.xml
automatisch aus der /etc/lircd.conf
und /etc/vdr/remote.conf
mit dem Skript: easyvdr-create-lircmapxml.sh
generiert werden. (aktuelle Fassung der create_lircmap gibt es hier)
Zum Ausprobieren:
/usr/bin/easyvdr/easyvdr-create-lircmapxml.sh
Bekommt man dort eine sinnvolle Ausgabe, diese beim nächsten Aufruf des Skriptes in die Lircmap.xml "umleiten":
/usr/bin/easyvdr/easyvdr-create-lircmapxml.sh > /root/.xbmc/userdata/Lircmap.xml
siehe auch hier: [1]