FF-Karten Full-TS Mod

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Allgemeines

Idee und Entwicklung

Diese Idee des Umbaus von Full-Featured-DVB-Karten wurde von Oliver Endriss entwickelt.

Originalseite: http://www.escape-edv.de/endriss/dvb-full-ts-mod/

Er hebt die Bandbreitenbeschränkung der Full-Featured-DVB-Karten auf.

Weitere Infos unter: http://www.vdr-portal.de/board/thread.php?threadid=74174

-Diese Seite befindet sich noch im Aufbau.-

Was genau bringt dieser Mod?

Bei den Full-Featured-Karten durchläuft das DVB-Signal den DSP und das auf der Karte befindliche RAM, bevor es auf den PCI-Bus gebracht wird. Die damit erreichbare Transferleistung ist auf etwa 12 MBit (?) begrenzt und kleiner als bei Budget-Karten. Werden gleichzeitig mehrere Programme auf einem Transponder mit einer FF-Karte aufgenommen, kann es vorkommen, dass die erforderliche Bitrate größer als die erreichbare Transferrate ist und es so zu Datenverlust kommt.

Durch den Mod werden die Daten unter Umgehung dieses Flaschenhalses (DSP, RAM) direkt auf den PCI-Bus gegeben, so, wie es auch bei den Budget-Karten der Fall ist.

Nach der Umrüstung hat daher eine FF-Karte die Transferleistung einer Budget-Karte.

Allgemeine FAQ

Wird die Fullfeatured durch den Mod zu einer Budget-Karte?

Nein. Der MPEG-Decoder und TV-Out können ganz normal weiter genutzt werden. Nur der Flaschenhals, der die Transferleistung begrenzt, wird umgangen.

Siehe auch Budget-Patch

Wird durch den Mod der DSP umgangen?

Ja.

Wenn der DSP kaputt ist, kann man die Karte dann als Budget verwenden?

So etwas ist machbar, erfordert jedoch Anpassungen im Treiber. Die Karte würde dann exakt wie eine Budget-Karte funktionieren. (siehe auch Budget-Patch)

Damit der Treiber die Karte als solche erkennt, muss die PCI-Kennung im EEPROM mit der einer Budget überschrieben werden (Full-featured-DVB-Karte EEPROM-Fix). Außerdem muss der ENT-Eingang vom lnbp16 auf GPIO3 am SAA7146 gelegt werden. Sonst fehlt der 22 kHz Ton, denn der wird bei den FFs normalerweise über den AV7110 geschaltet.

Könnte man so auch eine Dual-Tuner Full-Featured-Karte realisieren?

Ja, dies wurde auch schon getestet, erfordert aber Anpassungen im Treiber. Und einer der beiden Tuner hat immer noch die begrenzte Transferleistung, da dieser über den DSP geroutet wird.

Hardware

Wie funktioniert der Mod?

Das DVB-Signal wird vom Tuner/CAM über den Port_b des SAA7146 direkt auf den PCI-Bus gelegt (statt wie zuvor vom Tuner über den AV7110 auf den Port_A des SAA7146).

An den Port_B des SA7146 müssen neben den Datenleitungen des Tuners noch das VS_B-Signal angelegt werden. Dieses wird mit einer Teilerschaltung generiert (benötigt 74HC4040 und 74HC74).

Welche Karten lassen sich umrüsten

Alle auf dem Technotrend Design (TT PCline Premium Family) basierende Full-featured-DVB-Karten (mit dem AV7110 und dem SAA7146) sollten sich umrüsten lassen, sofern der port_B des Sa7146 nicht schon belegt ist.

Dies ist jedoch je nach Revision der Karte mit mehr oder weniger Aufwand verbunden.

Erfolgreich gestestet wurden bisher (aktueller Stand hier )

DVB-S:

  • Rev 1.3
  • Rev 1.5
  • Rev 2.1
  • Rev 2.3

DVB-S Rev. 1.3 / 1.5 / 1.6 / 2.1

Bei diesen Karten müssen die Signalleitungen vom AV7110/Tuner zum Port_B des SAA7146 gezogen und das VS_B Signal mit der Teilerschaltung (74HC4040 und 74HC74) generiert werden. Dies ist auf der Seite von Oliver Endriss (http://www.escape-edv.de/endriss/dvb-full-ts-mod/) sehr genau beschrieben.

Benötigte Bauteile:

  • Feinen Fädeldraht/Lackdraht (z. B. aus einer alten Spule), (kls hat da auch eine kleine Platine entwickelt, die das Löten vereinfachen sollte: )
  • Dickeren Kupferlackdraht für die Spannungsversorgung
  • Ggf. einen Abblockkondensator (100 nF) für die Spannungsversorgung (Es kann auch ohne gehen. Je nach Länge und Durchmesser der Versorgungsleitungen muss man halt mit Problemen rechnen. Es dürfen auch ruhig etwas mehr als 100 nF sein, wenn man nichts anderes zur Hand hat.)
  • 74HC74 (in SO-14 ist der gut lötbar)
  • 74HC4040 (in SO-16 ist der gut lötbar)


Hier einige Bilder

DVB-S Rev. 2.2

Bei diesen Karten sind D1_B[0-7], LLC_B, HS_B, PXQ_B zwischen AV7110 und SAA7146 ab Werk im Original-Layout bereits verbunden. Lediglich die beiden unbestückten ICs über dem Tuner für das VS_B Signal (Teilerschaltung) müssen nachgerüstet werden. Des weiteren wurde festgestellt, dass die Spannungsversorgung offenbar keinen Kontakt zum Rest der Platine hat. Man muss noch Vdd mit +3,3 V verbinden (für die Spannungsversorung der beiden ICs der Teilerschaltung).

Benötigte Bauteile (damit es auf die Platine passt):

  • Fädeldraht/Drahtbrücke/0Ohm-Widerstand zur 3,3 V Spannungsversorung
  • 2x Abblockkondensator, Größe 0805, Keramik 100 nF
  • 74HC74 (TSSOP)
  • 74HC4040 (SO-16)

Hier ein paar passende Bilder:

DVB-S Rev. 2.3

Bei diesen Karten sind D1_B[0-7], LLC_B, HS_B, PXQ_B zwischen AV7110 und SAA7146 ab Werk im Original-Layout bereits verbunden. Lediglich die beiden unbestückten ICs diagonal oben rechts vom Tuner für das VS_B Signal (Teilerschaltung) fehlen. Selbst die Abblockkondensatoren für die beiden ICs sind in der Regel schon bestückt.

Benötigte Bauteile (damit es genau auf die Platine passt):

  • 74HC74 in TSSOP
  • 74HC4040 in TSSOP
  • (ggf. 2 x Abblockkondensator, Größe 0805, Keramik 100 nF, sollte aber schon bestückt sein)

Einige Bilder:


Software

Wie installiere ich den Treiber/die Kernel-Module?

Derzeit (stand 1.4.2008) muss der Treiber aus den hg-repository-quellen von Oliver Endriss kompiliert werden. Die aktuellen HG-Treiber kompilieren allerding im Moment nur ab Kernel 2.6.23?

Prinzipiell ist das vorgehen "make menuconfig, make, make install".

Im Rahmen dieses Mods kann jedoch keine allgemeine Anleitung für das kompilieren von Kernel-Modulen gegeben werden. Hier aber ein paar Links auf entsprechende Anleitungen:

Diese Modifikation wird aber vermutlich mit der Zeit Einzug in den offiziellen Kernel finden, so das eigenständiges kompilieren überflüssig werden sollte (wie beim 4MB-mod)

Wie lade ich den Treiber / das Modul um den FullTS-Mod zu aktivieren?

Dazu muss der DVB-Treiber mit der Option driver "full_ts=1" geladen werden.

modprobe dvb-ttpci full_ts=1

Wie kann ich prüfen ob mein Kernel-Modul den Full-TS-Mod unterstüzt?

Mit

modinfo dvb-ttpci | grep full_ts

Dabei sollte dann ein

parm:           full_ts:enable code for full-ts hardware modification: 0 disable (default), 1 enable (int)

angezeigt werden. Wird nichts angezeigt, wird kein Full_Ts-Parameter vom Kernel-Modul unterstützt.

Was passiert wenn ein Karte ohne Hardware-Änderungen mit der full_ts=1 option geladen wird?

Reines TV schauen geht noch, dabei wird ja nichts über den PCI-Bus übertragen.

Wenn jedoch versucht wird mit der FF eine Aufnahme zu machen, geht das bei full_ts=1 nur mit gemoddeter Karte. Ansonsten gibt es kein Signal, da der Port_b ja nicht angeschlossen ist (und der VDR stürzt dann in der Regel ab).

Was passiert, wenn zwei FF-Karten im VDR stecken und die eine die Modifikation hat, die andere aber nicht? Gibt es da Probleme oder wird das automatisch berücksichtigt?

Kein Problem, wenn das EEPROM richtig programmiert wurde. Genau deshalb kann eine Kennung in das EEPROM geschrieben werden (siehe nächste Frage).

Ist es möglich, den Mod irgendwie treiberseitig automatisch zu erkennen, ohne "full_ts=1"?

Ja, ist im Treiber bereits eingebaut. Damit dies funktioniert, muss man einmalig das Skript

#!/bin/bash
if [ -z $1 ] ; then
       echo "Usage: $0 <number of I2C bus>"
       echo "Tool to add the 'full-ts' signature to the eeprom of a full-featured card"
       echo
       echo "I2C busses found:"
       i2cdetect -l
       exit 1
fi

i2cset -y $1 0x55 0 0x4f b
i2cset -y $1 0x55 1 0x45 b
i2cset -y $1 0x55 2 0x01 b
i2cset -y $1 0x55 3 0x00 b

aufrufen (benötigt i2ctools). Der VDR muss dabei gestoppt sein. Das Modul i2c-dev wird für das Auflisten der I2C-Busse zusätzlich benötigt:

modprobe i2c-dev

Den Patch sollte man jedoch erst anwenden, wenn der Mod erfolgreich getestet wurde. Im Original steht im EEPROM übrigens ff ff ff ff statt 4f 45 01 00, damit sollte man den Originalinhalt des EEPROMs wiederherstellen können, falls man den Patch wieder deaktivieren möchte. Der Inhalt des EEPROMs kann übrigens mittels

i2dump <Bus> 0x55

ausgegeben werden.