domingo, 13 de noviembre de 2011

Repara resoluciones de pantalla y mas cosas con Xrandr

Xrandr (X Resize & Rotate), es una utilidad de línea de comandos disponible en el sistema Linux. Con esta herramienta podemos configurar todos los parámetros de la resolución de pantalla así como añadir nuevas resoluciones. Al funcionar desde la linea de comandos, es muy útil si hay algún problema con la configuración de la pantalla o tarjeta de vídeo y no podemos entrar en modo gráfico. También dispone de una interfaz gráfica llamada Grandr, que nos permite configurar fácilmente las opciones de pantalla.


En el caso que nos ocupa, no tenemos acceso al modo gráfico, por lo que lo primero es saber nuestras resoluciones y cual estamos utilizando, para ello tecleamos en consola xrandr, que nos dará una salida parecida a esta:


Como podemos ver en esta salida tenemos toda la información de nuestra tarjeta de vídeo en mi caso solo tengo una conectada LVDS1.
Una forma fácil de ver si tenemos algún problema de resolución es fijándonos en la linea marcada con el signo más “+“, dicho símbolo nos indica que esa es la resolución recomendada y el asterisco “*“, nos dice la resolución que estamos utilizando. En este caso los dos símbolos están situados en la misma linea, por lo que todo está correcto. Pero en el caso de que no sea así y queramos cambiar o crear otra una nueva resolución soportada por nuestra tarjeta, procederemos de la siguiente manera.
Para crear una nueva resolución primero debemos utilizar cvt, seguido de la resolución que queramos añadir, con esto conoceremos los modos, ‘ Modeline’ de esa resolución para poder añadirlos luego.

$ cvt 320 768

Ya se que la resolución que pongo es un tanto extraña, pero quiero mostrar que se puede forzar cualquier resolución soportada.
La salida de los modos de la resolución elegida es la siguiente:


Con esta información ya podemos cargar la nueva resolución. Para ello añadimos el ‘Modeline‘ al siguiente comando para crear el modo:

$ xrandr --newmode "320x768_60.00" 19.75 320 336 368 416 768 771 781 798 -hsync +vsync

Vemos que si hacemos de nuevo xrandr ya nos aparece la nueva resolución.


Y añadimos el modo creado a la tarjeta conectada que en este caso es LVDS1:

$ xrandr --addmode LVDS1 320x768_60.00

Con esto ya tenemos agregada esta extraña configuración.


Si nos damos cuenta de que ese modo no es correcto o simplemente no funciona, podemos eliminarlo con --rmmode:

$ xrandr --rmmode LVDS1 320x768_60.00

Para predeterminar esta nueva configuración o cualquiera de las que ya tengamos, (no voy a usar la creada anteriormente por motivos obvios), tecleamos:

$ xrandr --output LVDS1 --mode 1024x768

Como podéis ver ahora el asterisco está situado en 1024×768:


En el caso de querer solucionar un error “out of range” o fuera de rango, que suele venir porque la tasa de refresco del monitor es diferente a la configurada por defecto. Esto puede darse cuando actualizamos a una distribución que no reconoce un monitor CRT adecuadamente, por ejemplo. Para solucionarlo solo tendréis que añadir la tasa soportada por el monitor. Para hacer esto hay que agregarla a la linea anterior con --rate:

$ xrandr --output LVDS1 --mode 1024x768 --rate 60,3

Una vez lo tenemos configurado todo necesitamos guardar estos cambios para que sean permanentes, para ello tenemos que añadirlos editando el archivo /Default como root:

# nano /etc/gdm/Init/Default

Buscamos las siguientes lineas…

PATH=”/usr/bin:$PATH”
OLD_IFS=$IFS
… Y debajo de ellas añadimos todos los pasos que ya habíamos realizado desde la terminal, en el caso de la configuración de ejemplo que creé antes, sería añadir lo siguiente:
xrandr --newmode "320x768_60.00" 19.75 320 336 368 416 768 771 781 798 -hsync +vsync
xrandr --addmode LVDS1 320x768_60.00
xrandr --output LVDS1 --mode 320x768
Solo nos queda guardar y reiniciar con la nueva configuración.
Esto son solo algunos ejemplos de lo que se puede hacer con este comando, pero su potencial va más allá, pudiendo incluso configurar diferentes tarjetas con diferentes monitores creando una configuración personalizada para cada uno de ellos, también se pueden crear pantallas virtuales o intercambiar pantallas, etc…

Para más información el comando man xrandr es nuestro amigo.

No hay comentarios.:

Publicar un comentario