LINUCA: Configuración de TwinView en tarjetas NVIDIA $LOGOIMAGE LINUCA − Asociación Usuarios GNU/Linux de Cantabria Configuración de TwinView en tarjetas NVIDIA Por Amaya Rosa Gil Pippino, Cibeles () Creado el 27/05/2003 16:49 y modificado por última vez el 28/05/2003 02:01 Las tarjetas NVIDIA son las más usadas actualmente (por la jugadita que lehizo a 3dfx, pero esa es otra historia...) y afortunadamente, los chicos de NVIDIA se han currado un driver muy completo para usar nuestras tarjetas en nuestro SO favorito... claro, que requiere de una ardua tarea de configuración. Así, que este documento es para todos aquellos de vosotros que hayais intentado configurar el dichosoTwin View (tarea que no resulta nada trivial) espero queos sirva este mini howto basado en mi experiancia, pues hace unos días, yo lo logré :D Las tarjetas NVIDIA son las más usadas actualmente (por la jugadita que lehizo a 3dfx, pero esa es otra historia...) y afortunadamente, los chicos de NVIDIA se han currado un driver muy completo para usar nuestras tarjetas en nuestro SO favorito... claro, que requiere de una ardua tarea de configuración. Así, que este documento es para todos aquellos de vosotros que hayais intentado configurar el dichosoTwin View (tarea que no resulta nada trivial) espero queos sirva este mini howto basado en mi experiancia, pues hace unos días, yo lo logré :D Que aquí va todo lo que he podido averiguar, espero que os sirva de ayuda, así como si veis algún fallo o cualquier cosa mejorable, os agradeceré que me lo digais. Lo primero que hay que tener en cuenta es que el TwinView sólo estádisponibe para las NVIDIA GPUs que soporten la funcionalidad dual−display,como las GeForce2 MX, GeForce2 Go,Quadro2MXR, Quadro2 Go, y cualquiera de las GeForce4 o Quadro4GPUs. TwinView es un modo de duplicar el flujo de datos de video de manera que dosdispositivos de salida de video (pantallas planas digitales,, CRTs, y TVs) puedan mostrar los contenidos de una única pantalla X. Este método de uso de múltiples monitores tiene varias ventajas sobre otras técnicas (como porejemplo Xinerama −aún no me he puesto con ésta ;p − ): • Sólo se usa una única pantalla X. El driver NVIDIA oculta toda la información sobre dispositivos de monitores múltiples dede el servidor X yaque de las X se ocupa una sóla pantalla • Ambos dispositivos comparten un framebuffer. Así, todas lasfuncionalidades se presentan en un únicodispositivo (por ejemplo acceleración OpenGL) • No se necesita "nada por encima" para emular un sólo escritorio Como todo lo que sea gráficos, evidentemente hay que configurar el fichero /etc/X11/XF86Config−4, así que ahora voy a detallar las opciones y secciones más destacadas. Las opciones más destacadas de la sección Device para configurar el Twin View son las siguientes: • Option "TwinView" "1" Esta opción es necesaria para habilitar el TwinView, sin ella, el resto de directivas referentes a TwinView serán ignoradas. Puede tomar valores 1 o 0 o bien true o false. • Option "SecondMonitorHorizSync" "30−50" Igual que la directiva HorizSync de los monitores, pero para pantallas de TV viene expresada en kHz, conviene mirar las instrucciones de la TV. • Option "SecondMonitorVertRefresh" "60" Igual que la directiva VertSync de los monitores, pero para pantallas de TV viene expresada en Hz, conviene mirar las instrucciones de la TV. • Option "TwinViewOrientation" "Clone" Controla la relación entre dos dispositivos de salida de imágen cuando se usa Twin View. Toma uno de los siguientes valores: "RightOf", "LeftOf", "Above", "Below" ,"Clone". El valor por defecto es NULL. Cuando se usa "Clone", a ambos dispositivos se les asignará un offset de 0,0. • Option "TVOutFormat" "SVIDEO" Se puede usar para forzar la salida a SVIDEO o COMPOSITE. Sin esta directiva el driver autodetecta el formato de salida, si bien no siempre lo hace de forma correcta (por ejemplo, a mi :p ). Puede tomar valores: "SVIDEO" o 1/3 LINUCA: Configuración de TwinView en tarjetas NVIDIA $LOGOIMAGE "COMPOSITE". • Option "ConnectedMonitor" "DFP,TV" Esta directiva se puede usar para decirle a las X que use una TV como dispositivo de salida. Sólo es necesaria si la TV no es detectada por la tarjetao si uas un CRT como dispositivo de arranque, pero quieres redirigir las X paraque usen la TV. • Option "MetaModes" "1024x768 @1024x768,..." Un único MetaMode describe qué modo ha de usarse en cada dispositivo en un momento dado. Múltiples MetaModes listan una combinación de modos y una secuencia en la cual serán usados. La sintaxis de MetaModes, es poner los modos separadospor comas, de tal manera que el MetaModo 0 se corresponde con el modo del dispositivo 0 concurrentemente con el 1 usado en el dispositivo 1. El cambio entre modos se hace asignando el modo 2 al dispositivo 0 y el 3 al 1. La sintaxis sigue el siguiente esquema: "[mode 0], [mode 1]; [mode 2], [mode3]" Un ejemplo de una entrad real de la directiva MetaMode en el XF86Config−4sería: Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768" Si deseamos que para un determinado dispositivo no se active un determinado MetaMode, se puede poner NULL o no poner nada, de la siguiente manera: "1600x1200, NULL; NULL, 1024x768" o bien "1600x1200; , 1024x768" De manera adicional se le puede indicar el tamaño de la pantalla para controlar la posición de los displays dentro del espacio virtual de pantalla, siguiendo este esquema: "1600x1200 +0+0, 1024x768 +1600+0; ..." Cuando no se especifican offsets para MetaModes, las dimensiones serán calculadas siguiendo el valor de la directiva TwinViewOrientation, si bien si se especifican MetaModes para un modo, el driver NVIDIA, espera encontrar lo en todos los demás modos. Si no se especifican, se asumirá el offset +0+0. También se puede poner un "Dominio de Panorama" (que es lo que he usado yo, lo del NULL no me va) de esta manera: "1024x768 @1600x1200, 800x600 @1600x1200" Un "Dominio de Panorama" es un área en la cual el dispositivo de imágen puede "tomar una panorámica" para seguir al ratón. Lo más útil cuando se usan "Dominios de Panorama" es eliminar las áreas muertas, es decir, regiones de las pantallas virtuales que son inaccesibles, dado que los dispositivos tienen resoluciones distintas, ejemplo: "1600x1200, 1024x768", lo cual produce una región inaccesible por debajo de 1024x768, pero si se especifica un panning domain para el segundo dispositivo: "1600x1200, 1024x768@1024x1200" se permite el acceso a las áreas muertas permitiendo que se vea por arriba a 1024x768 y por debajo a 1024x1200. Así pues, la sección device nos debería quedar de una forma similar a esta: Section "Device" Identifier "Nvidia Geforce 4 420" Driver "nvidia" BusID "AGP:01:00:0" Option "NoDDC" "1" Option "IgnoreEDID" "1" # Importante si se usa una pantalla TFT Option "GenerateRTList" "0" Option "OverridePolarity" "1" # Switch AGP Option "NvAGP" "3" # Imágen mejorada Option "DigitalVibrance" "0" # TV Twinview Option "TwinView" "1" Option "SecondMonitorHorizSync" "30−50" Option "SecondMonitorVertRefresh" "60" Option "TwinViewOrientation" "Clone" Option "TVOutFormat" "SVIDEO" Option "ConnectedMonitor" "DFP,TV" Option "TVStandard" "PAL−B" Option "MetaModes" "1024x768 @1024x768,1024x768 @1024x768; 800x600 @800x600,800x600 @800x600; 640x480 @640x480,640x480 @640x480" EndSection Bueno, además de Device hay que añadir una nueva sección Screen para la tele y otra sección ServerLayout. Las opciones para la sección Screen son las mismas que para nuestro monitor, con lo cual, la sección screen nos debería quedar de una forma similar a esta: 2/3 LINUCA: Configuración de TwinView en tarjetas NVIDIA $LOGOIMAGE ##Sección para la TV Section "Screen" Identifier "TV" Device "Nvidia Geforce 4 420" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection Con ServerLayout ocurre lo mismo que con Screen, es decir, hay que decirle las mismas cosas que a la que tenemos para nuestro monitor normal, la explicación de por qué hay que repetir estas secciones, es (según me han dicho en foros y en páginas que he ido mirando) que el driver NVIDIA necesita un ServerLayout y un Screen por pantalla conectada. Por último, la sección ServerLayout debe quedar como la siguiente: Section "ServerLayout" Identifier Screen InputDevice InputDevice InputDevice EndSection "Twinview" "TV" "Keyboard0" "CoreKeyboard" "PS/2 Mouse" "CorePointer" "USB Mouse" "CorePointer" Otra cosa importante, es que para que funcione el TwinView hay que arrancar las X con todo conectado. En fin, con esto se supone que os debería funcionar, de todas maneras, aquípodeis encontrar toda la documentación "oficial" de NVIDIA, eso sí, en sajón:p ftp://download.nvidia.com/XFree86/Linux−x86/1.0−4349/README.txt E−mail del autor: cibeles@ya.com Podrás encontrar este artículo e información adicional en: http://linuca.org/body.phtml?nIdNoticia=186 3/3