Ubuntu HD VDR mittels TechnoTrend S2-6400 - DVB Treiber
Was gibt es zu beachten?
Die TV Karte muss zwingend mit einem S-ATA Stromkabel angeschlossen werden. Auch sollten beide Antennenanschlüsse an die beiden Tuner der TV-Karte angeschlossen werden. Falls Ihr nur einen der beiden Tuner an der TV-Karte nutzen möchtet so muss dies später beim starten des VDR´s berücksichtigt werden.
Prüfen der eingebauten DVB-Karte
Mittels dem unten genannten Befehl kann geprüft werden ob die DVB-Karte vom System erkannt wird. Achtung! Falls die Karte nicht wie unten beschrieben angezeigt wird, gegebenfalls mal den PCIe-Slot wechseln und danach nochmals testen.
lspci -v | grep -i '7160' -A 4
02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 02) Subsystem: Technotrend Systemtechnik GmbH Device 300a Flags: bus master, fast devsel, latency 0, IRQ 10 Memory at f9f00000 (64-bit, non-prefetchable) [size=1M] Capabilities: <access denied>
Downloadverzeichnis erstellen
mkdir -p /data/installfiles/dvb
Firmware einspielen
Firmwaredateien herunterladen
cd /data/installfiles/dvb/ wget http://www.aregel.de/file_download/14/dvb-ttpremium-fpga-01_v1_09.zip wget http://www.aregel.de/file_download/7/dvb-ttpremium-loader-01_v1_03.zip wget http://www.aregel.de/file_download/17/dvb-ttpremium-st7109-01_v0_3_5.zip
Firmwaredateien einspielen
cd /lib/firmware/ sudo unzip /data/installfiles/dvb/dvb-ttpremium-fpga-01_v1_09.zip sudo unzip /data/installfiles/dvb/dvb-ttpremium-loader-01_v1_03.zip sudo unzip /data/installfiles/dvb/dvb-ttpremium-st7109-01_v0_3_5.zip
Firmwaredateien prüfen
Achtung! Dir Firmwaredateien müssen wie unten angezeigt werden.
ls -l /lib/firmware/dvb-ttp*.*
-rw-r--r-- 1 root root 372182 2011-08-21 18:29 /lib/firmware/dvb-ttpremium-fpga-01.fw -rw-r--r-- 1 root root 15784 2011-04-27 19:17 /lib/firmware/dvb-ttpremium-loader-01.fw -rw-r--r-- 1 root root 2118571 2011-12-23 15:25 /lib/firmware/dvb-ttpremium-st7109-01.fw
Firmwareversion anzeigen lassen
Achtung! Die Firmwareversionen werden erst nach dem Neustart angezeigt.
dmesg|grep SAA716x|grep version [ 6.260929] SAA716x FF FPGA version 1.09 [ 6.325025] SAA716x FF loader version 1.03 [ 7.962106] SAA716x FF firmware version 0.3.5
Was gibt´s neues?
Die Firmwaredateien können hier eingesehen werden:
http://www.aregel.de/
Installation der DVB-Treiber
Mit dieser hier beschriebenen Vorgehensweise werden die vorhandenen DVB-Kernelmodule durch die neuen ersetzt.
DVB-Treiber herunterladen
cd /data/installfiles/dvb/ hg clone http://linuxtv.org/hg/~endriss/media_build_experimental cd media_build_experimental/ make distclean make download make untar cd /data/installfiles/dvb/ tar -czf media_build_experimental-cvs-02012012.tar.gz media_build_experimental/
Was hat sich geändert?
Hier kann das DVB Repository eingesehen werden.
http://powarman.dyndns.org/hgwebdir.cgi/v4l-dvb-saa716x/ http://linuxtv.org/hg/~endriss/media_build_experimental
DVB Treiber vorbereiten und installieren
Die DVB Treiber müssen als Benutzer root vorbereitet und installiert werden. Mit folgendem Befehl wechselt man in den Benutzer root:
sudo su -
DVB Treiber vorbereiten
cd /usr/local/src/ cp -a /data/installfiles/dvb/media_build_experimental . ln -s media_build_experimental/ dvb
DVB Treiber installieren
cd /usr/local/src/dvb make distclean && make && make install init 6
Fehler die bei der Installation auftreten können
Wenn es zu einem Fehler mit FireDTV kommt:
/usr/local/src/media_build_experimental/v4l/firedtv-fw.c: In function 'handle_iso': /usr/local/src/media_build_experimental/v4l/firedtv-fw.c:128:2: error: implicit declaration of function 'fw_iso_context_queue_flush' make[3]: *** [/usr/local/src/media_build_experimental/v4l/firedtv-fw.o] Fehler 1 make[2]: *** [_module_/usr/local/src/media_build_experimental/v4l] Error 2 make[2]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic' make[1]: *** [default] Fehler 2 make[1]: Verlasse Verzeichnis '/usr/local/src/media_build_experimental/v4l' make: *** [all] Fehler 2
Dann muss der DVB Treiber folgendermaßen übersetzt werden:
cd /usr/local/src/dvb make menuconfig
Multimedia support -> DVB/ATSC adapters -> < > FireDTV and FloppyDTV (mit der Leertaste das "<M>" abwählen) -> Exit -> Exit -> Exit -> Yes (Konfiguration speichern)
cd /usr/local/src/dvb make && make install init 6
Link auf compiler.h setzen
Achtung! Dieser Link ist wichtig, da sonst der VDR nicht übersetzt werden kann.
cd /usr/local/src/dvb/linux/include/linux sudo ln -s /usr/src/linux-headers-$(uname -r)/include/linux/compiler.h compiler.h
Prüfen der DVB Treiber Installation
Im Modulverzeichnis des Kernels kann das Datum und Uhrzeit der DVB Module betrachtet werden.
Hier sieht man, dass der DVB-Treiber am 13.10.2011 um 17:05 Uhr installiert wurde. Wenn am gleichen Tag das OS installiert wurde, sollte die Uhrzeit betrachtet werden.
cd /lib/modules/$(uname -r)/kernel/drivers/media/dvb/ttpci ls -l
-rw-r--r-- 1 root root 49104 2011-12-06 19:03 budget-av.ko -rw-r--r-- 1 root root 44616 2011-12-06 19:03 budget-ci.ko -rw-r--r-- 1 root root 22352 2011-12-06 19:03 budget-core.ko -rw-r--r-- 1 root root 33920 2011-12-06 19:03 budget.ko -rw-r--r-- 1 root root 20216 2011-12-06 19:03 budget-patch.ko -rw-r--r-- 1 root root 197792 2011-12-06 19:03 dvb-ttpci.ko -rw-r--r-- 1 root root 6504 2011-12-06 19:03 ttpci-eeprom.ko
Die Treiber Module für die TT S2-6400 finden sich dann hier:
cd /lib/modules/$(uname -r)/kernel/drivers/media/common/saa716x ls -l
-rw-r--r-- 1 root root 23816 2011-12-06 19:03 saa716x_budget.ko -rw-r--r-- 1 root root 105640 2011-12-06 19:03 saa716x_core.ko -rw-r--r-- 1 root root 51760 2011-12-06 19:03 saa716x_ff.ko -rw-r--r-- 1 root root 25264 2011-12-06 19:03 saa716x_hybrid.ko
sudoers erweitern
Damit der später der Benutzer vdruser die DVB Module als Benutzer root starten kann muss die sudoers erweitert werden. Achtung! Der untiger Eintrag muss als letzte Zeile hinzugefügt werden.
sudo visudo
vdruser ALL=(ALL) NOPASSWD: /sbin/modprobe
DVB Module manuell laden
Um euch Modulparameter anzeigen zu lassen könnt Ihr folgenden Befehl verwenden:
sudo modinfo saa716x_ff
filename: /lib/modules/3.0.0-13-generic/kernel/drivers/media/common/saa716x/saa716x_ff.ko license: GPL author: Manu Abraham description: SAA716x FF driver srcversion: 533BB7E5866E52F63B9ACCB alias: pci:v00001131d00007160sv000013C2sd0000300Abc*sc*i* alias: pci:v00001131d00007160sv000013C2sd00003009bc*sc*i* depends: dvb-core,saa716x_core vermagic: 3.0.0-13-generic SMP mod_unload modversions parm: verbose:verbose startup messages, default is 1 (yes) (int) parm: int_type:force Interrupt Handler type: 0=INT-A, 1=MSI, 2=MSI-X. default INT-A mode (int) parm: int_count_enable:enable counting of interrupts (int)
Hier werden die DVB-Treibermodule geladen:
sudo modprobe saa716x_ff
Nachdem die DVB-Treibermodule geladen wurden, sollte der Aufruf 'dmesg' folgendes Anzeigen:
dmesg
[ 2804.317930] ACPI: PCI Interrupt Link [LN0A] enabled at IRQ 18 [ 2804.317986] SAA716x FF 0000:02:00.0: PCI INT A -> Link[LN0A] -> GSI 18 (level, low) -> IRQ 18 [ 2804.318009] SAA716x FF 0000:02:00.0: setting latency timer to 64 [ 2805.450111] SAA716x FF FPGA version 1.09 [ 2805.515714] SAA716x FF loader version 1.03 [ 2806.191089] DVB: registering new adapter (SAA716x dvb adapter) [ 2806.342408] stv6110x_attach: Attaching STV6110x [ 2806.348871] DVB: registering adapter 0 frontend 0 (STV090x Multistandard)... [ 2806.349488] DVB: registering new adapter (SAA716x dvb adapter) [ 2806.351530] stv6110x_attach: Attaching STV6110x [ 2806.388518] DVB: registering adapter 1 frontend 0 (STV090x Multistandard)... [ 2807.178544] SAA716x FF firmware version 0.3.4 [ 2807.178773] input: TT6400 DVB IR receiver as /devices/pci0000:00/0000:00:0c.0/0000:02:00.0/input/input5
Die Treibermodule können folgendermaßen wieder gestoppt werden:
sudo modprobe -r saa716x_ff
OS neu starten
sudo init 6
Aktualisieren der DVB Treiber
Hier wird das DVB Treiberverzeichnis auf den aktuellen Stand gebracht. Nach dem Update kann der DVB Treiber wie oben beschrieben installiert werden.
Treiberarchiv aktualisieren
cd /data/installfiles/dvb/media_build_experimental hg pull -u http://linuxtv.org/hg/~endriss/media_build_experimental make distclean make download make untar
DVB Treiber installieren
Die DVB Treiber müssen als User root vorbereitet und installiert werden. Mit folgendem Befehl wechselt man in den User root:
sudo su -
DVB Treiber vorbereiten
cd /usr/local/src/ cp -a /data/installfiles/dvb/media_build_experimental . ln -s media_build_experimental/ dvb
DVB Treiber installieren
cd /usr/local/src/dvb make distclean && make && make install init 6