Debian pvr350 remote

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Einrichten der Fernbedienung für Hauppauge-PVR150/250/350 unter Debian (getestet mit etch)

Es hat viel Mühe und Zeit gekostet, aus dem Wust von Anleitungen, Links und Hints die richtige Richtung zu finden. Es gibt sehr viele Sackgassen und Umwege zum Ziel. Hier ist nun der aktuelle (Stand 10.2006) richtige Weg.

Benötigte Kernel-Module: ir_kbd_i2c ir_common (wird automatisch von ir_kbd_i2c geladen)

Pakete: input-utils udev (standardmäßig installiert)

Step-by-Step:

1. Eintragen von ir_kbd_i2c in /etc/modules

      Das Modul kann mit "modprobe ir_kbd_i2c" schon mal geladen werden, um die nächsten Steps durchzuführen.
      Wenn dieses Modul geladen ist, wird ein neuer Eintrag in /dev/input/ generiert.
      Dieser Eintrag heisst dann /dev/input/event<nächste freie Nummer>. 
      Die Nummer hängt von der Anzahl der angeschlossenen Eingabegräte ab.

2. Erstellen der Datei /etc/udev/rules.d/000_privat.rules

      # cat /etc/udev/rules.d/000_privat.rules
      KERNEL=="event[0-9]*",SUBSYSTEMS=="input",ATTR{dev}=="13:67",NAME="input/%k",mode="666",group="video",SYMLINK="input/videoremote"
      
      Den Eintrag ATTR{dev}=="13:67" bitte mit "udevinfo --query=all --attribute-walk --name=input/event<Nummer von Step 1>" ermitteln.
      Um die Einstellungen zu übernemen, "udevtrigger" ausführen.
      Anschliessend muss in /dev/input ein Symlink "videoremote" existieren, der auf den Event zeigt.

3. Setzen der Keycodes für die Fernbedienung

      Da in dem Kernel-Modul ir_kbd_i2c nicht alle Tasten der Fernbedienung eingetragen sind, müssen diese Tasten neu definiert werden.
      Mit "tail -f /var/log/syslog" kann man das überprüfen.
      In der Ausgabe erscheint beim betätigen der "Go"-Taste auf der Fernbedienung:
       i2c IR (Hauppauge): unknown key: <irgendwas dahinter>
      
      Zunächst wird eine Datei "/etc/pvr-remote.keys" erstellt.
      Hierzu folgende Komandozeile ausführen:>
        # for i in $(seq 0 127); do echo -n "0x00"; echo "$(echo "ibase=10; obase=16; $i"|bc) = $i" ; done >/etc/pvr-remote.keys
      Die Datei editieren. Die erste Zeile muss in "0x0000 = 128" geändert werden.
      Dann die Datei mit:
        # input-kdb -f /etc/pvr-remote.keys $(/bin/ls -l /dev/input/videoremote |awk '{print $10 }' |sed 's#[^0-9]\+##')
      laden. 
      Damit diese Codes beim Systemstart geladen werden, muss in /etc/init.d/ ein Startscript erstellt werden.
      Mein Script:
      #!/bin/sh
      #################
      #
      # set keycodes for every key on pvr-remote
      #
      #################
      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      INPUT_NR=$(ls -l /dev/input/videoremote |awk '{print $11 }' |sed 's#[^0-9]\+##')
      RETURNVAL=2
      [ -n "$INPUT_NR" ] && {
            input-kbd -f /etc/pvr350-remote.keys $INPUT_NR >/dev/null 2>&1
            RETURNVAL=$(input-kbd $INPUT_NR 2>&1 |grep "^map:" |awk '{print $2}')
      }
      case $RETURNVAL in
         128)
               RETURNVAL="done"
               ;;
           2)
               RETURNVAL="no event found"
               ;;
           *)
               RETURNVAL="failled ($RETURNVAL)"
               ;;
      esac
      echo "Setting Keycodes for PVR350-REMOTE .... $RETURNVAL"
      echo "Setting Keycodes for PVR350-REMOTE .... $RETURNVAL" |logger -t keycodes
      #-------- end script ----------
      dieses Script ausführbar machen und mit "update-rc.d <scriptname> start 18 2 3 4 5 ." in die Runlevels einstellen.
      Danach sollten im Sylog keine "unknown key"-Meldungen mehr auftauchen.

4. Anlernen der Fernbedienung im lirc

      lirc sollte installiert und funktionsfähig sein. Anleitungen hierfür gibt es genug.
      Dann, bei gestopptem lircd, "irrecord  --driver=dev/input --device=/dev/input/videoremote lircd.conf" ausführen und die Tasten einlernen.
      hier mal meine lircd.conf:
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.0(userspace) on Tue Oct 17 10:14:53 2006
#
# contributed by
#
# brand:                       lircd.conf.pvr350.conf
# model no. of remote control:
# devices being controlled by this remote:
#

begin remote

 name  lircd.conf.pvr350.conf
 bits            8
 eps            30
 aeps          100

 one             0     0
 zero            0     0
 pre_data_bits   24
 pre_data       0x800100
 gap          135594
 toggle_bit      0


     begin codes
         GO                       0x3B
         POWER                    0x3D
         TV                       0x1C
         VIDEOS                   0x18
         MUSIC                    0x19
         PICTURES                 0x1A
         GUIDE                    0x1B
         UP                       0x14
         RADIO                    0x0C
         LEFT                     0x16
         OK                       0x25
         RIGHT                    0x17
         BACK                     0x1F
         DOWN                     0x15
         MENU                     0x0D
         VOL+                     0x10
         PREV-CHANNEL             0x12
         CHANNEL+                 0x20
         VOL-                     0x11
         MUTE                     0x0F
         CHANNEL-                 0x21
         REC                      0x37
         STOP                     0x36
         REW                      0x32
         PLAY                     0x35
         FF                       0x34
         CHAPTER-                 0x24
         PAUSE                    0x30
         CHAPTER+                 0x1E
         1                        0x01
         2                        0x02
         3                        0x03
         4                        0x04
         5                        0x05
         6                        0x06
         7                        0x07
         8                        0x08
         9                        0x09
         ASTERISK                 0x0A
         0                        0x80010080
         RAUTE                    0x0E
         RED                      0x0B
         GREEN                    0x2E
         YELLO                    0x38
         BLUE                     0x29
     end codes

end remote
# --- end lircd.conf -----
  Schließlich noch in der /etc/lirc/hardware.conf 
      DRIVER="dev/input"
      DEVICE="/dev/input/videoremote"
  eintragen und den lircd starten. 
  Beim Start des VDR sollte dann eine Abfrage nach den zu lernenden Tasten erfolgen. Hierbei die Tasten der Fernbedienung entsprechend einlernen.