Inhaltsverzeichnis

06 Fernbedienung

Damit man den VDR auch komfortabel mit einer Fernbedienung, wie man sie von einem herkömmlichen Videorekorder her kennt, bedienen kann,
muss man einen IR-Empfänger haben.
Dieser sollte nach möglichkeit das Protokoll RC-5 können, da dieses von den meisten Fernbedienungen unterstützt wird.
Ich nutze ein IR-Modul von Atric. Dieser kann, da er mit dem Powerswitch des Mainboards und der
5V FSB Spannungsleitung der Netzteils verbunden ist, den VDR auch mit der Fernbedienung einschalten.
Das IR-Modul benötigt eine serielle Schnittstelle.

YAVDR

Für den Atric Empfänger muss im Webfrontend unter Einsellungen –> Fernbedienung der „Lirc-Support“ eingeschaltet und als Empfänger der „Home-brew (16×50 UART compatible serial port)“ ausgewählt werden.
Danach nur noch die Serielle Schnittstelle auswählen und speichern.

Lirc

Mit dem Programm „Lirc“ kann man Linux mit einer Fernbedienung steuern.

Installation

Installiert werden die „Lirc“ Module folgendermaßen:

apt-get install lirc

Hierbei wird ein Menü angezeigt, wo man folgendes für das Atric IR-Modul auswählt:

Auswahl Treiber:
  IRdeo

Auswahl Modell:
  Serial Port (UART) : Scientific Atlanta Cable box
  
Auswahl Anschlussdevice:
  /dev/ttyS0

Serieller IR-Empfänger

Zuerst müssen wir den Seriellen-Port von allen möglichen Zugriffen befreien.
Normalerweise wird das Programm setserial durch die Installationsschritte von Lirc eingestellt.
Man sollte dennoch sichergehen dass dies auch erfolgt ist.

vi /etc/serial.conf

Hier muss folgende Zeile stehen

/dev/ttyS0 uart none

Nun setzt man folgendes in die /etc/lirc/lirc_options.conf

[lircd]
driver          = default

[modinit]
code = modprobe serial_ir

Dadurch wird zunächst das Programm lirc-setup, welches vor lircd läuft, den Seriellen Treiber laden. Danach startet lircd mit dem Treiber default.

IR-Modul testen

Nun kann man Lirc testen.

systemctl stop lirc
mode2 -d /dev/lirc0

Wenn mode2 läuft, einfach einige Tasten an der Fernbedienung drücken. Es erscheinen wilde Zahlen- und Buchstabenkombinationen.
Beenden kann man dies mit CTRL+C.

Anlernen

Nachdem wir nun wissen dass Lirc und die Fernbedienung funktionieren, lernen wir nun Lirc auf die Fernbedienung an.

systemctl stop lirc
irrecord -n -d /dev/lirc0 lircd.conf

Hier den Anweisungen folgen. Nachdem irrecord fertig ist, schreibt es die Datei „lircd.conf“, welche die gelernten Einstellungen, die irrecord erfasst hat, enthält.
Diese Datei kopieren wir nun in das Lirc Konfigurationsverzeichnis.

cp lircd.conf /etc/lirc

Lirc testen

Jetzt noch Lirc starten und testen.

systemctl start lirc
irw

Wenn irw läuft, können wir einige Tasten auf der Fernbedienung drücken.
Die Ausgabe von sollte dann die gelernten Funktionen wiederspiegeln.

Troubleshooting

Die heutigen DVB Treiber installieren standardmäßig das „rc_core“ Modul. Dieses Modul wird in vielen
DVB-Treibern genutzt. Viele DVB-Karten haben ja schließlich auch einen RC-Anschluss für eigene Fernbedienungen.
Dieses „rc_core“ Modul kollidiert immer mit dem „lirc_serial“ Modul.

Abhilfe hierzu:

(Alle lirc Module sichern, auch die der evtl. vorherigen Kernel)

eventlirc

Die Tasten meines „GMC AVC-M1“ Gehäuses werden über eventlirc an Lirc übersetzt und übergeben.

Tasten testen

Zunächst muss mann wissen welches Input Device diese Tasten belegen.

Nun weiß man das entweder das „event2“ oder „event3“ das gesuchte sein muss.
Dies kann man herausfinden, wenn „evtest“ mit dem jew. Event-Device getestet wird.

apt-get install evtest

Danach eventlirc stoppen

initctl stop eventlirc

und evtest ausführen (hier mit „event2“)

evtest /dev/input/event2

Wenn nun die Tasten am Gehäuse gedrückt und am Bildschirm ausgegeben werden, ist dies das richtige event-Device.

Tasten übersetzen

In der Ausgaben von „evtest“ findet man zum o.a. event-Device folgende Ausgabe

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x15c2 product 0xffdc version 0x0
Input device name: "iMON Panel, Knob and Mouse(15c2:ffdc)"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 1 (KEY_ESC)
    Event code 28 (KEY_ENTER)
    Event code 103 (KEY_UP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 108 (KEY_DOWN)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 128 (KEY_STOP)
    Event code 139 (KEY_MENU)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 168 (KEY_REWIND)
    Event code 174 (KEY_EXIT)
    Event code 208 (KEY_FASTFORWARD)
    Event code 212 (KEY_CAMERA)
    Event code 226 (KEY_MEDIA)
    Event code 272 (BTN_LEFT)
    Event code 273 (BTN_RIGHT)
    Event code 353 (KEY_SELECT)
    Event code 377 (KEY_TV)
    Event code 389 (KEY_DVD)
    Event code 392 (KEY_AUDIO)
    Event code 393 (KEY_VIDEO)
    Event code 407 (KEY_NEXT)
    Event code 412 (KEY_PREVIOUS)
  Event type 2 (EV_REL)
    Event code 0 (REL_X)
    Event code 1 (REL_Y)
    Event code 8 (REL_WHEEL)
Properties:
  Property type 20 (EV_REP)
    Property code 0 (REP_DELAY)
      Value    250
    Property code 1 (REP_PERIOD)
      Value     33
Testing ... (interrupt to exit)

Hier sieht man den „Input device name“. Dieser findet sich wieder in der Konfigurationsdatei von eventlirc

vi /etc/eventlircd.d/imon_knob_panel.evmap

In dieser Datei übersetzt man die Befehle der gedrückten Tasten, in die Befehle, welche allgemein dem VDR-System durch die /var/lib/vdr/remote.conf bekannt gegeben wurden.
Inhalt:

KEY_MEDIA           = KEY_MENU        # Knop "AV Center"
KEY_ENTER           = KEY_OK          # Knop "Enter"

Damit diese Einstellungen nun aktiviert werden, muss noch der eventlirc Daemon neugestartet werden.

initctl restart eventlircd