author | Markus Iofcea [www.iofcea.de]
Warum gibt es diese Doku?
Ich schreibe dieses kleine HowTo weil es sonst kaum eine richtig brauchbare Beschreibung zu diesem Thema im Netz gibt. Lange habe ich gesucht, doch nie habe ich etwas gefunden, dass mir in der Praxis weitergeholfen hat.
Immer wieder finde ich Seiten im Internet, die beschreiben wie man den XServer für ein Fernsehoutput konfiguriert. Solche Seiten bringen einem nur leider nichts, da das ja auch in der nVidia Readme Datei steht. Es geht dabei immer um einen Fernseher-Only Betrieb. Mal ehrlich... wer braucht denn sowas? Wer arbeitet schon an einem Fernseher ?
Alles was ich wollte, war Filme auf dem Fernseher anschauen und den Rest am Monitor erledigen. Dazu hätte ich, wenn es nach diesen Leuten ginge, zwei X-Server Konfigurationsdateien gebraucht. Eine für Monitor-Out und eine für TV-Out. Ich wollte aber nicht mit zwei X-Server Konfigurationsdateien rumhantieren und jedesmal den X-Server neustarten wenn ich mal den anderen Ausgang der Grafikkarte benötigt hatte. Bei diesem Problem konnte mir leider keine dieser Webseiten helfen, also habe ich den Do-It-Yourself-Weg eingeschlagen und diesen möchte ich hier mit euch teilen.
Was unterscheidet diese Doku von den anderen?
Nunja.. ich biete euch hiermit ein Lösung an, bei der ihr den Monitor- und den TV-Ausgang der Grafikkarte gleichzeitig nutzen könnt. Nur noch eine Konfigurationsdatei und damit kein neustarten des X-Servers. Ihr könnt mit dieser Lösung am Bildschirm arbeiten und wenn ihr mal Lust auf einen Film habt, dann könnt Ihr auf ein TV-Out Icon auf dem Desktop klicken (oder wie auch immer...) und schon habt Ihr auf eurem Fernseher ein astreines TV Bild mit einem geöffnetem Movie Player im Vollbild-Modus (ich verwende in diesem Beispiel Xine).
Was für Voraussetzungen muss ich erfüllen?
An Software braucht ihr einen X-Server (Version > 4.1.x) und nVidia Grafikartentreiber für Linux, von der nVidia Webseite.
An Hardware braucht ihr eine nVidia Grafikkarte ab dem Modell TNT2 oder neuer. Diese sollte natürlich mit einem TV-Ausgang bestückt sein.
Konfiguration
Was ich hier voschlage ist kein Hexenwerk. Ich nutze lediglich ein paar Features des X-Servers. In diesem konkreten Fall nutze ich aus, dass man mehrere Monitor definieren kann. Wie geht das nun?
Wir müssen an drei Stellen in der XF86Config (meist /etc/X11) Datei etwas hinzufügen bzw. etwas ändern.
1. Wir definieren uns zusätzlich zu unserem normalen Monitor noch einen Fernseher.
Section "Monitor"
Identifier "Monitor[1]"
ModelName "PAL TV"
VendorName "SONY"
VertRefresh 60
HorizSync 30-50
EndSection
2. Nun brauchen wir noch eine zusätzliche "Screen" Definition. Diese gibt an, welche Farbtiefe und Auflösung verwendet werden soll. Zusätzlich bestimmen wir mit der Optione Monitor, dass der oben definierte Fernseher verwendet werden soll. Mit der Option Device bestimmen wir, dass der TV-Ausgang der Grafikkarte verwendet werden soll. Das Device[1] wird bei Punkt 3 definiert.
Section "Screen"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
Device "Device[1]"
Identifier "TV"
Monitor "Monitor[1]"
EndSection
3. Wir definieren ein TV-Out Device.
Section "Device"
BoardName "GeForce-2"
Driver "nvidia"
Identifier "Device[1]"
Screen 0
VendorName "Nvidia"
Option "NoLogo" "on"
Option "CursorShadow" "on"
Option "CursorShadowAlpha" "32"
Option "CursorShadowXOffset" "2"
Option "CursorShadowYOffset" "2"
Option "TVOutFormat" "COMPOSITE"
Option "TVStandard" "PAL-B"
Option "ConnectedMonitor" "TV"
EndSection
Das war es auch schon, was die Konfiguration angeht. Ihr könnt euch auch einfach meine XF86Config Datei herunterladen und an eure Gegebenheiten anpassen. Wenn ihr das gemacht habt, müsst ihr den X-Server neu starten, damit die Änderungen übernommen werden.
TV-Out aktivieren
Um nun etwas auf dem Fernseher ausgeben zu können starten wir einen zusätzlichen X-Server in dem automatisch der Movie Player im Vollbildmodus gestartet wird. Dies geschieht mit folgender Befehlszeile.
X -screen TV :1 -ac & sleep 2; DISPLAY=:1 xine -f && kill ps aux | awk '/X\ -screen/ {print $2}'
screen TV :1 -ac & sleep 2; DISPLAY=:1 xine -fs "$1" && kill ps aux | awk '/X\ -screen/ {print $2}'
Der "kill" Befehl am Ende der Befehlszeile bewirkt, daß der gestartete X-Server mit TV-Output nach beenden
des Movie Players auch beendet wird. Spart zusätzlich Speicher.
Was passiert nun eigentlich wenn ihr diesen Befehl ausführt?
1. Eure Monitoranzeige schwarz. Das kommt daher, daß wir den TV-Ausgang aktiviert haben und die Ausgabe nun auf dem Ferseher zu sehen ist. In diesem Fall sieht man Xine im Vollbildmodus auf dem Fernseher. 2. Euer Desktop ist nach wie vor auf dem alten X-Server vorhanden. Ihr könnt zwischen Desktop und Fernseher beliebig umschalten. ALT-CTRL-F7 für Monitor und ALT-CTRL-F8 für den Fernseher.
Hier ist ein kleines Shellskript, dass ihr mit einem Icon verknüpfen könnt um TV-Out zu benutzen.
Anmerkung: Mir wurde berichtet, dass es mit dem '-f' Parameter von Xine Probleme geben kann. Wer also Probleme mit dem Fullscreenparameter hat, sollte mal '--fullscreen' probieren.
Vorteil
Ihr könnt auf dem Desktop andere Sachen darstellen wie auf dem Ferseher. Nicht wie bei Windows, wo das TV Bild das gleiche ist wie das Monitorbild (außer bei Matrox und ATI.. ich weiß).
TV-Out mit NVTV - author | root [www.linux-clan.com]
Nvtv ist ein kleines Tool um den Fernseher anzusteuern. Man kann es schnell installieren. Die Bediehnung ist auch nicht sehr schwer. Zuerst mal ladet euch das Tool:
nvtv-0.4.4
aktuelle Version runter laden
- entpacken: tar vxfz nvtv-0.4.4.tar.gz
- cd nvtv
- ./configure
- make
So, nun habt hier im Ordner /nvtv/src/ eine Datei mit den Namen nvtv, nvtvd und eine nvtv-gtk2. Nvtvd ist dafür da das ein "normale" User, ohne Rootrechte diese Tool verwenden kann. Also solltet ihr euch entscheiden.
1. Ihr kopiert diese Datei einfach nach /usr/bin. Dann müßt ihr sie jedes mal starten bevor ihr Nvtv benutzen wollt. Also wenn ihr diese Tool nicht oft braucht, reicht das völlig aus.
2. Ihr fügt nvtvd zu euren init Prozessen. Dann würd es bei jedem Booten automatisch gestartet. Wie ihr das dazu fügt, will ich hier nicht beschreiben, da das jede Distribution etwas anders handhabt.
Jetzt könnt ihr einmal nvtvd Ausführen. Also nur als Root (su –> Root Passwort –> nvtvd). Nun solltet ihr testen welche von beiden Tools bei euch besser geht. Dazu einfach mal nvtv starten. Wenn das nicht geht dann startet ihr nvtv-gtk2. Beide Datein findet ihr natürlich im entpackten Ordner ../nvtv/src. Das was von beiden geht, könnt ihr dann einfach in das Verzeichniss /usr/bin Verschieben.
Anmerkung: Solltet ihr beide nicht starten können, achtet darauf das sie auch ausführbar sind. Ansonsten mit chmod 777 nvtv nachhelfen.
Das Programm erklärt sich eigentlich von selbst. Wenn ihr Probleme habt, das nur ein Teil vom Bildschirm auf den TV zu sehen ist, solltet ihr zuerst eure Auflösung am Rechner auf 800x600 umstellen, X neu starten und nvtv erneut aufrufen. Jetzt solltet ihr alles sehen können. Mit F1 und F2 könnt ihr TV-on und TV-off schalten.