sábado, 19 de septiembre de 2009

Kubuntu: Dos 'problemas', una sola y simple solución

Hace tiempo que me venían molestando un par de papercuts (cortes con papel, finitos y dolorosos pero que no lastiman demasiado, una forma de definir problemas triviales que molestan pero no impiden hacer las cosas) en mi máquina Kubuntu. Pero como solo se producían durante el arranque y esta máquina solo es reiniciada con cambios de Kernel, me olvidaba de arreglarlos. Hablo especificamente de leve flicker (leve temblor producido por baja frecuencia de actualización en algunos monitores) de las areas no centrales de la pantalla de login y de que Kubuntu no recordaba la resolución a la que lo había dejado.

Es así que cada vez que yo booteaba la PC, veía ese molesto flicker (molesto porque se que está, no porque realmente moleste) y luego de loguear tenía que abrir System Settings (Ajustes del sistema) y ahí ir a video para que, sin tocar nada, reajustara la resolución. Cerraba y listo, podía trabajar toda la sesión sin problemas.

Pero hoy me decidí a intentar un arreglo, por lo que me puse a investigar, google mediante. La solución salió finalmente de una combinación de datos, pero el dato final, que es donde hacer el cambio, salió de la página oficial de Ubuntu.

Comencemos por lo básico, voy a explicar un poco acerca de un comando, si quieren saber más sobre el, pueden visitar su página man. El comando es xrandr (una interfase para la extensión RandR) . Si lo ejecutamos sin parámetros devolverá la lista de resoluciones y frecuencia de actualización que soporta nuestro combo Tarjeta de video/Monitor. Antes de seguir quiero aconsejarles que revisen los manuales de esos artefactos antes de hacer ningún cambio, yo chequeé y estos valores son correctos para mi equipo, pero en otros casos pueden no serlo.

gedece@g3:~$ xrandr
Screen 0: minimum 320 x 200, current 1152 x 864, maximum 1280 x 1200
VGA-0 connected 1152x864+0+0 (normal left inverted right x axis y axis) 306mm x 230mm
1280x1024 60.0
1280x960 60.0
1152x864 75.0*
1024x768 85.0 75.0 70.1 60.0
832x624 74.6
800x600 100.0 85.1 72.2 75.0 60.3
640x480 100.0 85.0 75.0 72.8 59.9
720x400 70.1
640x350 70.1
DVI-0 disconnected (normal left inverted right x axis y axis)
S-video disconnected (normal left inverted right x axis y axis)

Fijense la tremenda cantidad de información que nos brinda, nos lista todos los modos de video, nos indica cual es el activo (1152 x 864 @ 75 Hz en mi caso) e incluso nos informa el estado de las salidas especiales de la tarjeta. Noten también el nombre que recibe la salida activa, VGA-0 en este caso.

Eso quiere decir que si yo uso este comando con los parámetros adecuados puedo cambiar la resolución de trabajo. Incluso es posible agregar nuevos modos, pero eso es peligroso y solo deben hacerlo los que saben los límites de su hardware. Para cambiar la resolución a la que uso yo, si estuviera usando otra, uso simplemente:

xrandr --output VGA-0 --mode 1152x864

Presten atención especial a la puntuación que estoy usando: --(dos signos menos) output (salida) el nombre de la salida de la tarjeta que figuraba entre los datos anteriores. Con -- (dos signos menos) mode (modo) le indico la resolución que deseo. Como esa resolución solo posee una frecuencia de trabajo única, no debo indicar nada más. En cambio, si deseara cambiar a 1024 x 768, la cosa se complica, debido a que hay 4 frecuencias de trabajo posibles. En ese caso debería agregar -- (dos signos menos) rate (Usado como sinónimo de frecuencia).

xrandr --output VGA-0 --mode 1024x768 --rate 85

Eso habilitaría el modo 1024 x 768 @85 Hz. Fijense que el uso de este comando para esto no encierra grandes misterios. Ahora bien, este comando sirve para cambiar la resolución y frecuencia de trabajo, pero no es persistente. Es decir que tiene el mismo problema que tenía yo, debía indicar nuevamente estos datos cada vez que arrancaba la PC.

Afortunadamente, hay 3 lugares donde se puede usar este comando o derivados para automatizar la tarea. Uno es el archivo de configuración de Xorg, otro el el perfil presente en .profile, pero el lugar que necesitaba yo es otro, es algo que se ejecuta incluso antes de pedirnos el password, y que permite ejecutar comando bash.

En el caso de Kubuntu, encontré ese archivo en /etc/kde4/kdm/Xsetup. Allí, usando un editor con permisos de Administrador (sudo nano o kdesudo kate) edité el archivo y agregué la linea que automatizó el cambio de resolución en el arranque.

xrandr --output VGA-0 --mode 1152x864

Luego de ponerlo, reinicié la máquina para probarlo. No se notan cambios de resolución en la pantalla de arranque, lo que sería facilmente atribuible a elementos autoescalables. Pero esa pantalla de login ahora no presenta ningún tipo de flicker. Luego de ingresar la clave de usuario para arrancar la sesión, comprobé con alegría que ahora arranca en la sesión correcta.

Leí además que se puede solucionar en forma similar el problema en Ubuntu, y que el archivo esta en /etc/gdm, pero por obvios motivos no pude comprobarlo. Espero que si alguien tiene estos problemas pueda comprender y seguir estos simples pasos para solucionarlos.

2 comentarios:

  1. Ignacio
    gracias tío por tu fantástico articulo se ve k eres un hombre apañado ya tengo mi kubuntu con la resolución k yo keria, me has ahorrado mucho tiempo, gracias tres mil jejeje

    ResponderEliminar
  2. Gracias hermano, tenia rato buscando esta solucion

    ResponderEliminar