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/12/dvb-ttpremium-fpga-01_v1_08.zip wget http://www.aregel.de/file_download/7/dvb-ttpremium-loader-01_v1_03.zip wget http://www.aregel.de/file_download/13/dvb-ttpremium-st7109-01_v0_2_11.zip
Firmwaredateien einspielen
cd /lib/firmware/ sudo unzip /data/installfiles/dvb/dvb-ttpremium-fpga-01_v1_08.zip sudo unzip /data/installfiles/dvb/dvb-ttpremium-loader-01_v1_03.zip sudo unzip /data/installfiles/dvb/dvb-ttpremium-st7109-01_v0_2_11.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 372181 2011-05-29 10:37 /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 2109789 2011-05-10 20:51 /lib/firmware/dvb-ttpremium-st7109-01.fw
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-03062011.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 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
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 04.06.2011 um 17:45 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 49096 2011-06-04 17:45 budget-av.ko -rw-r--r-- 1 root root 44768 2011-06-04 17:45 budget-ci.ko -rw-r--r-- 1 root root 21696 2011-06-04 17:45 budget-core.ko -rw-r--r-- 1 root root 34016 2011-06-04 17:45 budget.ko -rw-r--r-- 1 root root 20344 2011-06-04 17:45 budget-patch.ko -rw-r--r-- 1 root root 197296 2011-06-04 17:45 dvb-ttpci.ko -rw-r--r-- 1 root root 5720 2011-06-04 17:45 ttpci-eeprom.ko
Die Treiber Module für die S2 6400 finden sich dann hier:
cd /lib/modules/$(uname -r)/kernel/drivers/media/common/saa716x ls -l
-rw-r--r-- 1 root root 13348 2011-06-04 17:4 saa716x_budget.ko -rw-r--r-- 1 root root 76868 2011-06-04 17:45 saa716x_core.ko -rw-r--r-- 1 root root 36500 2011-06-04 17:45 saa716x_ff.ko -rw-r--r-- 1 root root 14896 2011-06-04 17:45 saa716x_hybrid.ko
sudoers erweitern
Damit der später der vdruser die DVB Module als User 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
OS neu starten
sudo init 6
DVB Module manuell laden
Um euch Modulparameter anzeigen zu lassen könnt Ihr folgenden Befehl verwenden:
sudo modinfo saa716x_ff
filename: /lib/modules/2.6.38-8-generic/kernel/drivers/media/common/saa716x/saa716x_ff.ko license: GPL author: Manu Abraham description: SAA716x FF driver srcversion: 0BF2F63CA993E865BBEFFA5 alias: pci:v00001131d00007160sv000013C2sd0000300Abc*sc*i* alias: pci:v00001131d00007160sv000013C2sd00003009bc*sc*i* depends: dvb-core,saa716x_core vermagic: 2.6.38-8-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)
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.05 [ 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.2.A [ 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
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