Terratec Cinergy DT USB XS Diversity unter Fedora 10

Endlich mal wieder etwas Zeit sich um die trivialen Dinge im Leben zu kümmern. Zwar ist das natürlich bei jedem anders, aber bei mir gehört das Fernsehen nicht gerade zu den wichtigen Dingen meines Lebens. Eigentlich läuft es auch nur beim Essen, wenn man keine Zeit hat sich eine DVD anzusehen und man etwas dümmliches braucht um Abzuschalten. Nun gut, genug zu mir und zurück zum eigentlichen Thema. Wie dem Titel zu entnehmen ist, handelt es sich hier um den Dual-Tuner-Stick der Firma Terratec mit dem Namen „Terratec Cinergy DT USB XS Diversity“. Dieser hat neben dem Diversity-Feature, zusammenschalten von beiden Tuner zur Verbesserung der Signalqualität, auch einen integrierten Infrarot-Empfänger. Also recht praktisch, denn wer will schon zum Umschalten auf stehen. image

Installation der Treiber / Firmware Link to heading

Die Installation der Treiber verläuft relativ schnell und problemlos und ist mit wenigen Schritten durch gelaufen.

[root]: yum -y install mercurial
[user]: hg clone http://linuxtv.org/hg/v4l-dvb
[user]: cd v4l-dvb/
[user]: make
[root]: make install
[root]: cd /lib/firmware
[root]: wget http://www.wi-bw.tfh-wildau.de/~pboettch/home/files/dvb-usb-dib0700-1.20.fw
[root]: ln -s dvb-usb-dib0700-1.20.fw dvb-usb-dib0700-1.10.fw
### Reboot (Ohne gab es bei mir eine Kernelpanic)
[root]: chmod -R a+rw  /dev/dvb

So das war es schon, DVB-T läuft! Kommen wir zum nächsten und zum größeren Knackpunkt.

Infrarot-Empfänger in Betrieb nehmen Link to heading

Als erstes müssen wir dafür sorgen, dass der Empfänger nicht mehr als Tastatur erkannt wird und HAL verbieten ihn automatisch als solche zu konfigurieren. Zwar würde er dann auch funktionieren, jedoch wären nicht alle Tasten der RC verfügbar und das wollen wir ja nun nicht.

[root]: cd /usr/share/hal/fdi/preprobe/20thirdparty
[root]: vim lirc.fdi

und den folgenden Inhalt hinein kopieren oder die Datei aus dem Anhang herunterladen und an die Position kopieren. Ob es letztendlich funktioniert hat, kann man mit folgenden Befehlen überprüfen :

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
     <match key="info.product" contains_ncase="IR-receiver inside an USB DVB receiver">
        <merge key="info.ignore" type="bool">true</merge>
     </match>
  </device>
</deviceinfo>

Testen:

hal-find-by-capability --capability input | xargs -I {} hal-device {}
## oder
xinput --list

Bei beiden darf der IR-Empfänger nicht in der Ausgabe nicht mehr auftauchen. Das war eigentlich schon die ganze Magie.

Lirc konfigurieren Link to heading

Für das Grundgerüst von Lirc reicht folgendes Paket, allerdings sind gerade Bindings zu Prgrammen wie rhythmbox (rhythmbox-lirc), totem (totem-lirc) oder xmms (xmms-lirc) interessant, die dann nachinstalliert werden müssen.

[root]: yum -y install lirc

Danach benötigen wir noch eine Konfigurationsdatei, die unser RC beschreibt (als Download angehängt) welche wir nach  /etc/lircd.conf kopieren. Diese Konfigurationsdatei beschreibt jedoch nur, wie Lirc KeyCodes interpretieren soll, jedoch nicht wie auf diese reagiert wird. also ist eine weitere Konfigurationsdatei pro Benutzer notwendig. Standard ist hier die Datei .lircrc im Home-Dir des Benutzers. Ich habe meine als Beispiel ebenfalls als Download angehangen, gesteuert werden hier totem und kaffeine. Das größte Problem was ich hatte, war das Lirc meine hardware.conf nicht annehmen wollte und folglich auch weder das device geöffnet noch den richtigen Treiber geladen hat. Daher habe ich das init.d-Skript folgendermaßen verändert. Wer das hier eventuell liest und eine bessere Lösung hat, kann sich ja vielleicht melden.

Zeile 66 geändert zu :

daemon $exec -H devinput -d /dev/input/by-path/pci-2-2-event-ir /etc/lircd.conf

Wobei

  • H : Driver
  • D : Device
  • Config

Das event bekommt man durch  cat /proc/bus/input/devices heraus,

I: Bus=0003 Vendor=0ccd Product=005a Version=0001
N: Name="IR-receiver inside an USB DVB receiver"
P: Phys=usb-0000:00:1d.7-2/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1d.7/usb2/2-2/input/input8
U: Uniq=
H: Handlers=kbd event8 
B: EV=3
B: KEY=14afc336 284284d00000000 0 480058000 219040000801 9e96c000000000 90020000000ffd

und mittels ls -al /dev/input/by-path/ auch das entsprechende device

lrwxrwxrwx 1 root root   9 22. Feb 09:17 pci-0000:00:1d.0-usb-0:1:1.0-event-kbd -> ../event3
lrwxrwxrwx 1 root root   9 22. Feb 09:17 pci-0000:00:1d.0-usb-0:1:1.1-event- -> ../event4
lrwxrwxrwx 1 root root   9 22. Feb 09:17 pci-0000:00:1d.1-usb-0:2:1.0-event-mouse -> ../event5
lrwxrwxrwx 1 root root   9 22. Feb 09:17 pci-0000:00:1d.1-usb-0:2:1.0-mouse -> ../mouse1
lrwxrwxrwx 1 root root   9 22. Feb 09:17 pci-0000:00:1d.1-usb-0:2:1.1-event- -> ../event6
lrwxrwxrwx 1 root root   9 22. Feb 09:17 pci-2-2-event-ir -> ../event8
lrwxrwxrwx 1 root root   9 22. Feb 09:17 platform-pcspkr-event-spkr -> ../event7

Damit lautet das einzutragende Device bei mir „/dev/inpu/by-path/pci-2-2-event-ir„. Jetzt nur noch lirc (/etc/init.d/lirc start) und irexec (irexec -d ) starten fertig.

Probleme: Link to heading

Da es anscheinend auch verschiebende Versionen von Ferndbedienung und Stick gibt können natürlich auch Probleme auftauchen. Bei mir musste ich per Modul-Option das IR-Protokoll von RC5 (Standardeinstellung) auf NEC ändern, da dort Toogle-Bit und Pulsweitenmodulation anders sind.

options dvb-usb-dib0700 dvb_usb_dib0700_ir_proto=0

Wer zusätzlich nicht gerade in einem gut mit DVB-T abgedeckten Gebiet wohnhaft ist oder unter schlechtem Empfang leidet solte folgendes versuchen :

options dvb_usb_dib0700 force_lna_activation=1

Ich hoffe das hilft denen, die verzweifelt herumprobieren, und nicht weiterkommen. Hab schließlich auch 2 Tage herumwirbelt bis endlich was funktionierte.

  • linuxtv.org
  • ubuntuusers.de (Artikel HAL-Eingabegeräte und Lirc)
  • Terratec