MLD - Fernbedienung einrichten mit Remote Plugin
Der Artikel bezieht sich auf den mitgelieferten IR-Empfänger einer TV-Karte der Firma Technotrend bzw. einer kompatiblen Karte, in Verbindung mit dem Remote-Plugin, nicht auf LIRC.
Um eine ältere oder Universal-FB zu nutzen sind ein paar Voraussetzungen zu beachten:
- Die FB muss das RC5-Protokoll nutzen, das seltenere RCMM Protokoll, wie es z.B. die Activy FB nutzt, sollte auch gehen.
- Der Empfänger muss an der richtigen Karte hängen (Ausprobieren, wenn man z.B. eine FF- und eine Budgetkarte installiert hat)
- Das Remote-Plugin muss geladen sein.
Will man nun eine mitgelieferte oder unterstützte FB nutzen ist das recht einfach:
- Unter /usr/share/av7110_loadkeys findet man einige vorgefertigte *.rc5
und *.rcmm Dateien die man nutzen kann.
. Am besten kopiert man sich diese nach /mnt/hd(xy)/mld/etc/vdr/ da man vielleicht bleibende Änderungen vornehmen will (die alles.rc5 funktioniert z.B. nicht ohne weiteres, wird gar nicht geladen). - Nun muss noch ein Eintrag in die rc.config damit das Teil auch verwendet wird. z.B: DVB_REMOTE_KEYMAP="/mnt/hda5/mld/etc/vdr/hauppauge.rc5"
- Eventuell muss man vorher angelernte Codes einer FB aus der remote.conf entfernen (aber nicht die KBD-Codes, die beziehen sich auf die Tastatursteuerung von vdr)
Wenn vdr nach einem Reboot dann trotzdem eine Fernbedienung anlernen will, hat irgendwas nicht funktioniert, Logfiles durchsuchen (/var/log/messages) wo der Fehler liegt, Namen, Pfade, Schreibweise kontrollieren.
Will man nun eine andere Fernbedienung einsetzen, z.B. von einem alten Gerät, kann man einfach versuchen sie anzulernen. Dazu sollte keine *.rc5 geladen sein und evtl. vorhandene alte Codes müssen in der remote.conf entfernt werden. Dann kann man eine Erkennung probieren (am besten mit frischen Batterien). Ist dies nicht erfolgreich, sendet die FB mit hoher Wahrscheinlichkeit kein RC5 und kann nicht genutzt werden.
Will man eine Universal-FB einsetzen steht man vor dem Problem das man meist nicht weiss welcher FB-Programmiercode eine möglichst vollständige Tastenbelegung ergibt und dazu auch noch in RC5 sendet. Manchmal gibt es auch Konflikte mit anderen Geräten die auch RC5 empfangen, dann ist die gesendete RC5-Adresse wichtig.
Oft haben schon findige Leute eine gute Programmierung einer verbreiteten FB herausklamüsert, es kann also helfen eine Suchmaschine mit der FB-Bezeichnung und "vdr" zu füttern oder z.B. im VDR-Portal nach der Bezeichnung zu suchen (viele der Lösungen beziehen sich aber auf LIRC, man kann es aber trotzdem mal versuchen, wenn zufällig die Einstellung RC5 sendet sollte es auch klappen).
Wenn das alles nichts bringt und man nicht endlos FB-Programmierungen mit mühsamem Anlernen durchprobieren will (um nach der Hälfte des Anlernvorganges festzustellen das viele Tasten gar nicht oder mit gleichen Codes belegt sind), kann der Debug-Mode des IR-Interfaces eine Hilfe sein. Auch wenn man es mit einem Konflikt mit anderen Geräten zu tun hat (z.B. steuert die TV-FB plötzlich den VDR und umgekehrt).
Man kann dann die von der FB gesendeten Codes und Adressen auf der Konsole sehen (auch nebenbei, also beim Fernsehen ), bei vielversprechenden FB-Prog-Codes, also alle Tasten scheinen Belegt) fängt man an die Codes aufzuschreiben.
Dazu bereitet man am besten eine Tabelle vor: Obere Zeile von links nach rechts trägt man FB-Prog-Code und Adresse auf der gesendet wird ein.
Linke Spalte von oben nach unten die FB-Tastenbezeichnungen/Symbole. In die Spalten trägt man nun die Empfangenen Codes zu jeder Taste ein. Dabei sollte man darauf achten das die Empfangene Adresse immer gleich bleibt weil sich der DVB-Treiber in der jetzigen Version nur auf eine Adresse konzentriert (es soll zwar patches geben, die sind aber nur für individuelle Probleme sinnvoll, mir geht auch nicht in den Kopf wieso das Teil im Debug-Mode unterschiedliche Adressen ausspuckt, sie aber im Normalbetrieb nicht unterscheiden kann...).
Hat man nun alles notiert kann man schauen ob irgendwelche Codes doppelt vorkommen, nicht oder mit einer anderen Adresse belegt sind. Sind es einem zuwenig nutzbare Tasten versuch man einen anderen Code. Man sollte zunächst Gerätecodes von Philips versuchen, da ist die Wahrscheinlichkeit das es RC5 ist recht hoch. Auch Grundig, Technisat und "Universal" scheinen öfter zu gehen.
Hat man eine gute Belegung gefunden, kann man sich aus den Daten eine *.rc5 Datei basteln oder, viel einfacher, einfach den gefundenen Code anlernen, oder sich eine sektion für die FB in der remote.conf basteln oder verändern.
Der debug-Modus kann mindestens auf zwei versch. Arten aktiviert werden: Einmal von einer Konsole aus, wenn man meint man ist schnell fertig:
Es muss anscheinend eine *.rc5 oder eine Keymap aus der remote.conf geladen sein, also am besten eine fertige nehmen, alles bis auf einen Code z.B. für die "0" rausnehmen, damit man bei der rumprobiererei nicht irgendwie sinnlos den vdr bedient. VDR nach booten und Erscheinen des MLD-Schirms im more-verbose modus hochfahren lassen, (alternativ sollte auch LOGGING=1 in der rc.config gehen)
Konsole mit ALT-F4 öffnen, als root einloggen, dann
echo 16 > /sys/module/dvb_ttpci/parameters/debug
(gilt nur für aktuelle Version, siehe unten) eingeben, danach mit
tail -f /var/log/messages
das Logfile auf den Schirm bringen.
Falls da zuviele Meldungen von irgendwelchen Addons durchlaufen, so das
man die FB-Codes nicht mehr in Ruhe sehen kann: Addons deaktivieren.
Jetzt sollte man die Daten in der Form:
Oct 16 11:14:05 (none) user.warn kernel: #########000007d0######### addr 31 data 0x10 (keycode 17) Oct 16 11:14:05 (none) user.warn kernel: #########000007d0######### addr 31 data 0x10 (keycode 17) Oct 16 11:14:05 (none) user.warn kernel: #########00000fd1######### addr 31 data 0x11 (keycode 18) Oct 16 11:14:06 (none) user.warn kernel: #########00000fd1######### addr 31 data 0x11 (keycode 18)
sehen können.
Man kann den Debug-Modus auch in der rc.config vereweigen:
DVB_DRIVER="dvb-ttpci debug_ir=16, budget"
(gilt nur für aktuelle Version, siehe unten)
(hier für eine FF-Karte an der der IR-Empfänger hängt und eine Nova)
Die Ausgabe auf der Konsole beendet man mit CTRL-c,
den Debug-Modus indem man
echo 0 > /sys/module/dvb_ttpci/parameters/debug
eingibt.
Wenn VDR nicht nebenbei laufen soll, weil man fürchtet irgendwas zu verstellen gibt man als erstes nach dem Login auf der Konsole
rcvdr stop
ein.
Wichtig:
Bei mehr als einer Karte ist die Reihenfolger der Module, die in der rc.config aufgerufen werden zu beachten.
DVB_DRIVER="dvb-ttpci,budget-ci"
Den Parameter debug_ir=16 gab es im DVB_treiber nur wenige Monate, er wird also über kurz oder lang auch aus der MLD verschwinden und durch debug=16 ersetzt werden. Vermutlich wird sich auch der Pfad zu /sys/module/dvb_ttpci/debug ändern, also mal nachschauen wo die Datei debug dann liegt und die Befehlszeile anpassen.