Debian pvr350 remote
Aus VDR Wiki
Version vom 18. Mai 2007, 00:50 Uhr von 91.9.230.53 (Diskussion)
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.