Debian pvr350 remote
Aus VDR Wiki
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.