Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Configurar la salida de TV en tarjetas nVidia

Hay muchos manuales para configurar la salida de television de una tarjeta nVidia. Es sencillo y sin embargo puede hacer perder mucho tiempo, por ello dejo aquí unas notas de como lo he hecho yo.
 
Mi guía (he seguido muchas pero esta resultó la buena) ha sido la receta en inglés de Wikibooks (nVidia/TV-OUT).
No voy a repetir lo que está allí, solo añadiré algunos comentarios.
 
Prerequisito: Tener correctamente configurado el controlador de la tarjeta.
 

Preparación

Lo primero que debemos hacer es identificar las conexiones físicas (SVideo/SVHS, RCA, SCART/Euroconector…). Hay mucha información en internet así que solo comentaré un par de cosas.
Hay conectores de SVideo de 4, 7 y 9 pines. En principio son compatibles (salvo fabricantes extraños), lo que quiere decir que aunque tu tarjeta tenga una salida de 7 pines puedes utilizar un cable de 4 pines, por ejemplo.
Puedes necesitar conversores SVideo-RCA, RCA-SCART, SVideo-SCART… en teoría todas funcionan pero si no lo consigues con una, prueba otra.
¡Ojo!, no todos los SCART, ni todos los conversores son compatibles con SVideo.
En mi caso la TV solo tiene dos entradas SCART, de las cuales solo una admite SVideo. Se puede detectar porque cambiando la entrada con el mando a distancia pasa de modo TV, a modo Ext1, luego a modo Ext2 y luego a modo SVHS2.
Del mismo modo disponía de un conversor de RCA a SCART que tampoco admite SVideo (y me costó darme cuenta).
Actualmente utilizo una salida SVideo con un conversor SVideo/SCART. Si conecto el SVideo a la entrada RCA del conversor a SCART no funciona…
Resumiendo: tras configurar correctamente el sistema no veia la tele por culpa de los conectores, y me pasé toda una tarde cambiando y recambiando la configuración, probando manuales distintos… :-(
Así que verifica varias veces tus conectores y si es necesario compra nuevos (en España al menos el conversor y el cable cuestan menos de 6 euros). Yo tuve que ir dos veces a la tienda hasta encontrar la combinación adecuada.
 
En ningún sitio lo he leido pero hay un modo muy sencillo de verificar las conexiones físicas (quiza la gente no ha tenido el mismo problema que yo): con el equipo apagado se realizan las conexiones y se enciende. Si la conexión es buena verás el arranque por la TV. Sin configurar controladores, software o sistemas operativos. El arranque ya debe verse en la TV, al menos con una GeForce 8400 GS (si lo hubiera sabido antes…).
 

Configuración

Hay dos aproximaciones al problema: o utilizar un solo servidor gráfico con dos monitores (nVidia TwinView) o utilizar dos servidores gráficos diferentes.
La guía utiliza la segunda aproximación. Yo he seguido muchas guías intentando configurar la primera y no lo he conseguido. Parece que está más orientada al uso de dos monitores, porque los errores me los da únicamente en los metamodes.
 

Siguiendo la guía

No la voy a repetir, pero aquí está mi fichero xorg.conf (simplemente tuve que añadir la parte que se encuentra bajo “Configuracion para la TV”):

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen         0 "Screen0" 0 0
    #Screen         1 "Screen1" RightOf "Default Screen"
    InputDevice    "Generic Keyboard"
    InputDevice    "Configured Mouse"
EndSection

#Section "ServerFlags"
#    Option         "Xinerama" "0"
#EndSection

Section "Files"
	# path to defoma fonts
    FontPath        "/usr/share/fonts/X11/misc"
    FontPath        "/usr/X11R6/lib/X11/fonts/misc"
    FontPath        "/usr/share/fonts/X11/cyrillic"
    FontPath        "/usr/X11R6/lib/X11/fonts/cyrillic"
    FontPath        "/usr/share/fonts/X11/100dpi/:unscaled"
    FontPath        "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath        "/usr/share/fonts/X11/75dpi/:unscaled"
    FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath        "/usr/share/fonts/X11/Type1"
    FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
    FontPath        "/usr/share/fonts/X11/100dpi"
    FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
    FontPath        "/usr/share/fonts/X11/75dpi"
    FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"
    FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
    Load           "bitmap"
    Load           "ddc"
    Load           "extmod"
    Load           "freetype"
    Load           "glx"
    Load           "int10"
    Load           "vbe"
EndSection

Section "InputDevice"
    Identifier     "Generic Keyboard"
    Driver         "kbd"
    Option         "CoreKeyboard"
    Option         "XkbRules" "xorg"
    Option         "XkbModel" "pc105"
    Option         "XkbLayout" "es"
EndSection

Section "InputDevice"
    Identifier     "Configured Mouse"
    Driver         "mouse"
    Option         "CorePointer"
    Option         "Device" "/dev/input/mice"
    Option         "Protocol" "ImPS/2"
EndSection

Section "Monitor"
    Identifier     "Monitor TFT"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 70.0
    VertRefresh     50.0 - 160.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "nVidia Corporation NVIDIA Default Card"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8400 GS"

    Busid          "PCI:3:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "nVidia Corporation NVIDIA Default Card"
    Monitor        "Monitor TFT"
    DefaultDepth    24

    SubSection     "Display"
        Depth       1
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       4
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       8
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       15
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       16
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       24
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

#############################################################
# Configuracion para Compiz #
#############################################################

Section "Extensions"
    Option "Composite" "Enable"
EndSection

Section "DRI"
    Mode 0666
EndSection

#############################################################
# Configuracion para la TV #
#############################################################

Section "ServerLayout"
    Identifier     "TV"
    Screen         0 "Screen1" 0 0
    InputDevice    "Generic Keyboard"
    InputDevice    "Configured Mouse"
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "nVidia TV"
    Monitor        "Monitor TV"
	DefaultDepth 16
	SubSection "Display"
		Depth     16
		#Modes "1024x768" "800x600" "640x480"
		Modes "640x480"
	EndSubSection
EndSection

Section "Monitor"
    Identifier     "Monitor TV"
    HorizSync       30.0 - 50.0
    VertRefresh     60.0
EndSection

Section "Device"
    Identifier     "nVidia TV"
    Driver         "nvidia"

    Busid          "PCI:3:0:0"

	#Option "TwinView" "1"
	#Option "SecondMonitorHorizSync" "30-50"
	#Option "SecondMonitorVertRefresh" "60"
	#Option "TwinViewOrientation" "Clone"
	Option "TVStandard" "PAL-G"
	#Option "TVOutFormat" "COMPOSITE"
	#Option "TVOutFormat" "SVIDEO"
	#Option "ConnectedMonitor" "CRT,DFP,TV"
	Option "ConnectedMonitor" "TV"
EndSection



 

Por último configure un sencillo ~/.xinitrc:

metacity &
totem &
xterm

 
Junto con un miniscript ~/bin/TV del que hice un lanzador en el escritorio:

#!/bin/bash

xinit -- :1 -layout TV
# ver ~/.xinitrc

 
Además de los scripts indicados en la guía.
tv-mplayer:

#!/bin/sh

exec /usr/X11R6/bin/xinit /usr/bin/xterm -ut -e \
  /usr/bin/mplayer -stop-xscreensaver -fs -vo sdl "$@" -- /usr/X11R6/bin/X :1 -layout TV

tv-totem:

exec /usr/X11R6/bin/xinit /usr/bin/xterm -ut -e \
  /usr/bin/totem -- /usr/X11R6/bin/X :1 -layout TV

La ventaja de llamarlos tv-* es que es más facil lanzarlos desde bash con autocompletar (TAB).
 
¡Y ya está!
Ahora estoy intentando que cuando enciendo el equipo con la TV conectada siga utilizando el monitor, porque actualmente me toca desconectar la TV en el arranque.
 

Solventando errores

Una buena fuente es la FAQ de X.org.
 
X: user not authorized to run the X server, aborting.
Dos opciones, la sencilla:
# dpkg-reconfigure X11-common
 
Para entenderlo mejor:
# vi /etc/X11/Xsession.options

allow-user-resources
allow-user-xsession

# vi /etc/X11/Xwrapper.config

allowed_users=anybody

 
Xlib: connection to “:1.0″ refused by server
$ mv ~/.Xauthority ~/.Xauthority.old
 

Configurar la salida de TV en tarjetas nVidia, tv-out nvidia Linux, salida tv en GNU/Linux

Categoría: GNU/Linux, Hardware