jueves, 13 de marzo de 2008

Gnome en Ubuntu no cubre toda la pantalla

Después de mucho pensármelo, me he comprado un portátil sin sistema operativo (los hay, pero escondidos) para instalarle Ubuntu.

La buena noticia es que sin hacer nada funciona la tarjeta de sonido (una bestia negra para mi, he tenido linux en 2 ordenadores y en ninguno funcionaba, ni siquiera recompilando el kernel).

La mala: nada mas empezar, gnome (el entorno gráfico) no cubría toda la pantalla. La pantalla es panorámica, de 12 pulgadas, y las barras superior e inferior y las ventanas maximizadas sólo llegaban a 2/3 de la misma (como si fuese cuadrada).

La primera vez traté de seleccionar otra controladora gráfica de la lista, y otra pantalla en lugar de la genérica. Resultado: me cargué el entorno gráfico. Cómo no había hecho nada, preferí reinstalarlo todo de nuevo antes de empezar a tocar los archivos de configuración con el vi.

La segunda vez ya fui directamente a buscar en google el problema. Tiene solución, y es más o menos fácil. Puedes probar si la solución funciona antes de ponerte a tocar los archivos de configuración.

Abre una línea de comandos y escribe lo siguiente:

aracne@portatil:~$ xrandr

A mi me devolvió lo siguiente:
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1280 x 1280
VGA disconnected (normal left inverted right)
LVDS connected 1280x800+0+0 (normal left inverted right) 261mm x 163mm
1280x800 59.8*+ 60.0
1280x768 60.0
1024x768 60.0
800x600 60.3
640x480 59.9
TV connected 1024x768+0+0 (normal left inverted right) 0mm x 0mm
1024x768 30.0*
800x600 30.0
848x480 30.0
640x480 30.0

Uhm, así que tengo una televisión conectada además de mi pantalla... Lo que pasa es que está activa la salida de televisión y está liando a la pantalla porque tiene otro tamaño, es un bug de Ubuntu.
Para ver si es eso lo que da el problema, sólo hay que desconectar el display "sospechoso" para ver si se arregla. Ésto no es permanente, así que no se puede liar nada. A la peor, se reinicia y ya está. Escribid:
aracne@portatil:~$ xrandr --output TV --off

LVDS parece mi pantalla, así que desconecto el otro, al que xrandr llama "TV". Si se llama de otra forma, poned lo que pone antes de "connected".

Si se soluciona, perfecto, podemos hacerlo permanente. Si no se soluciona, lo que voy a decir ahora tampoco lo va a arreglar.

En el momento de desconectar el segundo display, mi pantalla pasó a ocupar toda la pantalla (yeah). Lo que pasa, es que como esto no es permanente, habría que hacerlo cada vez que inicias el ordenador. Para evitar ésto, hay que cambiar el fichero de configuración que en teoría está en /etc/X11/xorg.conf

Hay que abrirlo con un editor y añadir lo siguiente:
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
Option "Monitor-LVDS" "Internal Panel"
Option "Monitor-TV" "External TV"

EndSection

Section "Monitor"
Identifier "External TV"
Option "Ignore" "true"
EndSection


En rojo va lo que he añadido. La parte en negro ya debería estar más o menos así en vuestro fichero. Esto lo he copiado de otro sitio, así que no tengo muy claro cómo funciona, pero procedo a tratar de explicarlo:
Option "Monitor-XXX" "YYY"

Poneis tantas opciones dentro de la sección "Monitor" como displays os salgan con xrandr. A cada una la llamais "Monitor-XXX", donde XXX es como randr llama a cada display (en mi caso hay dos opciones, Monitor-LVDS y Monitor-TV, más arriba está lo que me salía con xrandr). En YYY podeis poner lo que querais, es como vais a describir ese display. Mejor que sea algo descriptivo.

Section "Monitor"
Identifier "ZZZ"
Option "Ignore" "true"
EndSection

En ZZZ poneis la cadena que describe el display que quereis desconectar (la habeis puesto en una opción arriba).

Ahora guardais el fichero xorg.conf. Como se necesitan permisos de administrador para cambiarlo, si os da problemas podeis hacer lo siguiente.

  • Guardar el fichero de configuración en vuestro home (por ejemplo, como "xorg_new.conf")

  • Abrir una línea de comandos y escribir:
    cd /etc/X11
    sudo mv xorg.conf xorg_old.conf

    Esto renombrara el fichero antiguo a xorg_old.conf en el mismo directorio. En el peor de los casos, solo necesitais una línea de comandos y hacer "sudo mv xorg_old.conf xorg.conf" para arreglar el desaguisado (si por ejemplo gnome dice que no le gusta tu cara ni tu nuevo fichero de configuración). Te pedirá la password.
  • sudo mv /home/[tu_nombre_de_usuario]/xorg_new.conf xorg.conf

    Esto moverá el nuevo fichero que tienes en home y lo llamará xorg.conf. De nuevo te pedirá la password

Ahora, la próxima vez que arranques, deberías tener ya bien la pantalla.

Enlaces (en inglés):
https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/156550
http://wiki.debian.org/XStrikeForce/HowToRandR12

1 comentario:

Envite dijo...

Pues me has arreglado el día. Un Toshiba con tarjeta gráfica de Intel que me tocó reconfigurar (para Kubuntu) tenía el mismo problema, et voilà, en tu blog estaba la solución.