Terratec Cinergy S2 PCI HD Fernbedienung Das heutige Howto meiner kleinen Serie ist eigentlich nur für nutzer der Terratec Cinergy S2 PCI HD Karte unter ubuntu precise interessant. Precise kommt ja mit dem Linux Kernel 3.2, mit dem die DVB Karte eigentlich schon out of the box funktionieren sollte. Das tut sie zwar auch grundsätzlich nur der mitgelieferte Fernbedienungs Empfänger der Cinergy wurde nicht von den standard Treibern erkannt.
Also habe ich die bereits etwas älteren patches aus dem VDR Portal genommen aund auf einen aktuellen linux-media snapshot angewendet, dann die konfiguration so angepasst dass das build system nur die treiber für meine Karte und die Fernbedienung baut (damit es schneller geht) und diese treiber werden mittles dkms automatisch gegen neu installierte Kernel kompiliert.
Aber erstmal Schritt für Schritt
- linux-media-dkms trieber besorgen, patchen und ein dkms build vorbereitencheckout vom git & die remote control patches (Patches siehe Anhang am Ende dieses Posts) für die terratec cinergy S2 PCI hd auf die Sourcen einspielen. Nun die zu bauenden module auswählen über:
make xconfigfür meine terratec cinery S2 pci hd brauche ich das modul "mantis" welches folgende Abhängigkeiten hat, also müssen diese Module auch aktiviert werden.
MEDIA_SUPPORT [=m] && DVB_CAPTURE_DRIVERS [=y] && DVB_CORE [=m] && PCI [=y] && I2C [=y] && INPUT [=y] && RC_CORE [=m]
Selects: DVB_MB86A16 [=n] && DVB_ZL10353 [=n] && DVB_STV0299 [=n] && DVB_LNBP21 [=n] && DVB_STB0899 [=n] && DVB_STB6100 [=n] && DVB_TDA665x [=n] && DVB_TDA10021 [=n] && DVB_TDA10023 [=n] && DVB_PLL [=m]
Ebenso braucht ihr für die Fernbedienung die I2c und rc_core module und die "terratec cinery pci keymap" .
Nun speichern (es wird die Datei .config im v4l Verzeichnis angelegt) und das gui schließen. in die dir v4l wechseln und mit 'make' einen test-build starten. Falls der durchläuft und die .ko dateien erstellt werden generieren wir mit folgendem script die dkms.conf:
#!/bin/bash
# determine module names and paths from temporary build
cd /path/to/v4l
i=0
for f in `ls | grep .ko`; do
M=`basename $f .ko`
echo "BUILT_MODULE_NAME[$i]=$M" >> ../dkms.conf
echo "BUILT_MODULE_LOCATION[$i]=`dirname $f`/v4l" >> ../dkms.conf
echo "DEST_MODULE_LOCATION[$i]=/updates/dkms" >> ../dkms.conf
((i=i+1))
done füge folgenden header anz oben in der dkms.conf Datei hinzu:
PACKAGE_NAME=linux-media-cinergy-s2-pci
PACKAGE_VERSION=1~20120810
AUTOINSTALL=y
MAKE[0]="make -j5 VER=$kernelver"
CHECK_MODULE_VERSION=nnun erstelle den Ordner /usr/src/linux-media-cinergy-s2-pci-1~20120810 und kopiere den kompletten checkout in diesen Ordner (you edited the .config file in the v4l folder and the dkms file in the main folder, remember

)
füge die Treiber Sourcen zum dkms tree hinzu, baue und installiere die Treiber:
cd /usr/src/linux-media-cinergy-s2-pci-1~20120810
sudo dkms install -m linux-media-cinergy-s2-pci -v 1~20120810lade die lirc, mantis und dev_core drivers neu oder mache einen reboot.
TODO: provide auto-build dkms deb of the mantis drivers with remote patches for precise.
der Kernel erkennt jetzt die Karte als:
[20675.513897] Mantis 0000:00:0b.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
[20675.516596] DVB: registering new adapter (Mantis DVB adapter)
[20676.417399] stb0899_attach: Attaching STB0899
[20676.422464] stb6100_attach: Attaching STB6100
[20676.427804] LNBx2x attached on addr=8
[20676.427816] DVB: registering adapter 0 frontend 0 (STB0899 Multistandard)...
[20676.460150] Registered IR keymap rc-terratec-cinergy-s2-hd
[20676.460365] input: Mantis VP-1041 IR Receiver as /devices/pci0000:00/0000:00:0b.0/rc/rc0/input12
[20676.460473] rc0: Mantis VP-1041 IR Receiver as /devices/pci0000:00/0000:00:0b.0/rc/rc0
ebenso wird der IR Transmitter nun richtig erkannt und erstellt ein linux-input-device (check via 'cat /proc/bus/input/devices')
I: Bus=0001 Vendor=0000 Product=0000 Version=0001
N: Name="Mantis VP-1041 IR Receiver"
P: Phys=pci-0000:00:0b.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:0b.0/rc/rc0/input12
U: Uniq=
H: Handlers=kbd event8
B: PROP=0
B: EV=100013
B: KEY=4000000 108fc330 a042041 0 0 0 4 18000 180 801 9e96c0 0 0 ffe
B: MSC=10
- Fernbedienung (inputlirc) konfigurierensudo apt-get install lirc lirc-x liblircclient0 inputlirc inputlirc liest standardmäßig alle Impulse aller /dev/input/event*-Geräte aus. Weder in der hardware.conf noch in der lircd.conf brauchen spezielle Angaben gemacht zu werden (bei der Installation von LIRC einfach überall "None" angeben; das Paket lirc selbst wird allerdings gebraucht, schon um z.B. irexec oder irw verwenden zu können). Der LIRC-daemon (lircd) wird nicht benötigt; ggf. darauf achten, dass in der hardware.conf die Werte für START_LIRCD="" auf false gesetzt sind. Der inputlirc-Daemon inputlircd wird automatisch beim Systemstart ausgeführt.
sudo gedit /etc/default/inputlirc# Options to be passed to inputlirc.
EVENTS="/dev/input/event8"
OPTIONS="-g -m 0"
sudo mkdir -p sudo mkdir -p /var/run/lirc
sudo service inputlirc restart- vdr remote.conf anpassenLIRC.Up KEY_UP
LIRC.Down KEY_DOWN
LIRC.Menu KEY_TV
LIRC.Menu KEY_HOME
LIRC.Menu KEY_MENU
LIRC.Ok KEY_OK
LIRC.Back KEY_ESC
LIRC.Left KEY_LEFT
LIRC.Right KEY_RIGHT
LIRC.Red KEY_RED
LIRC.Green KEY_GREEN
LIRC.Yellow KEY_YELLOW
LIRC.Blue KEY_BLUE
LIRC.0 KEY_0
LIRC.1 KEY_1
LIRC.2 KEY_2
LIRC.3 KEY_3
LIRC.4 KEY_4
LIRC.5 KEY_5
LIRC.6 KEY_6
LIRC.7 KEY_7
LIRC.8 KEY_8
LIRC.9 KEY_9
#LIRC.Power Power #done via irexec
LIRC.Volume+ KEY_VOLUMEUP
LIRC.Volume- KEY_VOLUMEDOWN
LIRC.Mute KEY_MUTE
LIRC.Schedule KEY_EPG
LIRC.Info KEY_INFO
LIRC.Play KEY_PLAY
LIRC.Pause KEY_PAUSE
LIRC.Stop KEY_STOP
LIRC.Next KEY_NEXT
LIRC.Prev KEY_PREVIOUS
LIRC.Channel+ KEY_CHANNELUP
LIRC.Channel- KEY_CHANNELDOWN
LIRC.FastFwd KEY_FASTFORWARD
LIRC.FastRew KEY_REWIND
LIRC.Menu KEY_MENU
LIRC.Subtitles KEY_SUBTITLE
LIRC.User0 KEY_TEXT
LIRC.User1 KEY_DELETE
LIRC.User2 KEY_VCR
LIRC.PrevChannel KEY_VIDEO
LIRC.User3 KEY_DVD
LIRC.Recordings KEY_MEDIA
LIRC.Audio KEY_AUDIO
LIRC.User4 KEY_IMAGESlirc zum vdr Startaufruf hinzufügen
vdr ... --lirc=/var/run/lirc/lircd ...VDR neu Starten und das wars
