# [GUIA]Cómo configurar refresco y resolución del monitor

## Stolz

Como es una pregunta que se repite con demasiada frecuencia en el foro me he decidido a hacer una guia para explicar como configurar las resoluciones y el refresco del monitor:

Guía para configurar el refresco y la resolución del monitor en Xwindow

Licencia Creative Commons 2.5

Objetivo:

Conseguir que en el entorno de ventanas Xwindow podamos utilizar todas las resoluciones que nuestro monitor soporta y además lo hagamos a la máxima tasa de refresco posible para cada resolución. La guía está pensada principalmente para Xorg aunque también es válida para Xfree. Todo lo aquí expuesto es independiente del gestor de ventanas o escritorio que usemos y válido para todos ellos (KDE, GNOME, Fluxbox, ...).

Requisitos previos:

Tener un sistema XWindow (Xorg) funcionando. Si no tienes Xorg configurado, antes deberás de generarte un archivo de configuración válido. No entra en el alcance de ésta guía explicar cómo generar dicho archivo o cómo configurar la tarjeta de vídeo. Para eso está la Documentación oficial o las múltiples guías de éste foro.

A quién va destinado:

Principalmente está pensado para usuarios de monitores CRT, ya que son los que más beneficio van a obtener de usar las máximas tasas de refresco soportadas. Para usuarios de monitores TFT también es válido, ya que aunque estos monitores no tienen tasa de refresco propiamente dicha (la tasa de refresco en estos monitores es virtual, realmente no se refrescan), con esta guía pueden aprender a establecer las resoluciones y el refresco virtual (El refresco virtual es necesario para juegos que tengan activado el V-sync).

Advertencia:

Usar unos valores temporales incorrectos o no soportados por tu monitor puede dañarlo. De la misma forma, usar los valores de un monitor en otro monitor pensando que ambos son muy similares puede dañarlo igualmente. Usa esta guía bajo tu propia responsabilidad y riesgo. El autor no se hace responsable de cualquier daño producido por la información y  el material proporcionado. Etc ...  :Rolling Eyes:   :Smile: 

Consideraciones previas:

Se supone que Xwindow ya debería de generar unos modelines correctos para el modo de resolución que indiquemos, pero la gran mayoría de veces no lo hace. Su problema es que por 'correctos' entiende unos modelines válidos, es decir, hacen que el monitor se vea a la resolución indicada,  pero los modelines que genera no aprovechan las características del monitor, de ahí que casi todo el mundo tenga el monitor a sólo 60Hz cuando muchos monitores actuales soportan el doble. 

La guía:

Para ajustar todas las resoluciones que soporta tu monitor y hacer que siempre se vean al máximo refresco posible tienes que modificar tu archivo de configuración de Xorg /etc/X11/xorg.conf y  añadirle unos modelines específicos de tu monitor. Una vez añadidos hay que indicar que quieres usar esos modelines. 

Para generar los modelines necesitarás:El manual de tu monitor o cualquier otra fuente en la que te indique todas las características técnicas de tu modelo en concreto de monitor para asegurarte de que lo aprovechas al máximo. Si no dispones del manual, en www.google.com se suelen encontrar con facilidad las características técnicas de tu modelo. Como último recurso puedes intentar ponerte en contacto con el fabricante del monitor (si es éste tu caso te deseo suerte  :Very Happy: ).

Un programa, script o web en el que meter todas las características y que te genere los modelines.

Algunas webs donde generar modelines:Colas XFree Modeline Generator: De todos los programas y webs, en mi opinión, esta es la mejor opción para generar los modelines ya que es la que aprovecha más el ancho de banda de los monitores actuales.

The XFree86 Modeline Generator: Esta web también tiene en cuenta numerosas temporizaciones por lo que también es una buena opción.

Modeline Tool: Esta web es bastante limitada, pero puede servirnos para monitores muy antiguos, o de bajas prestaciones o monitores TFT, ya que en estps últimos nos basta con poder indicar la resolucón del la pantalla sin entrar en detalles solo aplicables a monitors CRT.

Algunos programas para generar modelines:VideoGen. Disponible en portage. Probablemente el programa de modelines mas usado.

ddcxinfo-knoppix. Disponible en portage. Sólo funciona para arquitecturas x86 por lo que no lo he podido probar (uso x86_64). Para usarlo, una vez instalado ejecutar

```
# ddcxinfo-knoppix -monitor
```

xvidtune (Gracias psm1984).  Viene incluido en Xorg monolítico, si usas XOrg modular (>= 7.0) deberás instalarlo. Permite desplazar la pantalla, ajustar el refresco, tamaño... y generar un modeline que refleje los cambios recién realizados.

No es necesario generar un modeline para todas las resoluciones que el monitor soporta. Solo hay que generar un modeline para cada una de las resoluciones que tengas pensado usar. Por ejemplo, si solo piensas usar las resoluciones 1024x768, 8000x600 y 1600x1200, entonces solo necesitaras 3 modelines.

Una vez generados, hay que ponerlos en el archivo xorg.conf, en la sección "Section "Monitor"". En esta sección también hay que poner los parametros HorizSync y VertRefresh que indican los rangos de refresco horizontal y vertical respectivamente (ver ejemplo de más abajo).

Luego, en la sección "Section "Screen"" hay que indicar qué resoluciones se van a usar, lo cual implica usar los modelines que has generado para esas resoluciones.

A modo de ejemplo ahí van los mios (¡ no usarlos !, pues son específicos de mi monitor, solo son para ver donde se insertan y como deben de quedar las dos secciones importantes. En caso de usarlos en un monitor que no soporte el mismo refresco que el mio puedes dañarlo.)

```
#*********************************************

# Monitor section

#*********************************************

Section "Monitor"

   Identifier   "Sony Trinitron Multiscan G420 (CPD-G420)"

   HorizSync   30.0 - 110.0

   VertRefresh   48.0 - 170.0

   Option   "DPMS"

   ModeLine "640x480" 69.88 640 672 832 896 480 482 494 520 #150Hz

   ModeLine "800x600" 121.85 800 840 1040 1120 600 602 614 640 #170Hz

   ModeLine "1024x768" 154.72 1024 1072 1312 1408 768 770 782 808 #136Hz

   ModeLine "1280x960" 191.35 1280 1344 1640 1752 960 963 975 1002 #110Hz

   ModeLine "1600x1200" 229.35 1600 1672 2032 2176 1200 1202 1214 1240 #85Hz

EndSection

#*********************************************

# Screen section 

#*********************************************

Section "Screen"

   Identifier   "Pantalla Principal"

   Device      "Club3D 6600GT AGP"

   Monitor      "Sony Trinitron Multiscan G420 (CPD-G420)"

   DefaultDepth   24

   SubSection "Display"

      Viewport   0 0

      Depth   8

      Modes   "800x600"

   EndSubSection

        SubSection "Display"

                Viewport   0 0

                Depth   16

                Modes   "1280x960" "1024x768"

        EndSubSection

        SubSection "Display"

                Viewport   0 0

                Depth   24

                Modes   "1280x960" "1024x768" "800x600" "640x480"

        EndSubSection

EndSection
```

La segunda parte, a partir de donde pone  Section "Screen", aunque es muy intuitiva voy a tratar de explicarla por partes por si quedan dudas:Identifier	"Pantalla Principal" Esta parte no hay que tocarla, déjala tal y como aparece en el archivo originalmente.

Device		"Club3D 6600GT AGP" Esta parte tampoco hay que tocarla, déjala tal y como aparece en el archivo originalmente.

Monitor		"Sony Trinitron Multiscan G420 (CPD-G420)" Esta parte si hay que tocarla. Tienes que asegurar que lo que aparece entre comillas es lo mismo que aparece en la sección Section "Monitor" junto al nombre Identifier

DefaultDepth	24 Esta parte también hay que tocarla. Sirve para indicar la profundidad de color que quieres usar, es decir, el numero de colores. Cuanto mas alto, lógicamente mejor. El valor mas alto es 24, que indica 24 bits de color, lo cual son 2 elevado a 24 colores (vamos, una burrada  :Wink: ).

A partir de aquí, hay tres secciones similares. Cada una está delimitada por SubSection "Display" y EndSubSection. Como son iguales solo explico una:

El valor Viewport	0 0 no hay nada que decir, simplemente asegúrate de que aparece. Los otros dos valores si son interesantes.

El valor Depth sirve para indicar la profundidad de color para la que se aplicaran los ajustes de la sección actual. Por ejemplo, en el ejemplo que he puesto yo, hay tres secciones, cada una con un valor de Depth. Es decir, que he indicado configuraciones para tres profundidades de color distintas. Si solo vas a usar una profundidad de color, no hace falta que existan las tres secciones, con una solo basta.

Finalmente, el valor Modes, que seguramente sea el mas importante. Este valor sirve para indicar las resoluciones que quieres usar. Tienes que poner todas las resoluciones que quieras usar en orden, separadas por espacios. Se supone que todas las que aparecerán serán las mismas que definiste en los modelines de la sección Section "Monitor", es decir, que deben de haber tantas resoluciones como lineas que comiencen con la palabra  ModeLine en la seccion Section "Monitor".

Pero OJO, ¡ el ORDEN Sí IMPORTA !. Tienes que poner primero (a la izquierda del todo) la resolución que quieras usar por defecto.

Por ejemplo, si siempre quieres usar la misma, digamos 1024x768, pues pondrías:

Modes	""1024x768"

Si quieres usar varias, pondrías

Modes	"1280x960" "1024x768" "800x600" "640x480"

En el caso de poner varias, puedes cambiar entre uno y otra, o bien desde el "panel de control" de tu gestor de ventanas, o bien usando el programa xrandr. También es posible cambiar de resolución pulsando las teclas CTRL+ALT+ Tecla 'Mas' del teclado numérico	 o CTRL+ALT+ Tecla 'menos' del teclado numérico pero en este caso la pantalla creada es una pantalla virtual que no tiene por qué coincidir con el tamaño real de la ventana, por eso es mejor usar xrandr.

Si alguien tiene más dudas puede leer:The X Window User HOWTO

XFree86 Video Timings HOWTO

Espero que os sea útil.

Saludozzzz

----------------------------

ACTUALIZACIONES:

06/10/2006 Añadido información sobre xrandr.

02/09/2005 Añadido programa xvidtune. Añadida advertencia. Añadidos más enlaces.Last edited by Stolz on Fri Oct 06, 2006 8:42 pm; edited 4 times in total

----------

## psm1984

Gracias por la guia  :Wink: . Tambien esta la aplicacion xvidtune, que te permite desplazar la pantalla, ajustar el refresco, tamaño... y una vez aplicado puedes mostrar el modeline que seria necesario para que se quede "tal cual" en el proximo arranque.

----------

## DDrDark

Excelente guia, he probado a hacer mis propios modelines (ya que los que tenia los habia conseguido por internet) y me he encontrado con algunos problemas

Usando ddcxinfo -monitor me devuelve esto:

 *Quote:*   

> 
> 
>         # 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz
> 
>         ModeLine "1152x864"  81.62  1152 1216 1336 1520  864 865 868 895  -HSync +Vsync
> ...

 

Mi monitor en realidad es capaz de soportar 1152x864 @ 75hz. Este modo como veis no sale listado

Intento entonces con la web (no se muy bien que poner en los campos de max y min bandwidth). Probe tambien a reducir el porcentaje como dices en la guia

Obtengo esto sin tocar porcentaje:

 *Quote:*   

> 
> 
>   ModeLine "1152x864" 106.91 1152 1200 1440 1536 864 866 878 904 #77Hz
> 
> 

 

Y obtengo esta reduciendo un 50%

 *Quote:*   

> 
> 
> ModeLine "1152x864" 119.75 1152 1224 1584 1728 864 867 885 924 #75Hz
> 
> 

 

Vale, es la que necesitaba, pero si la comparamos y luego probamos con la que he conseguido por internet, vemos que primero no es igual y segundo la que he creado yo muestra incorrectamente la pantalla. Sabeis alguna forma humana de hacerme yo mismo mis propios modelines? :/

El modeline que he encontrado en internet es este: va perfectamente

 *Quote:*   

> 
> 
> ModeLine     "1152x864" 108.0 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
> 
> 

 

salu y gracias

----------

## Stolz

 *DDrDark wrote:*   

> Excelente guia, he probado a hacer mis propios modelines (ya que los que tenia los habia conseguido por internet) y me he encontrado con algunos problemas
> 
> ...
> 
> Mi monitor en realidad es capaz de soportar 1152x864 @ 75hz. Este modo como veis no sale listado
> ...

 

En el campo "Max Bandwidth" debes de poner el máximo ancho de banda que soporta tu monitor. Este dato es el más importante de todos, pues es el que dice de que es capaz. Deberia de venir indicado en las instrucciones del monitor. En muchos manuales lo llaman "pixel clock"o "dot clock" , asi es que busca tambien por esos nombres. Para monitores antigos que no superen 1024x768@85 suele ser de unos 190Mhz, para los que llegan a  1024x768@100Mhz  ronda los 200Mhz y para los que superan 1024x768@100Mhz el ancho de banda supera los 210Mhz (hablo de memoria, asi es que no lo tomes como algo literal).

Sobre que los modelines generados con distintos programas para un mismo refresco y resolucion no coinciden,es normal. Cada modeline es un mundo. Para generarlos hacen falta calculos matematicos complejos y cada autor realiza esos calculos a su manera. De ahi que existan tantos generadores de modelines. No deberias de preocuparte porque no coincidan. Si quieres entender bien lo complejo que son los parametros temporales de un monitor consulta el ultimo enlace que acabo de añadir al final de la guia.

La forma humana de hacerte tus propios modelines es con los calculos que acabo de comentar, mira el enlace. Aunque por lo complejo que es yo diria que mas que humana es inhumana  :Wink: .

Por cierto, reducir las caracteristicas en un 50% es demasiado. 

Saludozzzzzz

----------

## psm1984

Realmente xvidtune viene ya en el paquete xorg-x11, y si lo tienes instalado, seguro que tambien dispones de xvidtune para x86_64. El que aparece en el portage como hard masked es el de la nueva version de xorg 7.0, ha pasado algo parecido a los ebuilds de kde, pero esto parte desde los propios desarrolladores de xorg.

----------

## Stolz

Tienes razon, de hecho lo tenia instalado y ni me habia dado cuenta. No sabia que con el nuevo Xorg van a hacer lo que con los KDE Split-ebuilds, bienvenido sea.

En la proxima actualizacion lo corrijo. Gracias.

Saludozzzzzz

----------

