Xinerama: Sistema Multipantalla

Vía: Debianizado


Un sistema multipantalla es, como su propio nombre indica,aquél que utiliza más de un monitor a la vez para la salida de vídeo. Dicho así parece una perogrullada.

Quieres uno como ese, ¿verdad? Yo también. Y, tras la mudanza, cuando mi “sala de control” vuelva a estar en todo lo suyo (qué triste es apagar uno a uno todos los equipos y meterlos en cajas de cartón…) será lo primero que haga. Veamos cómo puede hacerse.

Lo primero que hace falta es, evidentemente, disponer de los dispositivos de salida adecuados. Una tarjeta gráfica medianamente aceptable tiene dos salidas de vídeo (VGA/DVI). La alternativa, si tenemos una AGP con una sola salida, es poner una PCI. Lo que no nos va a servir es, si le hemos puesto una gráfica al equipo, usarla junto con la onboard. La BIOS se encarga de anular esta última y, a no ser que nos dé opción de usar las dos (poco habitual), para el sistema será como si la tarjeta onboard no existiese.

Ahora que tenemos dos salidas de vídeo (o tres, o cuatro) y dos monitores (o tres, o cuatro) nada nos impide montarnos algo así:

Esto lo podemos conseguir gracias a Xinerama, una extensión del X Window System disponible desde la versión X11R6.4 (1998) que permite precisamente eso, que los gestores de ventanas y las aplicaciones puedan usar más de una pantalla a la vez. Y para eso hay que ensuciarse las manos: configurando, que es gerundio.

Lo primero es tener claras las cosas. Empezando por la terminología. En el sistema X Window, un device es una salida de vídeo, un monitor es lo que en español llamamos monitor (somos así de chulos), mientras que una screen es una combinación de device y monitor. Conclusión: debemos añadir a nuestro xorg.conf una nueva Section “Device”, una nueva Section “Monitor” y una nueva Section “Screen”.

Pero lo primero es lo primero, y lo primero es activar Xinerama:

Section “ServerFlags”
Option “Xinerama”
EndSection

Ahora sí, vamos al lío de verdad. Empezamos por las Section “Device”. De primeras tenemos una. La mía, por ejemplo, es ésta:

Section “Device”
Identifier “Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller”
Driver “i810″
BusID “PCI:00:02:0″
VideoRam 65536
Option “UseFBDev” “False”
Option “RenderAccel” “True”
Option “AllowGLXWithComposite” “True”
EndSection

Lo que hacemos es añadir una segunda, teniendo en cuenta ciertas cosas. Como por ejemplo, que cada una debe tener un Identifier único. Si estamos usando una sóla tarjeta con dos salidas lo correcto es que echemos mano de la opción BoardName para poner lo de Intel Corporation Mobile… y en Identifier les pongamos, por ejemplo, DVI a una y VGA a la otra. Al gusto.

Si son tarjetas distintas (una AGP y una PCI o dos PCI) debemos cuidar de poner el BusIDlspci. correcto para cada una de ellas. Lo podemos ver tirando de

Finalmente, tenemos que asignar un número de Screen a cada una de ellas, comenzando, cómo no, por el cero. Podría quedar así:

Section “Device”
Identifier “Widescreen”
BoardName “Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller”
Driver “i810″
BusID “PCI:00:02:0″
VideoRam 65536
Option “UseFBDev” “False”
Option “RenderAccel” “True”
Option “AllowGLXWithComposite” “True”
Screen 0
EndSection

Section “Device”
Identifier “VGA”
BoardName “Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller”
Driver “i810″
BusID “PCI:00:02:0″
VideoRam 65536
Option “UseFBDev” “False”
Option “RenderAccel” “True”
Option “AllowGLXWithComposite” “True”
Screen 1
EndSection

Seguimos con los monitor. Nada destacable, excepto cuidar de poner a cada uno sus tasas correctas de HorizSync y de VertRefresh y, de nuevo, de que los Identifier sean distintos.

Lo mismo para las screen. Debemos definir, para cada una, uno de los monitor y uno de los device que hemos configurado:

Section “Screen”
Identifier “Derecha”
Device “VGA”
Monitor “Compaq-V55″
DefaultDepth 24
SubSection “Display”
Depth 24
Modes “1024×768″ “800×600″ “640×480″
EndSubSection
EndSection

Y como todo llega al final, llegamos nosotros también diciéndole al servidor X cómo tiene que colocar las screen. Dentro de la sección Section “ServerLayout” añadimos:

Screen 0 “Izquierda”
Screen 1 “Derecha” RightOf “Izquierda”

Hora de reiniciar las X:

invoke-rc.d [gdm|kdm|xdm] restart

Si todo ha ido bien, ya tenemos rulando el sistema multipantalla. Si no, tocará repasar los logs del servidor X (/var/log/Xorg.0.log) a ver en qué la hemos cagado. Lo cierto es que si las cosas salen bien a la primera, el resultado no se disfruta igual ¿verdad? :D

No hay comentarios:

Entradas populares