martes, 30 de marzo de 2010

Agregar resolución de monitor en Fedora 12

Bueno, como primera entrada verdadera de este blog publicaré la solución a un problema que se me presentó ayer.

Compré un TV LCD LG 26LH20R, una belleza de 26" con una resolución máxima de 1360x768. Lo compré para usarlo como monitor, así que llegué entusiasmado a conectarlo sólo para darme cuenta de que la imagen era algo 'chistosa'. No tardé en darme cuenta de que la bendita tarjeta de video (GeForce 6150SE nForce 430) sólo podía configurarse hasta 1024x768, así que a empezar a googlear.

La solución: Muy sencillo, agregar un nuevo modeline al monitor en el archivo de configuración '/etc/X11/xorg.conf' (en Fedora 12).


Aunque hay que hacerlo bien. Debo aclarar que previamente había instalado los controladores nvidia, siguiendo esta guía. Por lo que tengo disponible la aplicación Nvidia X Server Settings. Usé la opción "Save to X configuration File" en la sección "X Server Display Configuration" para generar un archivo de base. Al archivo generado, en la Sección "Monitor" actualicé los datos de mi nuevo juguete (aunque creo que no sirvió de nada). Lo importante es lo siguiente:
  • En la sección "Monitor" agregar una línea Modeline por cada resolución que se quiera agregar. Para saber qué es lo que hay que agregar (ya que como verán hay un montón de números que sabrá mandrake qué significan, y no me interesa), se puede usar el Modeline Calculator.
  • En la sección "Screen" agregar una línea Option metamodes con las resoluciones soportadas.
Luego de hacerlo reiniciar el sistema y entrar al Nvidia X ServerSettings, donde ahora tendremos disponible la nueva resolución para poderla configurar. A continuación muestro mi archivo 'xorg.conf' como quedó. Pero antes 3 pequeñas observaciones:

  • Al parecer hay que usar resoluciones estándar, ya que intenté una línea con 1360x768_57.79 (la frecuencia especificada en el manual del TV) y lo que obtuve fue un listado de resoluciones hasta 1400x1050, pero no la de 1360x768. La cambié por la estándar 1360x768_60.00 y voilà.
  • Luego de aplicar la resolución al sistema, puede que sea necesario apagar el TV y volverlo a encender para que este reconozca la resolución. Tuve que hacerlo la primera vez, pero después no ha habido problemas.
  • Esta solución tiene una pequeña pega, y es que cada que entro al sistema debo especificar la resolución, ya que la tarjeta siempre asigna la que le parece la más adecuada (en mi caso 1024x768), incluso si quito el metamode nvidia-auto-select.


# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (mockbuild@builder.wilsonet.com) Sun Feb 28 16:29:49 EST 2010

# Xorg configuration created by livna-config-display

Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection

Section "Files"
ModulePath "/usr/lib64/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib64/xorg/modules"
EndSection

Section "ServerFlags"
Option "AIGLX" "on"
EndSection

Section "InputDevice"
# generated from data in "/etc/sysconfig/keyboard"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "es"
Option "XkbModel" "pc105"
EndSection

Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "LG"
ModelName "26LH20R"
HorizSync 30.0 - 67.0
VertRefresh 59.0 - 71.0
interlace
Modeline "1360x768_60.00" 84.72 1360 1424 1568 1776 768 769 772 795 -HSync +Vsync
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
Option "AddARGBGLXVisuals" "True"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 6150SE nForce 430"
Option "ModeValidation" "NoWidthAlignmentCheck, NoDFPNativeResolutionCheck"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Videocard0"
Monitor "Monitor0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "1360x768-60.00 +0+0; nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

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


Eso fue todo, toda una tarde perdida en semejante pendejada. Es en casos como estos en que me molesta Linux, pero luego se me pasa cuando recuerdo cómo era usar ese güinbugs (me pasó un escalofrío).