Hace poco he instalado GNU/Linux en el portátil de la empresa y una de las cosas que he tenido que configurar son los dos monitores que uso (normalmente se le llama dual head). Uno es el del portátil (con una resolución de 1280×800) y un TFT de 17” (de 1280×1024). La verdad es que nunca había necesitado hacer esto y por lo tanto no sabía si era fácil o difícil, lo único que me sonaba era que con Xinerama se conseguía.

Los primeros intentos con Xinerama no funcionaron. El problema era que la pantalla del portátil es panorámica (16:9) y la del TFT es normal (4:3) y ahí es donde se volvía loco. Podía usar resoluciones distintas pero con la misma relación de aspecto en los dos monitores, o bien 16:9 ó 4:3, pero nunca mezclarlas.

Buscando soluciones por Internet encontré XRandR, que es una librería que permite cambiar el tamaño y rotar la pantalla, y además funciona bien con las tarjetas de Intel, que es la que trae el portátil. El problema es que la versión estable de Xorg todavía no soporta las opciones que se necesitan, por lo que hay que instalar una versión beta. En mi caso, que uso Archlinux, se haría de la siguiente forma:

Primero hay que actualizar a las últimas versiones estables varios protocolos de las X.

# pacman -S xproto glproto inputproto

Luego, actualizaremos un par de paquetes, también relacionados con las X.

# pacman -S libxi libdrm

Instalamos la última versión de Xorg (actualmente, en los repositorios de Arch, está la versión 1.4)

# pacman -S testing/xorg-server

Una vez hecho esto deberíamos tener las X funcionando correctamente. Ahora nos falta instalar los nuevos drivers de intel (que actualmente corresponde a la versión 2.1.1)

# pacman -S testing/xf86-video-intel

Por último instalamos xrandr (versión 1.2.2)

# pacman -S testing/libxrandr

Si ejecutamos xrandr, con los dos monitores encendidos, obtenemos lo siguiente:

$ xrandr
Screen 0: minimum 320 x 200, current 2560 x 1024, maximum 2560 x 1024
VGA connected 1280x1024+1280+0 (normal left inverted right x axis y axis) 312mm x 234mm
1280x1024      64.9*
1152x864       75.0
1024x768       70.1     60.0
832x624        74.6
800x600        72.2     75.0     60.3     56.2
640x480        75.0     72.8     66.7     60.0
720x400        70.1
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1280x800       60.2*+   85.0     75.0     70.0     60.0
1280x768       85.0     75.0     70.0     60.0
1280x720       85.0     75.0     70.0     60.0
1152x768       54.8
1024x768       85.0     75.0     70.1     60.0
832x624        74.6
800x600        85.1     72.2     75.0     60.3     56.2
640x480        85.0     72.8     75.0     59.9
720x400        85.0
640x400        85.1
640x350        85.1
TV disconnected (normal left inverted right x axis y axis)

Indica que el monitor TFT está conectado (VGA) y el del portátil también (LVDS). También indica los modos permitidos y cuáles tiene por defecto (los marcados con *).

Los cambios que hay que hacer en el fichero xorg.conf son muy sencillos, lo único que hay que añadir es el parámetro Virtual dentro de la subsección Display (perteneciente a la sección Screen). En mi caso, el fichero queda de la siguiente manera:

Identifier "Monitor"
Option "DPMS" "true"
HorizSync    28.0 - 96.0
VertRefresh  50.0 - 75.0
EndSection

Section "Device"
Identifier  "Intel card"
Driver      "intel"Section "Monitor"
Option      "XAANoOffscreenPixmaps"
VendorName  "Intel Corporation"
BoardName   "Intel Corporation Mobile 945GM/GMS/940GML"
EndSection

Section "Screen"
Identifier "Screen"
Device     "Intel card"
Monitor    "Monitor"
DefaultColorDepth 24
SubSection "Display"
  Depth     24
  Modes "1280x800" "1024x768" "800x600" "640x480"
  Virtual 2560 1024
EndSubSection
EndSection

En Virtual, lo que hay que especificar es el tamaño del escritorio real. En este caso, quería poner los monitores en horizontal, uno al lado del otro, por lo tanto sería 2560 de ancho (1280 + 1280) y de alto 1024. En caso de haberlos querido poner uno encima del otro la resolución a poner en Virtual sería 1280×1824.

Como hay veces que uso el portátil sin el segundo monitor, he creado un script que se ejecuta al iniciar KDE y que lo único que hace es comprobar si está conectado o no. En caso de estarlo configura las resoluciones y las posiciones de los dos monitores.

#!/bin/bash
if xrandr -q | grep -q  "VGA connected"; then
xrandr --output LVDS --mode 1280x800 --output VGA --mode 1280x1024 --right-of LVDS
else
xrandr --output VGA --off --output LVDS --mode 1280x800
fi

Suscríbete a los comentarios Comenta | Trackback |
Tags: , ,

Otras Entradas


Comenta


XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



CC Homo cybersapiens ¡Gracias por la visita!