Benutzer-Werkzeuge

Webseiten-Werkzeuge


fremdfernbedienung_mit_ir-empfaenger_der_hauppauge_wintv_nova_hd_s2_nutzen

Meine One for ALL SmartControl 7960 soll zusammen mit dem IR-Empfänger der Hauppauge WinTV Nova HD S2 genutzt werden. Einen entsprechenden Code dafür habe ich nicht herausfinden können, also soll der Empfänger an die Fernbedienung angepasst werden. Wie sich herausstellt, filtert der Treiber der TV-Karte (cx88xx) aber alle nicht-Hauppauge Fernbedienungen anhand der device-id heraus. Ausserdem werden nur bestimmte Codes angenommen. Dies soll mit einem Patch der Treiber-Sourcen umgangen werden (auf diese Weise kann der IR-Empfänger praktisch für fast jede beliebige Fernbedienung nutzbar gemacht werden).


  1. Fernbedienung wie in diesem Beitrag beschrieben einrichten.
  2. lirc Konfiguration anpassen
    • cd /etc/lirc
      wget "http://www.software-schlosser.de/downloads/htpc/urc_7960.conf"
      nano lircd.conf
    • Dort folgende Zeile einfügen:
    • include "/etc/lirc/urc_7960.conf"
  3. Treiber Patchen (Methode A - geeignet für Ubuntu):
    • Patch herunterladen:
    • sudo wget "http://www.software-schlosser.de/downloads/htpc/v4l-urc7960.patch" -O "/usr/src/v4l-urc7960.patch"
    • Ubuntu Kernel Headers installieren:
    • sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
    • Ubuntu Kernel Headers patchen:
    • cd /usr/src/linux-headers-`uname -r`
      sudo patch -p2 < /usr/src/v4l-urc7960.patch
    • Ubuntu Kernel Sourcen wie hier beschrieben holen und vorbereiten.
    • In das soeben erstellte Kernel Source Verzeichnis wechseln (z.B. /usr/src/linux-2.6.35).
    • Patch anwenden, Kernelmodul kompilieren und installieren:
    • sudo patch -p2 < /usr/src/v4l-urc7960.patch
      sudo make -C /usr/src/linux-headers-`uname -r` M=`pwd` ./drivers/media/video/cx88/cx88xx.ko
      sudo make -C /usr/src/linux-headers-`uname -r` M=`pwd` ./drivers/media/IR/keymaps/rc-urc-7960.ko
      sudo cp ./drivers/media/video/cx88/cx88xx.ko /lib/modules/`uname -r`/kernel/drivers/media/video/cx88/
      sudo cp ./drivers/media/IR/keymaps/rc-urc-7960.ko /lib/modules/`uname -r`/kernel/drivers/media/IR/keymaps/
      sudo depmod -a
  4. Treiber Patchen (Methode B - geeignet für Ubuntu und die meisten anderen Distributionen):
    • v4l Sourcen holen:
    • cd /usr/local/src
      hg clone http://linuxtv.org/hg/v4l-dvb
    • Patch anwenden, v4l kompilieren und installieren:
    • cd v4l-dvb
      wget "http://www.software-schlosser.de/downloads/htpc/v4l-urc7960.patch"
      patch -p1 < ./v4l-urc7960.patch
      sudo make menuconfig # ggf. unötige Treiber rausnehmen
      sudo make && sudo make install

Neu starten, Fertig. Die neue Fernbedienung sollte nun mit lirc genutzt werden können.

Wer MythTV nutzt, kann dafür meine .lircrc nutzen.


Wer eine andere Fernbedienung oder einen anderen Code der URC-7960 nutzen will kann dies auch tun (Grundlegende Programmierkenntnisse sind hierfür von Vorteil):

Zunächst im v4l-dvb Verzeichnis in der Datei linux/drivers/media/video/cx88/cx88-input.c in der Funktion void cx88_ir_irq(struct cx88_core *core) folgende Zeile wieder einkommentieren:

printk(KERN_DEBUG "%s IR: dev: 0x%0X, code: 0x%0X", ir->core->name, dev, code);
Danach kompilieren und den neuen Treiber laden bzw den Rechner rebooten. Dann nacheinander die Tasten der Fernbedienung drücken und in der Datei /var/log/debug den Wert für dev (Gerätecode) und jeweils den code ablesen. Die Codes müssen in einer neuen „keymaps-table“ eingerichtet werden. Wer dazu keine Lust hat kann zur Not einfach die Datei linux/drivers/media/IR/keymaps/rc-urc-7960.c anpassen ;) Die Definitionen für die KEY_ Variablen findet man in /usr/include/linux/input.h.

Danach kann die einkommentierte Zeile wieder auskommentiert werden. Die Zeile darunter muss um den neuen Gerätecode ergänzt werden. Z.B.:

if ( dev != 0x1e && dev != 0x1f && dev != 0x08 && dev != 0x55 )

fremdfernbedienung_mit_ir-empfaenger_der_hauppauge_wintv_nova_hd_s2_nutzen.txt · Zuletzt geändert: 08.08.2016 (Externe Bearbeitung)