DVB-T unter Linux -Teil 1
Als ich vor kurzem meine Linux-Installation neu aufsetzte dachte ich noch, das Linux nun endgültig Mainstream wäre – zu einfach war das ganze. Sei es der CD-Brenner, die Nvidia-Grafik- oder TV-Karte, alles war mehr oder weniger im Handumdrehen installiert. Auch wenn es sich viele nicht eingestehen wollen, so ist doch ehrlich gesagt nichts langweiliger als ein perfekt funktionierender PC. Glücklicherweise wurde nun aber hier in Bremen Ende Mai 2004 das DVB-T-Zeitalter eingeläutet und nach kurzer Zeit vermisste ich die Nebenbei-Berieselung durch meine TV-Karte beim Basteln am Computer.
Als Linux-User bin ich es gewöhnt mich vorher zu informieren, welche Hardware unterstützt wird und so fiel meine Wahl (auch nach Blick in meine Geldbörse) auf eine Technotrend DVB-T 1300 Budget Karte, die auch unter den Namen Hauppauge Nova-T verkauft wird. Prinzipiell muss man sich beim Kauf vorher Fragen, ob man eine sog. Budget- oder eine Full-Featured-Karte haben möchte. Bei der Full-Featured-Karte (z.B. Hauppauge PVR350) wird der MPEG-2 Datenstrom direkt auf der Karte durch ein Stück Hardware decodiert, was natürlich die CPU stark entlastet. Bei der Budget-Karte fehlt dieser Decoder und man benötigt eine DVD-Player Software. Mir war es schlicht egal, denn die Karte soll in einen Rechner mit AMD XP2000 CPU seinen Dienst tun und so entschied für mich der Preis. Diesen Vergleich kann eine Full-Featured-Karte nicht gewinnen und so kaufte ich mir also die Budget-Karte. Bevor es vielleicht kryptisch wird noch eine Anmerkung: Der Unterschied zwischen den einzelnen DVB-Typen, also DVB-C(able), DVB-S(atelite) oder DVB-T(errestrial), liegt nur im Empfänger. Daher könnte folgendes auch mit Technotrend-Karten DVB-C oder DVB-S Karten funktionieren.
Zuerst muss man den Kernel patchen, denn in 2.6.5 und 2.6.6 gibt es einen kleinen nervigen Fehler der das Laden eines wichtigen Modules verhindert. Dazu öffnet man die Datei /usr/src/linux/drivers/media/dvb/frontends/tda1004x.c und schreibt dort irgendwo static int errno; rein. Anschließend compiliert und installiert man den Kernel den normalen Weg oder baut sich unter Debian ein eigenes Packet und installiert es. Nun braucht man das hotplug-Packet (apt-get install hotplug), wechselt nach /usr/lib/hotplug und lädt sich die Firmware für den ttpci-Treiber runter:
wget http://www.linuxtv.org/download/dvb/firmware/dvb-ttpci-01.fw-261a
mv dvb-ttpci-01.fw-261a dvb-ttpci-01.fw
Jetzt folgt
wget http://www.technotrend.de/new/216/budget_216.zip
unzip -j budget_216.zip Software/Oem/PCI/App/ttlcdacc.dll
mv ttlcdacc.dll firmware/tda1004x.bin
In den meisten Dokumenten steht das nur der Treiber 2.15 unterstützt würde, hier funktioniert aber auch 2.16 problemlos (2.17 hingegen nicht). Damit die Module später auch automatisch geladen werden kommt
# dvb devices
install budget_ci modprobe –ignore-install budget-ci && modprobe tda1004x
remove budget_ci modprobe –ignore-remove -r budget-ci && modprobe -r tda1004x
in die /etc/modprobe.d/dvb. Wenn es diese Datei nicht schon gibt, muss man diese erstellen und schreibt dann dort obiges rein, anschließend das update-modules nicht vergessen.
Damit wäre die Hardware-Konfiguration abgeschlossen, also entweder Reboot oder modprobe budget-ci. Im syslog/dmesg sollte dann
saa7146: register extension ‘dvb’.
saa7146: register extension ‘budget_ci dvb’.
saa7146: found saa7146 @ mem e096c000 (revision 1, irq 18) (0×13c2,0×1011).
DVB: registering new adapter (TT-Budget/WinTV-NOVA-T PCI).
tda1004x: Detected Philips TDA10045H.
tda1004x: Detected Philips TD1316 tuner.
DVB: registering frontend 0:0 (Philips TDA10045H)…
TT-Budget/WinTV-NOVA-T PCI adapter 0 has MAC addr = 00:d0:5c:22:2d:96
zu lesen sein und lsmod diese Module zeigen:
budget_ci
budget_core
tda1004x
dvb_core
saa7146_vv
video_buf
saa7146
v4l1_compat
v4l2_common
videodev
firmware_class
crc32
ttpci_eeprom
Im zweiten Teil wird es dann um die Software rund um DVB-T gehen.
Nachtrag: Bei neueren Distributionen gibt es Probleme mit sysfs und udev. Dies äussert sich darin, das in /dev die Device-Nodes fehlen und auch wenn sie neu erstellt wurden nach dem Reboot wieder verschwunden sind. Ich habe länger herumprobiert und keine zufriedenstellende Lösung gefunden. Es gibt anscheinend Distributionen wie Mandrake, bei denen es zu funktionieren scheint, aber das hier vorgeschlagene funktioniert bei mir nicht, daher habe ich jetzt ein Script das mir beim Booten die Devices erstellt (Hinweis: Vor Kernel 2.6.7 war die Device-Nummer 250 und nicht 212 wie im Script). Nicht schön, aber es funktioniert.
Nachtrag 30.12.2005: Im dritten Teil geht es um DVB-T Karten die auf den saa7134-Chipsatz basieren.
Guten Morgen,
ich bin auf
Guten Morgen,
ich bin auf der Suche nach einem Linuxtool das Royangel heißt.
Ich habe diesen Begriff schonmal Gegoogelt, konnte aber nichts finden mit dem ich was anfangen kann, denn meine Sprachkenntnisse sind nicht sehr umfangreich.
Ich habe folgendes Problem.
Ich habe eine PCI Karte für DVB-T und möchte mir nun aber nicht nur das Bild anzeigen lassen, sondern auch die Bit Fehler Rate, die empfangene HF-Leistung und auch SFP (Subjectiv Failure Point)
Kannst du mir da vielleicht weiterhelfen, denn die Firmen haben dies Angaben nicht als standard bei deren Programmen dabei.
Mfg Martin
Von Royangel hab ich nichts g
Von Royangel hab ich nichts gehört und auch nichts gefunden. Mit dvbtune kann man zumindest an die Bit error rate und Signal strength kommen. Ansonsten gibt es noch dvbsnoop, da weiss ich aber nicht was man da konkret mit anstellen kann.
dvbsnoop ist ein MPEG Stream
dvbsnoop ist ein MPEG Stream Analyzer (bzw. DVB Stream Analayzer).
Mit dvbsnoop kann man die ganzen Daten des DVB-Datenstroms angucken.
Bit error rate und Signal strength schmeisst dvbsnoop bei Bedarf auch raus. Auf der Homepage http://dvbsnoop.sourceforge.net gibt es ein paar Beispiele…
DVB-T unter ubuntu hoary mit
DVB-T unter ubuntu hoary mit der Hauppauge Nova-T und Kernel 2.6.10
Vielen Dank für die gute Anleitung. Ich habe für Kernel 2.6.10-5-386 und Hauppauge Nova-T (Philips TDA10045H DVB-T) unter ubuntu-hoary noch folgendes beizutragen:
Es zeigt sich kein einziger Sender bei Suchläufen mit kaffeine und der Signalbalken bleibt bei unrealistischen 100% Empfang stehen. In /var/log/messages findet sich folgendes:
Sep 4 14:05:32 localhost kernel: tda1004x: waiting for firmware upload…
Sep 4 14:05:32 localhost kernel: tda1004x: no firmware upload (timeout or file not found?)
Sep 4 14:05:32 localhost kernel: tda1004x: firmware upload failed
Die Firmware wird also nicht geladen, einfach weil sie nicht unter /lib/hotplug/firmware zu finden ist. Abhilfe schafft:
1. Man besorge sich die perl-Datei “get_dvb_firmware” von http://lists.suse.com/archive/suse-linux/2005-Aug/att-0622/get_dvb_firmware und starte sie auf der Kommandozeile mit perl. In meinem Fall war tda10045 der notwendige Parameter, es gibt aber auch eine höhere Version des Phillips-Chips namens 10046, diese Firmware tat es mit meiner Karte nicht. Man erhält dann eine Datei namens “dvb-fe-tda10045.fw”
2. Man installiere diese Firmware unter /lib/hotplug/firmware und passe mit chown den Benutzer auf root an.
3. Man startet neu oder gibt auf der Kommandozeile modprobe budget_ci ein und beobachtet, was sich in /var/log/messages tut.
4. Ein Neustart von kaffeine und ein erneuter Sendersuchlauf ergibt dann hoffentlich das gesamte Progammportfolio.
Nun muss ich mich nur noch LIRC widmen,
HTH
Jörg
Hallo!
Die Datei http://www.technotrend.de/new/216/budget_216.zip giebts nicht mehr nur noch die Version 2.17g und 2.19e. Oben steht das 2.17
nicht geht, geht die 2.19 ?
Michi
[...] EDV – Ende der Vernunft » DVB-T unter Linux -Teil 1 (Tags: howto linux dvb) [...]
Hi @ All,
habe eine Creatix CTX 917 _ V.1 DVB-T / TV / FM , welche aus einem Siemens Scaleo T stammt. Mit ctVdr kernel 2.4 gab es kein bild – wie nun auch mit der aktuellen linVdr version, kernel 2.6.9. stattdessen fette Fehler beim Laden der Treiber. saa7134 wurde per hand – modprobe nachgeladen (2.4er Kernel) ebenfalls bei der 2.4er Kernel Version stand im syslog ein ‘no DVB device found’ nachdem das Treibermodul saa7134 nachgeladen war – gleiche Meldung.
Zum linVdr mit 2.6 er Kernel ist zu sagen, dass das Ding das Modul saa7134 nicht mehr enthaelt. Mit dem get_dvb_firmware habe ich die eine firmware von linuxtv.org heruntergeladen. nothing. das bringt auch hier nichts.
und nun hoff ich auf zahlreiches schreiben – vielleicht ist da draussen ja jemand, der das problem schon geloest hat.
regards.
hallo eric_88888888
ich hab die gleiche tv karte wie du, mein rechner ist ein alter PII mit 400 MhZ und 160 MB SDRAM, auf dem SuSe 10.1 installiert ist. Ja das ganze läuft einwandfrei.
Die Karte wird bei mir als eine Medion DVB-T Karte erkannt. Ich habe Ton und bekomme
ganze 2 Kanäle rein. ZDF und WDR3. Das merkwürdige an der angelegenheit finde ich ja das ich keinen der Sender klar reinbekomme (Schneegestöber). Ja Schneegestöber, etwas das es bei Digitaler Technik eigentlich nicht gibt. Meine Frage ist ob du die Probs mit deiner Karte lösen konntest und was du gemacht hast um die Karte vernünftig zum laufen zu bringen. Unter Windows habe ich mit der Karte übrigens die gleichen Probleme.
Hoffe auf baldige und zahlreiche antworten
Kann mal bitte jemand eine Firmware bereitstellen, die auch funktioniert?
Die Datei http://www.technotrend.de/new/216/budget_216.zip gibts nicht mehr.
Ich habe eine TT-1500.
mein log:
saa7146: found saa7146 @ mem f8f58000 (revision 1, irq 20) (0×13c2,0×1012).
saa7146 (0): dma buffer size 192512
DVB: registering new adapter (TT-Budget-T-CI PCI).
adapter has MAC addr = 00:d0:5c:xx:xx:xx ;-)
input: Budget-CI dvb ir receiver saa7146 (0) as /class/input/input5
DVB: registering frontend 0 (Philips TDA10046H DVB-T)…
tda1004x: setting up plls for 53MHz sampling clock
tda1004x: timeout waiting for DSP ready
tda1004x: found firmware revision 0 — invalid
tda1004x: waiting for firmware upload…
tda1004x: no firmware upload (timeout or file not found?)
tda1004x: firmware upload failed
Hallo,
ich suche jemanden der einen Linuxtreiber für einen DVB-T Stick schreibt.
Bitte dringend melden: r.pilgram@googlemail.com