Resolución de pantalla en Ubuntu Natty

Estableciendo manualmente la resolución de pantalla usando cvt y xrandr (en lugar de xorg.conf) desde kubuntu Natty Narwhal


¡Saludos visitante! si deseas comentar o hacer una pregunta sobre este post por favor dirígete a la nueva dirección en http://variabletecnica.com.ve. La página que estás leyendo dejará de estar disponible el 15/11/2015. Gracias, y disculpa las molestias 🙂

El año pasado decidí dar el paso e instalar Kubuntu como sistema operativo único en mi computadora personal. Elegí Kubuntu 9.10 (Karmic Koala, lista de versiones aquí: http://es.wikipedia.org/wiki/Anexo:Versiones_de_Ubuntu), y tiempo después me actualicé al 10.04 (Lucid Lynx).

Cuando compré mi monitor de 23″ (por haberme portado muy bien ese año) vi con horror que la resolución recomendada no estaba disponible en el panel de configuración. Mi buen amigo Google me llevó a varios artículos que mostraban como modificar el xorg.conf para agregar la nueva resolución: 1440×900 (pudo ser mayor, pero con esta estoy cómodo). Luego de algunos intentos estaba listo, mi monitor con la resolución apropiada y yo muy contento por haber aprendido algo nuevo.

Bueno, todo listo hasta hace dos semanas cuando compré una computadora nueva y decidí que ya era hora de abandonar a Lucid y pasarme al 11.04 (Natty Narwhal); esta sería una instalación desde cero, así que tal y como lo supuse el primer arranque del sistema fue a 1024×768, solo me tomó unos segundos darme cuenta de que debí guardar un respaldo del archivo antes de formatear mi viejo disco duro… en fin, tenía que volver a editar el xorg.conf, pero leyendo un poco descubrí que desde Lucid ya no se usa ese archivo! ahora toda la configuración es auto detectada en el arranque. Claro que aun se permite usar el xorg.conf, sin embargo la forma «oficial» de crear archivos de configuración consiste en hacerlo en archivos separados en el directorio /usr/share/X11/xorg.conf.d/; así que, de nuevo debía investigar y aprender qué había cambiado.

Buscando un poco como funciona ahora el xorg.conf.d me encontré con la utilidad xrandr, una buena oportunidad de aprender otra forma de establecer la resolución que necesito. Primero que nada, para los que andan apurados, solo hay que abrir una consola y ejecutar estas tres sentencias (si la resolución que buscas es 1440×900):

sudo xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
sudo xrandr --addmode VGA1 "1440x900_60.00"
sudo xrandr --output VGA1 --mode 1440x900_60.00

Ahora si, veamos que hace cada línea. La primera crea un nuevo modo de video llamado «1440x900_60.00», los siguientes 9 números y los últimos 2 parámetros representan detalladamente la resolución y tasa de refrescamiento (mas abajo veremos como obtener esos parámetros).

La segunda línea es para indicar que nuestro monitor, etiquetado como «VGA1» soporta el modelo que acabamos de crear (luego veremos como saber cual es su etiqueta), después de este paso debería estar disponible el nuevo modo de video en Preferencias del Sistema  >> Pantalla y Monitor >> Resolución y Rotación (si no estás usando kubuntu busca el panel de control, configuración o preferencias de tu sistema).

La tercera y última línea selecciona el nuevo modo y lo activa para nuestro monitor.

El proceso

Primero que nada debemos ver que hay disponible para trabajar:

$ sudo xrandr -q
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
VGA1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768       60.0*
   800x600        60.3     56.2
   848x480        60.0
   640x480        59.9

En mi caso, xrandr me indica que Natty ha detectado un solo monitor (Screen 0), etiquetado como VGA1 (puede ser LVDS1, TV1… dependiendo del puerto al que esté conectado), e indica que hay definidos 4 modos de video, aun cuando el rango posible de resoluciones es mucho mayor que la actualmente seleccionada. Si tienen más de una salida de video conectada deberían ver una sección como la anterior por cada dispositivo.

Como el modo de video que necesitamos no está creado, debemos comenzar por determinar los parámetros para crearlo. La utilidad cvt nos permite definir un nuevo modo de video, calculando los parámetros numéricos del mismo:

 $ cvt 1440 900
 # 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
 Modeline "1440x900_60.00" 106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
 

A la utilidad cvt solo tenemos que indicarle la resolución deseada y opcionalmente la tasa de refrescamiento (por defecto 60Hz); las resoluciones  y tasas de refrescamiento soportadas debemos verificarlas en la documentación de muestro monitor antes de continuar. Ahora que tenemos el modo de video lo creamos, lo agregamos al monitor, y lo aplicamos usando las tres sentencias mostradas al principio del post:

sudo xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
sudo xrandr --addmode VGA1 "1440x900_60.00"
sudo xrandr --output VGA1 --mode 1440x900_60.00

En caso de que quieras revertir los cambios, por ejemplo si la nueva resolución no es la correcta y dificulta la visibilidad, solo debes ejecutar nuevamente el último de los comandos seleccionado el modo de video que tenías inicialmente:

sudo xrandr --output VGA1 --mode 1024x768

Fijando los Cambios

Si tu monitor realmente soporta la resolución seleccionada entonces estamos casi listos; si, casi, porque el cambio que acabamos de hacer solo se mantendrá durante esta sesión, y se revertirá durante el próximo reinicio del sistema. Esto último más que un problema podemos verlo como una ventaja: si algo sale mal solo tienes que reiniciar y todo regresará a su estado original.

Para hacer fijos los cambios he leído por allí que hay varios métodos, uno de ellos consiste en colocar estas tres líneas de código en el archivo /etc/kde4/kdm/Xsetup (si usas KDE), que tendrás que abrir con tu editor de texto preferido (el mio es Kate) :


$ sudo kate /etc/kde4/kdm/Xsetup

Colocas las tres llamadas a xrandr (sin el sudo, ya que se ejecutaran como root) antes de que se ejecute la pantalla de logueo y obtendrás algo como esto:

#! /bin/sh
# Xsetup - run as root before the login dialog appears

#xconsole -geometry 480x130-0-0 -notify -verbose -fn fixed -exitOnFail -file /dev/xconsole &
xrandr --newmode "1440x900_60.00" 106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 "1440x900_60.00"
xrandr --output VGA1 --mode 1440x900_60.00
/sbin/initctl -q emit login-session-start DISPLAY_MANAGER=kdm

y ahora si, cada vez que arranque tu sistema se establecerá la resolución seleccionada.

Referencias

Cita del día

Once you have eliminated the impossible, whatever remains, however improbable, must be the truth.
Spock, Star Trek

,

Soluciones claras y simples



Ing. Industrial, dedicado a la programación en ASP.NET+VB, SQL y Javascript+AJAX; y un poco de Android, Kotling, y Unity 🙂
Valencia, Venezuela



¿QUIERES APOYARME?

¿Te ha sido de ayuda alguno de mis artículos? Generar contenido técnico requiere de tiempo y esfuerzo. Con tu colaboración me puedes ayudar a mantener mi blog activo y actualizado. Si quieres y puedes apoyarme has clic aquí:

https://paypal.me/roimergarcia


ENTRADAS RECIENTES