Home   Artikel   Archiv   Forum   Impressum  
Artikel vom 06.04.2002
Autor: Ronny Ziegler
Languages: en
Artikel bewerten:

Printer Druckversion
Helfen Sie mit!
 

Linux auf dem Fernseher II

Voodoo3-3000 Während der erste Teil dieses Artikels die Herstellung und Konfiguration eines selbstgebauten TV-Ausgangs erklärte, beschäftigt sich dieser Teil mit der Konfiguration einer Voodoo3-3000 und einer NVidia-Geforce.


Voodoo 3

Als glücklicher Besitzer einer Voodoo3-3000 Karte mit eingebautem TV-Ausgang war ich mir dessen Vorzüge zunächst gar nicht bewußt. Denn nach anfänglichen Versuchen den TV-Ausgang unter Windows mit den beiliegenden Windows-Treiber zu aktivieren, wollte das sog. "Betriebssystem" nicht mehr booten, so daß nach der obligatorischen Neuinstallation von Windows das nützliche Feature vorsichtshalber nicht mehr ausprobiert wurde und somit schnell in Vergessenheit geriet.
Erst als ich längere Zeit später über das der Grafikkarte beiliegende Adapterkabel stolperte (was natürlich nur bildlich zu verstehen ist) erinnerte ich mich wieder an den TV-Ausgang und fragte sofort in der Voodoo-Newsgroup nach, wie und ob man denn den TV-Ausgang auch unter Linux benutzen könne.
"Ja, aber ..." lautete die Antwort.

Startet man nämlich den PC ohne angeschlossenes VGA-Kabel, aktiviert die Voodoo-Grafikkarte automatisch den TV-Ausgang. Somit benötigt man keinerlei Treiber, allerdings ist diese Eigenheit für den amerikanischen Markt eingestellt, also erfolgt die Ausgabe in NTSC und nicht PAL.
Außerdem funktioniert die Ausgabe dann nur unter Konsole und nicht unter X.

Erfreut stellte ich (wiederrum einige Wochen später) fest, daß sich mittlerweile die Situation wieder gewandelt hatte, und man nun doch Treiber für den TV-Ausgang unter Linux programmiert wurden.

Das "lm_sensors"-Projekt (http://www2.lm-sensors.nu/~lm78/), welches eine riesige Anzahl an speziellen Hardwarekomponenten auslesen und z.T. auch manipulieren kann, besitzt nämlich auch Unterstützung für den auf der Voodoo3 befindlichen TV-Chip.
Zum Kompilieren benötigt man die beiden unter http://www2.lm-sensors.nu/~lm78/download.html befindlichen Pakete "i2c" und "lm_sensors".
Zuerst muß man das Paket i2c kompilieren und installieren (make; make install; depmod -a). Sollte man immer noch den der Distribution beiliegenden Standardkernel benutzen, kann es dabei u.U. zu Problemen kommen. Läuft das System bereits mit einem Kernel von kernel.org, sind die Chancen auf Erfolg um einiges größer.
Nach erfolgreicher Installation des i2c-Paketes müssen dann die lm_sensors-Tools erzeugt und installiert werden. Nähere Hinweise zur Installation findet man in der lm_sensors-Dokumentation unter http://www2.lm-sensors.nu/~lm78/docs.html.

Dadurch erhält man in den Unterverzeichnissen lm_sensors-2.x.x/kernel/chips und lm_sensors-2.x.x/kernel/busses die beiden benötigten Module bt869.o und i2c-voodoo3.o, die (falls dies durch die Installation noch nicht geschehen sein sollte) in das /lib/modules/2.x.x/misc/ Verzeichnis kopiert werden müssen.

Die Ausgabe auf dem TV-Ausgang kann wahlweise in "640x480" oder "800x600" stattfinden.
Dafür benötigt der X-Server zunächst noch die zugehörigen Modelines, da Auflösung von TV-Ausgang und VGA-Ausgang nicht unabhängig voneinander eingestellt werden können (sog. Dual-Head). Möchte man also die Auflösung von 640x480 auf dem Fernseher betrachten, so zeigt auch der Monitor die entsprechende Auflösung an. Aber nicht jeder Monitor verkraftet die zu den Modelines gehörenden niedrigen Frequenzen, so daß der Monitor während des TV-Genusses ausgeschaltet werden sollte.

Die zugehörigen Modelines sehen folgendermaßen aus:

/etc/XF86Config
  [...]
  ModeLine "640x480PAL"   29.50       640  675  678  944  480  530  535  625
  ModeLine "800x600PAL"   36.00       800  818  820  960  600  653  655  750
  [...]
  Subsection "Display"
     Depth	     16  
     Modes       "1280x1024" "800x600PAL" "800x600" "640x480PAL" "640x480" 
  [...]
  


Um nun den TV-Ausgang softwaremäßig zu aktivieren, müssen einerseits die notwendigen Module geladen und die Information über die gewünschte Auflösung in die zugehörigen /proc-Devices geschrieben werden.
Am einfachsten schreibt man sich dafür jeweils ein Skript (hier am Beispiel eines 2.2.16-Kernels):

640x480
   #!/bin/sh
   cd /lib/modules/2.2.16/misc/
   insmod i2c-voodoo3.o 
   modprobe bt869
   echo 0 > /proc/sys/dev/sensors/bt869-i2c-1-44/ntsc
   echo "640 480" > /proc/sys/dev/sensors/bt869-i2c-1-44/res
  


Die vorletzte Zeile aktiviert übrigens die Ausgabe im PAL-Format.
Für eine Auflösug von 800x600 ist das Skript ganz analog aufgebaut:

800x600
   #!/bin/sh
   cd /lib/modules/2.2.16/misc/
   insmod i2c-voodoo3.o 
   modprobe bt869
   echo 0 > /proc/sys/dev/sensors/bt869-i2c-1-44/ntsc
   echo "800 600" > /proc/sys/dev/sensors/bt869-i2c-1-44/res
  


Die Skripte müssen jeweils vom Benutzer root aufgerufen werden, um die notwendigen Rechte zu besitzen.
Sehr nützlich in diesem Zusammenhang ist das kleine Programm chgres (zu finden unter http://hpwww.ec-lyon.fr/~vincent/ in der Rubrik "U*X/Linux stuff"), welches einem das Ändern der Auflösung von der Konsole aus erlaubt.

Fügt man nun seinem Skript am Ende jeweils die Zeile

  /usr/local/chgres-0.1/chgres set 640x480@29500
  
für die Auflösung von 640x480 bzw.
  /usr/local/chgres-0.1/chgres set 800x600@36000
  
für die Auflösung von 800x600 an, so wird automatisch nach dem Aktivieren des TV-Ausgangs die entsprechende Auflösung des X-Servers eingestellt.

Seltsamerweise klappt das Aktivieren des TV-Ausgangs nicht immer beim ersten Versuch. Häufig ist ein mehrfaches Ausführen des Skriptes nötig, oder gar ein neustarten des X-Servers.
Sollte man den TV-Ausgang für öffentliche Präsentationen nutzen, empfiehlt es sich, einen eigenen Account dafür anzulegen, und somit einen Windowmanager seiner Wahl (sehr geeignet ist hierfür z.B. WMaker) nur für diesen Zweck zu konfigurieren.
Als nützlich beim Positionieren von Programmfenstern hat sich dabei folgender zentriert darzustellender Desktop-Hintergrund herausgestellt:

Desktophintergrund

Anbei noch meine persönliche XF86config-Datei (für XFree86 Version 3.3.6, die aber nach kleineren Modifikationen auch für die 4.x-Version benutzt werden kann). Diese enthält neben den für den TV-Ausgang benötigten PAL-Auflösungen (die, da sie von meinem SyncMaster17Gli nicht dargestellt werden können, direkt neben den darstellbaren gleichgroßen Auflösungen liegen) noch eine Reihe weiterer stark vergrößernder Auflösungen.
(download der XF86Config für Voodoo3-3000, XFree86 3.3.6)

NVidia Geforce

GeForce Chip Auch der TV-Ausgang der NVidia Geforce kann unter Linux benutzt werden. Die Installation hierfür ist um einiges simpler als bei der Voodoo3-Karte, da die TV-Unterstützung direkt im NVidia-eigenen X-Server integriert ist.
Man muß dazu lediglich die XF86-Config-Datei anpassen, um seinen TV-Ausgang zu konfigurieren. Dafür legt man sich am besten zwei Konfigurationsdateien an, einmal für normalen Monitoreinsatz, und eine weitere für den TV-Ausgang:
Man kopiert also seine alte XF86Config nach /etc/X11/XF86Config.Monitor und erstellt eine neue XF86Config und kopiert diese nach /etc/X11/XF86Config.TV.

Je nachdem, welchen Grafikkartenausgang man gerade benötigt, verlinkt man die /etc/X11/F86Config entweder zur TV-, oder Monitor-Variante.

Sollte der X-Server bereits gestartet sein, muß er mittels

  >> init 3 
  >> init 5
  
nun mit der geänderten Konfiguration erneut gestartet werden.
Ohne eine Standard-X-Anmeldung reicht auch ein startx.

(download der XF86Config für NVidia Geforce, XFree86 4.0.1)

Hilfreich bei der Konfiguration der NVidia-Karte und dessen TV-Ausgangs ist das grafische Tool NVOptions, zu finden unter http://www.sorgonet.com/linux/nvoption/.

NVOptions Screenshot

Adapter

Der den Grafikkarten beiliegende Adapter stellt als Ausgang zumeist einen Chinch-Stecker. Dieser kann aber wohl nur in den wenigsten Fällen direkt an den Fernseher oder ans Video-Gerät angeschlossen werden. In sochen Fällen benötigt man noch einen Chinch-Scart-Adapter, wie er z.B. bei Conrad (Artikel-Nr.: 350036 - 62) für ca. 8 EUR erhältlich ist:

Zusammen mit einem Stereo-Cinch-Audio-Kabel kann man dann sein Linux an den TV/VCR anschließen und wunderbar Filme vom PC auf dem TV ansehen.




Anmerkungen zu diesem Artikel


[1]  Voodoo3 TVout  mit Linux funktioniert nur fast...nyk01-4-2003


Eigene Anmerkung eintragen