Hola a todos , quisiera compartir como solucionar este molesto error que tienen nuestras tarjetas nvidia en linux que nos impide cambiar la resolución. El tutorial está hecho para ubuntu pero em sirvio en fedora asi que imagino que servirá en mas linux
El problema en cuestión es la falla del driver propietario de Nvidia al colocar la resolución correcta para nuestro monitor (en la mayoría de los casos, porque no es capaz de leer correctamente la EDID del mismo), con otras placas de video este problema no surge, debido a que los demás drivers usan XRandR, una extensión del X Server que permite manejar los temas de resolución, y que tiene mejor autodetección de hard gracias al uso de HAL.
Traducción de los síntomas para novatos : después de instalar el driver privativo de Nvidia, al iniciar, o bien no se ve nada y el monitor tira 'Out of Range' (o similar), o bien la resolución seteada es incorrecta y no se puede colocar la deseada desde Resolución de pantalla en Sistema > Preferencias (esto último es lógico, ya que dicha aplicación es solo un front-end para XRandR, que no funciona con los drivers privativos de Nvidia), ni desde NVIDIA X Server Settings en Sistema > Administración (esta herramienta es útil, pero no hace magia, lo que no hace el driver, no lo hace ella, y además no es muy práctica agregando resoluciones)
Paso 1: instalar los drivers privativos, si no estaban instalados ya (en Sistema > Administración > Controladores de hardware) y correr en una Terminal (Aplicaciones > Accesorios > Terminal) y ejecutamos en terminal
para que el driver de Nvidia escriba en el archivo de configuración del X Server (el servidor gráfico) los datos que es capaz de detectar...
Paso 2: reiniciar la sesión, si la resolución es la correcta, el tutorial termina acá, feliz uso de ubuntu , si la resolución es incorrecta el tutorial sigue...
Paso 3: si la resolución no es la correcta pueden ocurrir dos cosas:
- el monitor se queda en negro con un cartel que indica 'Out of Range', con Ctrl + Alt + - se puede disminuir la resolución, si esto no funciona, con Ctrl + Alt + F1 se puede acceder a una consola virtual y trabajar desde alli...
- el monitor si es capaz de mostrar la resolución, por lo que el inicio es normal, pero se ve todo 'grande'...
En ambos casos, hay que editar el archivo de configuración del servidor X, y agregarle los datos de nuestro monitor. Ese archivo está en /etc/X11/xorg.conf (en sistemas Unix como GNU/Linux, las mayúsculas son importantes, la carpeta es X11, con mayúscula), y para modificarlo se necesitan permisos de administrador (root), por lo que se usa el comando 'sudo'. En el primer caso, al no tener activo el servidor gráfico, se debe usar un editor de texto de consola, como 'nano', que es el más simple, en 'nano' se usan las Flechas para mover el cursor, Ctrl + O para guardar, Ctrl + W para buscar una palabra, y Ctrl + X para salir. En el segundo caso se puede usar el editor de textos de Gnome, 'gedit' que es gráfico y muy fácil de usar.
Bueno, en el primer caso, una vez logueados en la consola virtual, tipeamos
para editar el archivo.
En el segundo caso, en una Terminal, tipeamos
En ambos casos hacemos las siguientes modificaciones:
-Vamos hasta la sección Monitor, que debe ser similar a esta (puede variar):
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "CRT-0"
EndSection
y le agregamos dos valores, el VertRefresh y el HorizSync, dejándola así:
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "CRT-0"
HorizSync 30.0 - 70.0
VertRefresh 50.0 - 160.0
EndSection
estos valores cambian entre los modelos y tipos de monitor, tienen que colocar los que correspondan a SU monitor, los cuales pueden encontrar en el manual, en las especificaciones o en internet (son valores en Hz, muchas veces traducidos como refresco horizontal y vertical).
-Luego nos dirigimos a la sección Screen:
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
y le agregamos tres opciones, una para que no lea los datos desde el EDID, otra para indicarle la resolución deseada, y una última para indicarle algunas de las resoluciones que sabemos que el monitor es capaz de mostrar:
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "UseEdid" "False"
Option "MetaModes" "1400x1050 +0+0"
SubSection "Display"
Depth 24
Modes "1400x1050" "1280x1024" "1024x768" "800x600"
EndSubSection
EndSection
obviamente sustituyendo esos valores de resolución por los que correspondan a SU monitor (el +0+0 es el panning, no cambiar, a menos que sepan lo que hacen).
-Guardar (en nano Ctrl + O, Enter) y salir del editor (Ctrl + X en nano).
-Si estamos en una consola virtual, iniciar las X con
sudo /etc/init.d/gdm start
-Si estamos en Gnome, reiniciar sesión.
Eso es todo, al iniciar sesión nuevamente, la resolución debería ser la correcta.
No soy un gran experto en linux pero cualquier duda o problema animaros a preguntarla!!