2007-05-12

Instalar Qt4

Bueno, a petición general aquí está el pseudo-tutorial de como instalar Qt4, aunque no es nada difícil, como pronto lo descubrirán, en realidad es bastante fácil.

Antes que nada, el compilador:

Antes de empezar con el tutorial en forma vamos a indicar aquí unas cosas que creo que sobran pero por si las moscas para que no se les pase. Para poder compilar aplicaciones C++ (con cualquier programa, utilidad, librería o lo que quieran) necesitan el compilador C++ de GNU deben instalar el compilador ANTES de empezar este tutorial, Asegúrense de tener instalados los siguientes paquetes en el Kubuntu: (Asegúrense de instalar la versión más reciente, o más apropiada para su sistema, según sea el caso)
  • cpp (Preprocesador de GNU)
  • gcc (El compilador C de GNU)
  • gcc-base (Base para el compilador Liberías, etc)
  • gcc-doc (Opcional, es la documentación)
  • g++ (El compilador C++ de GNU)
Francamente no estoy seguro si es necesario instalar el compilador C y el compilador C++ pero para no correr riesgos siempre los instalo los dos. Ustedes pueden elegir no instalar el compilador C si no quieren (bajo su propio riesgo). El compilador que acabamos de instalar servirá tanto para compilar las aplicaciones que hagamos en Qt4 como para compilar el mismo Qt4 en caso de ser necesario.

Instalar el Qt4 (Si el mundo es color rosa...)

Bueno, vamos a empezar por lo más sencillo, es descargar el Qt4 que, como posiblemente esperan, en Kubuntu se encuentra entre los repositorios del sistema operativo, necesitarán ubicar y descargar estos paquetes:
  • libqt4-core
  • libqt4-dev
  • libqt4-gui
  • libqt4-sql
Que instalarán las librerías necesarias para poder trabajar con qt4, e incluirán también el Designer (Diseñador de interfases) y el Assistant (La ayuda del Qt4). Teóricamente después de instalar estos paquetes el sistema estará capacitado para crear y compilar aplicaciones con el Qt4. Vamos a probarlo:

Lo mejor es hacer el "Hello World" del tutorial de Qt4. Para ello ejecuten el comando assistant que debe mostrar una ventana con la ayuda del Qt4. Ahí ubiquen el Qt Reference Documentation y verán un menú con muchas opciones, a la izquierda, en el grupo Getting Started hay un vínculo que dice Tutorial and Examples. Al hacer clic ahí obtenemos acceso a un montón de ejemplos y tutoriales, todo lo necesario para aprender Qt4:

En Qt Tutorial buscar el primer tutorial "Hello World" que explica como crear y ejecutar nuestra primera aplicación en Qt4. Si escribimos el código en el Kate y lo guardamos en un archivo .cpp en un directorio (que el archivo quede solito) y luego desde la consola corremos las siguientes ordenes en ese directorio:

qmake -project

qmake

make

Teóricamente obtendremos un archivo ejecutable con el nombre del directorio al que podremos ejecutar con el bash si escribimos ./[nombre] donde [nombre] pues es el nombre del ejecutable o haciéndole clic encima en el Konqueror. Bien yo lo probé y no me funcionó fue un desastre el compilador me tiró como 1000 errores y no pude compilarlo, estaba muy decepcionado, por eso digo que esto es cuando el mundo es color rosa. Por suerte Mario Young me ayudó y me guió paso a paso en el proceso de descargar y compilar el Qt4. Ahora yo ponga esa información aquí por si a ustedes les pasa lo mismo, si no, salten a la sección Herramientas de Desarrollo.

Descargar y compilar el Qt4 (Para los que no somos tan afortunados...)

Bueno, en caso de que lo anterior falle todavía hay una esperanza para poder crear aplicaciones Qt4 en Linux y es hacerlo a la antigua, i.e. descargar y compilar el paquete. Si lo van a hacer prográmense para una larga jornada, por ahí unas dos horas, no por que sea complicado sino por que compilarlo lleva un rato. Bueno, vamos a reconstruir un poco la conversación con Mario:

Bajénse el código fuente del Qt4, este es el Link que me dio Mario, no sé si ya haya una versión más reciente: Código fuente del Qt4. Al momento de escribir esta entrada el vínculo funcionaba, si el vínculo se rompe o quieren asegurarse de tener la versión más reciente del Qt4 pueden entrar a Trolltech y bajárselo de la página.

Ok, una vez lo descarguen descompriman el .tar.gz en alguna carpeta, puede ser el home para que el sistema no los joda por los permisos, luego actualizamos los binarios del sistema. Bueno, ahora vemos a lo demorado: Vayan a la carpeta donde descomprimieron el Qt4 y desde la consola ejecuten:

./configure

Ese comando prepara todo para que puedan compilar, al ejecutarlo la consola comenzará a botar y botar texto (perdonen si suena un poco campesino), todo será configurado y cuando termine la configuración aparecerá un mensaje como este:

Qt is now configured for building. Just run 'make'.

Once everything is built, you must run 'make install'.

Qt will be installed into /usr/local/Trolltech/Qt-4.2.3

Listo, ahora hay que hacer lo que el dice, ejecutar make para que el sistema comience a compilar, este es el proceso que más dura, como una hora más o menos, durante la compilación la consola va a estar ahí mostrando mensajes y mensajes pero por suerte el proceso no exige mucho a la CPU así que mientras tanto pueden no sé... ver anime por ejemplo. En la conversación con Mario el make entró a las 19:30 y terminó a las 20:58.

Lo siguiente es escribir en la consola sudo make install para que el software se instale. Al hacerlo saldrán otro montón de mensajes, al terminar teóricamente el Qt4 esta listo para funcionar pero... según Mario aún hace falta remplazar los archivos en el bin del sistema, yo no sé si sea cierto o no pero yo lo hice, dejo a su elección el hacerlo o no, pero yo recomiendo hacerlo por que no sé que pasa si no se hace.

Cuando el make termine ya tendrán todo listo para comenzar. Pero primero hay que meter eso en el bin del sistema. Para hacerlo abran una ventana del konqueror con permisos de administrador: kdesu konqueror y vayan a la carpeta /usr/local/Trolltech/Qt-4.2.3 ahora, COPIEN, no corten, los archivos que hay en esa carpeta así:
  • lo que hay en /../Troll.../Qt-4.../bin a /usr/bin
  • lo que hay en /../Troll.../Qt-4.../lib a /usr/lib
  • lo que hay en /../Troll.../Qt-4.../includes a /usr/includes
Si, remplaza los archivos que hay en el directorio de sistema (a mi me dio un poco de miedo pero no pasa nada) es necesario para asegurarnos de que el Qt4 va a compilar desde cualquier lugar y no nos va a molestar después que por que no encuentra las librerías, etc, etc, etc...

Bien, a este punto ya todo debe funcionar, así que hagan el intento con el Hello World como se explica al final de la parte en que la vida es color de rosa... si todo va bien tendrán un Hello World funcional, si no, ...se sale del alcance de este tutorial... a mirar en foros, etc... etc... o preguntarle a Xavier ..... XD

Herramientas de Desarrollo

No hay como el viejo y confiable Kate y la consola, pero a veces uno quiere un entorno más complicado, que le administre proyectos, etc, que tenga asistencia de codificación, etc. Así que si quieren uno así aquí hay algunas recomiendaciones:

Bueno, lo más standard en KDE es usar el KDevelop, yo lo bajé, lo instalé y lo probé y... *suspiro* no me funcionó... Tengo un bulto de sal encima... Por alguna razón me es imposible compilar un proyecto Qt4 creado en KDevelop, no sé por que pero... no hay poder humano... así que yo no uso KDevelop pero si ustedes quieren usarlo pues pueden descargarlo de los repositorios del Kubuntu. Si tienen el Fiesty supongo que ese ya viene con el KDevelop actualizado y pueden simplemente descargarlo y yá, necesitan el KDevelop 3.4.0 mínimo. Si todavía usan el Edgy o si el Fiesty no viene con esa versión del KDevelop tendrán que Instalar esta actualización del KDE. y bajarse la versión actualizada del KDevelop.

Una vez en al KDevelop creen un proyecto de QMake, escriban en el código y desde el menú proyecto seleccionen la opción Run QMake and Friends que tóricamente debe compilarles el proyecto perfectamente... como ya les dije a mi eso nunca me funcionó.... son unos.... en fin.... por eso decidí no usar KDevelop, Xavier me dice que a él le funciona perfecto... así que mucha suerte para ustedes también.

Bien, como el @#$%# KDevelop no funcionó seguí usando el Kate hasta que Mario me habló del QDevelop que es un entornito bastante bueno, aunque todavía le falta mucho, pues... por ahora esta bien, tiene asistencia de código que es una gran ventaja. Lo pueden bajar de La página de descarga del QDevelop. Hay que compilarlo... pero... si ya compilaron el Qt4 pues compilar el QDevelop debe ser pan comido.

De otro lado esta el Eclipse que con el CDK se vuelve un entorno de desarrollo C++, a mi me parece bueno, el problema es que a pesar de que los includes del Qt4 aparecen en la lista del Eclipse el @#$% sigue haciéndose el ...marica... y no los ve, entonces cuando uno hace el include #include Eclipse le dice que no encuentra esa cabecera y por tanto no da asistencia de codificación. La otra cosa del Eclipse es que para que pueda funcionar bien con el QMake se ve que hay que pasar mucho tiempo configurando el comando de compilación y la verdad... no tengo ganas de hacerlo ahora... si alguien logra configurar el Eclipse para que le compile con el Qt4 pues que ponga el comentario.

Ya para terminar, la imagen que se veía tan impresionante con los Slots y las Signals del Qt4 en la entrada anterior es el Designer que viene incluido con el Qt4, para ejecutarlo hay que escribir el comando designer para que aparezca la aplicación. A pesar de que yo instalé también la versión del Qt4 que está en los repositorios el Synaptic no me creo iconos para las aplicaciones del Qt4 así que los tuve que crear yo con el editor del menú K. Nada del otro mundo, estoy seguro que saben como hacerlo. Así que recuerden los comandos importantes para el Qt4 son: qmake -project, qmake y make para compilar los programas, assistant para la ayuda y designer para el diseñador de interfases.

Y finalmente, hace rato que escribí un mini-tutorial sobre como crear y compilar aplicaciones C++ en Linux usando eclipse, no se que tan útil les sea pero se los dejo por si acaso.

Espero... algún comentario de los que pidieron que publicara el tutorial.... al menos...

2007-05-07

Mi vídeo en YouTube

El domingo subí este video a YouTube, es un vídeo que hice hace tiempo cuando tenía tiempo para editar vídeos por diversión. Es un AMV (Anime Music Video, como se conocen en Internet) que mezcla escenas de las FMV del Final Fantasy IX con la canción que para ese entonces era mi favorita. One de Metallica. Aún me gusta pero... ya no tanto. Hice algunos más pero este es el más significativo. Les dejo el Player de YouTube para que lo veean y dejen sus comentarios, sea aquí en el Blog o en YouTube.

Un saludo.



Quizas después suba más videos a YouTube... quien sabe...

2007-04-15

El remplazo de Visual Basic?

Desde que recuerdo programo en BASIC, es mi lenguaje favorito por muchas razones, me gusta la sintaxis, me gusta la filosofía del lenguaje, me gusta que sea sencillo y a la vez poderoso (no he encontrado nada que no se pueda hacer con él, como hacerlo es harina de otro costal) comencé a programar en BASIC hace muchos años, con un libro llamado BASIC para Niños era un libro con un personaje gracioso llamado Arturo te enseñaba a hacer ciclos FOR, bloques IF, etc. Todavía recuerdo el primer programa que escribí en mi vida, si, el mismo que todo el mundo:

10 PRINT "Hola!, me llamo Arturo"

Una sola línea de código en el GWBASIC con el número 10 que imprimía en pantalla algo... similar... al Hello World! que todo el mundo escribe. Muchos años después continúe explorando el mundo BASIC pasando por qBASIC del MS-DOS y después Visual BASIC 5 y 6, mi versión de BASIC favorita. En esa época detestaba el lenguaje C con toda mi alma, por varias razones, la primera era que mi papá lo odiaba y me había hablado pestes de él, la segunda y la más importante era que instalé el Microsoft QuickC en mi PC y nunca pude entender por que cuando quería ejecutar el programa con printf("hola mundo\n"); me decía que printf no estaba definida. Para alguien que viene del BASIC eso de los .h y las librerías es Chino Avanzado! Ahora todo tiene sentido para mí pero en ese entonces solo acentuó mi odio contra el C.

Es aquí donde se tuerce toda la historia, pues llegó Microsoft con su Visual Studio.net y sus ganas de ser como Java y se cagó el Visual Basic convirtiéndolo en un híbrido horrible entre C++ y BASIC, un completo chasco y una desgracia para el mundo BASIC, estoy seguro que Bruce McKinney escritor de Programación Avanzada en Visual Basic (Hardcore Visual Basic) estaría de acuerdo con migo, o por lo menos, eso fue lo que dio a entender en la sección "El espíritu del BASIC" de ese libro, la verdad no podría asegurarlo, pues no he vuelto a leer ninguna de sus obras. Las razones de Microsoft "No queremos mas programadores mediocres" (Esto fue dicho en una conferencia celebrada en el Hotel Duruelo de Villa de Leyva, Boyacá, Colombia por Microsoft para la presentación del paquete .net y Microsoft Windows Server 2003 al mundo académico [yo estuve presente allí], aún tengo el libro y la copia de Visual Studio.net que regalaron ese día).

En fin, el caso es que para mi Visual BASIC terminó en la versión 6.0 jamás se lanzó otra versión del lenguaje que tanto amo. Aún lo uso y me rehúso a dejarlo es el lenguaje en que más cómodo me siento. Pero... hay que afrontar lo inevitable, uno no puede quedarse en lo antiguo pues eso lo único que hace es atrasarlo más. Así que... hay que afrontar lo inevitable... hay que aprender C++. No fue muy difícil la verdad, tantos años de BASIC y Windows habían aumentado mi comprensión del mundo de la informática al punto que ya podía comprender que significaba hacer #include y entonces al fin printf("Hola mundo!\n"); funcionó y en la consola apareció "Hola Mundo!"

Momento de migrar a C++, aunque aún era reacio y entonces prinf pasó a ser COUT << "Hola mundo!\n"; que para mi tenía más sentido pues se parecía más al PRINT del BASIC [en ese tiempo no entendía, que COUT era un objeto y no lo vine a entender sino hasta hace poco] luego llegaron los años de colegio y en 11 aprendimos C++ y entonces aumenté mi comprensión del mundo de la programación en C. Luego llego Mario Young quien por todos los medios intentó hacer que programara en C++ con él... ahhh, difícil la cosa pues en ese entonces yo todavía no quería soltarme del BASIC.

Luego llego la Universidad... ahhh que excelente ya por fin tuve en aprendizaje sistemático del C++, lo básico, programación orientada a objetos, estructuras de datos, Java (que siempre complementa el entendimiento de los objetos) y ahora considero que sé bastante de C++ y de la programación por objetos aunque todavía me siento más cómodo programando en BASIC.

Ahora se abren nuevos horizontes ante mí, el sistema operativo Linux es el sistema del futuro y para aquellos que aún estamos a tiempo (aunque un poco retrasados) de entrar en el nuevo paradigma es momento de darnos cuenta de la realidad... si volvemos a caer en el lado oscuro de Microsoft será fatal. Así que... hay que evolucionar, y ¿que ofrece Linux? ¿que más? C++. Así que a programar a punta de APIs ¿no? ¡PUES NO! ¡AL FIN LO HE ENCONTRADO! El sustituto perfecto de Visual BASIC. Lenguaje base C++ multiplataforma con desarrollador de interfases y ¡NO ES JAVA! ¡ES CÓDIGO NATIVO EN TODOS LOS SISTEMAS! Ahhh ¡que bonito se siente decirlo!



¿parecido huh? Si bastante, pero es ¡MEJOR! ¡SI, MEJOR! lo que ves allí con la conexión entre el Clicked() del botón y el Close() de la ventana ¡¡ES TODO LO QUE SE NECESITA PARA QUE LA VENTANA SE CIERRE!! ¿No es impresionante? ¡Es Excelente! ¡Asombroso! Definitivamente es momento de comenzar una nueva vida. Adiós al BASIC, ¡siempre te querré! pero.... es momento de que yo evolucione y tu no me lo permites... XD

Todo esto tan maravilloso es el qt [ http://www.trolltech.com ] Es una librería gráfica multiplataforma que permite crear entornos gráficos de forma sencilla y que correrán en cualquier entorno (he sabido que hay para Linux, macOS y Windows) ¡SIN CAMBIAR UNA SOLA LÍNEA DE CÓDIGO! Ya que es código C++ que es muy portable y que prácticamente está en todos los sistemas. Mientras tengas las librerías necesarias en tu sistema teóricamente puedes simplemente compilar y ya. ¡NO ES QUE ESTO ES TAN IMPRESIONANTE QUE NO ME LO PUEDO CREER! Así que aquí comienza mi viaje a través del terreno por ahora desconocido de la programación Linux, adiós a las ataduras de Microsoft. ¡FREE! ¡AT LAST!

Lo siento... me dejé llevar un poco. En estos días (si me queda tiempo) estaré posteando los pasos para instalar el QT4 en un sistema Kubuntu, (gracias a Mario Young quien me ayudó a mi a lograrlo).

Gracias por leerme.

2007-04-13

Linux...

Cuento más lo uso, más me convenzo de que Linux es el sistema operativo del futuro. Más me gusta, más cómodo me siento con él, aún me cuesta desligarme de Windows, debo reconocerlo, bueno, después de todo ese es el sistema operativo que he usado toda mi vida y es difícil dejar atrás la experiencia que ya tengo en pro de un mundo nuevo. ¿Que perderé, que ganaré a cambio? ¿será equivalencia de intercambio? ¿estaré ganando más de lo que pierdo? ¿será al contrario?

Tengo la suerte de tener amigo que comparten con migo su pericia y que poco a poco me transmiten su experiencia. También es una suerte saber que la comunidad Linux es una comunidad solidaria que está siempre dispuesta a ayudar a los que comenzamos a entrar en este mundo y que pensamos que es mejor adelantarse a los cambios que verse forzados a afrontarlos. Estoy a punto de dejar atrás algo importante, pienso dejar atrás el Microsoft VisualBasic que tanto me gusta y que a este punto es mi lenguaje favorito por volverme un programador del entorno KDE. Es un gran paso pero hay que darlo en algún momento, pienso que en el futuro me puede abrir muchísimas puertas.

Quizás sea momento de relegar a Windows a la posición que Linux ocupó por mucho tiempo como sistema operativo secundario y enviarlo a una miserable esquina del disco duro para expandir las fronteras de Linux y liberar de una vez por todas el potencial que este sistema tiene para ofrecer.

Doy gracias a los amigos que han estado con migo durante esta transición, a Xavier por ayudarme siempre, a él le debo el estar aquí y ahora, a Mario Young que una vez me habló de Linux y yo lo rechacé por "no ser estándar" ¡DIABLOS, QUE LOCO ESTABA! Ahora tengo hambre de más conocimiento y espero sinceramente que estas personas sigan a mi lado en el camino que hay por venir.

A los que todavía no conocen Linux los insto a que lo prueben y se convenzan por ustedes mismos de que un sistema operativo gratuito y libre no es malo y que les traerá muchas más satisfacciones que sinsabores en cuanto le cojan el tiro.

Es momento de dar el paso hacia el futuro, ojalá que más adelante pueda decir con todo orgullo "Linux es el único sistema operativo que uso". Gracias a la comunidad Linux por brindarle de forma desinteresada a la humanidad una verdadera joya de la ingeniería.

Me he puesto un poco Solemne pero... ya que más da, "¡El conocimiento humano pertenece al mundo!" ¡Que viva el software libre!

2007-04-04

Aceleración gráfica y TwinView para las nVidia en Kubuntu

Antes que nada agradecer a Xavier Corredor Llano por ayudarme a configurar la aceleración gráfica, el siempre ha sido mi senpai de Linux por lo que estoy muy agradecido, de no ser por el probablemente todavía estaría buscando el .exe en los tar que se descargan de internet... XD

Bueno, ahora si comencemos, hace rato que vengo usando Linux y solo hasta el día de hoy pude por fin hacer que el sistema acelerara las gráficas sin bloquearse y también logré que Linux usara un segundo monitor con la característica TwinView de las nVidia con TV-Out.

Primero decir que tengo una nVidia Gforce 6200 con 256 MB de memoria de vídeo. Esto lo digo no por alardear sino para que quede constancia de que no tengo ni idea si esto funcionará en otras tarjetas nVidia, valga decir que el hilo que me proporcionó la información para activar el TwinView dice que sirve con todas las nVidia.

1. Configurar los Drivers

Lo primero es configurar los drivers, como todos ya saben los drivers libres para Linux proporcionan las funcionalidades básicas para la tarjeta de vídeo pero no aceleran las gráfica ni tampoco proporcionan la posibilidad de usar TwinView, así que hay que descargar los drivers para la nVidia que corresponde. Instalar los siguientes paquetes (dependiendo de la tarjeta que tengas)

Si buscas nVidia en el Synaptic seguramente te saldrán todos los paquetes.

Paquete

Para tarjeta

nVidia-glx

nVidia gForce, nForce, y Quadro

Ejemplo: gForce 6200

(Tarjetas nVidia de las nuevas)

nVidia-glx-legacy

nVidia gForce 2, TNT, TNT 2

Ejemplo: gForce 2 MX/MX400

(Tarjetas nVidia de las antiguas)

nVidia-kernel-common

TODAS LAS TARJETAS nVidia

Además de estos paquetes necesitarás instalar el Linux-restricted-modules que correspondan al kernel de Linux que tengas instalado. Para saber el kernel puedes fijarte en el grub cuando arranca o escribir en la consola el comando uname -a o uname -r.

Por ejemplo, si al poner uname -r el sistema te da la salida: 2.6.17-11-generic deberás bajar el paquete linux-restricted-modules-2.6.17-11-generic que en el ejemplo sería el que concuerda con tu Kernel. OJO! Si hay otros paquetes similar instalados no los desinstales, solo instala el que concuerda con tu kernel de ser necesario.

Una vez instalado el Driver, el siguiente paso es hacer que el X use el driver propietario (es decir el que creo nVidia) y no los drivers libres que vienen con el Linux, para hacer eso dale al menú K y en Ejecutar escribe:

kdesu kate /etc/X11/xorg.conf

El sistema te pedirá el la contraseña del root y enseguida aparecerá Kate con el xorg.conf que es el archivo de configuración del X (¡así que ten cuidado con lo que modificas!) ahí busca la sección Device, que debe lucir más o menos así:

Section "Device"

Identifier "NVIDIA Corporation NV40? [Unknown nVidia Card]"

Driver "nv"

BusID "PCI:1:0:0"

EndSection

Antes de modificar el archivo TE RECOMIENDO QUE SAQUES UNA COPIA DE SEGURIDAD EN TU DIRECTORIO DE USUARIO, Luego debes editar la parte que dice Driver y poner “nvidia” en vez de “nv” y guardar el archivo.

Si eres precavido (e inteligente) este es un buen momento para que reinicies el PC ya que si te apresuras a agregar el código para el TwinView y luego no te resulta no sabrás si lo que ha fallado es el Driver o la configuración del TwinView. Pero... si no quieres reiniciar el equipo (¡Me gusta el peligro! ¡es mi desayuno!) pues entonces adelante a la sección siguiente del documento.

Ah, por cierto, TE RECOMIENDO que reinicies el sistema entero, no solo el entorno gráfico, mi senpai de Linux (Xavier) me sugiero esto así que yo se lo sugiero a mis lectores también.

Después de reiniciar la máquina al iniciar DEBE aparecer el logotipo de nVidia en el monitor antes de que aparezca e Katapult (pantalla de inicio del KDE, donde pones la contraseña), si no, es por que probablemente algo ha fallado, revisa los pasos anteriores para ver que puede ser.

2. Activar el TwinView

Si ya has probado el driver y sabes que funciona todo y estás listo para agregar el TwinView entonces debes seguir estos pasos: Primero abre el xorg.conf con el comando que discutimos antes, nuevamente RECUERDA SACAR UNA COPIA DE SEGURIDAD DEL ARCHIVO, PERO NO REMPLACES LA QUE HABÍAS SACADO EN EL PASO ANTERIOR. En el archivo localiza la sección Device y agrega algunas líneas de código para que se vea como esta:

Section "Device"

Identifier "NVIDIA Corporation NV40? [Unknown nVidia Card]"

Driver "nvidia"

BusID "PCI:1:0:0"

Option "TwinView" "True"

Option "TwinViewOrientation" "Clone"

Option "UseEdidFreqs" "True"

Option "MetaModes" "1024x768,1024x768"

Option "UseDisplayDevice" "CRT,TV"

EndSection

Bueno, algunos comentarios acá: 1. Solo agrega las líneas que dicen Option, NO MODIFIQUES LAS LÍNEAS QUE YA HAY EN EL ARCHIVO. 2. La opción TwinViewOrientation tiene tres configuraciones (por lo menos que yo sepa) y ellas son: LeftOf o RightOf para que el escritorio se extienda hacia la izquierda o derecha en el segundo monitor, y Clone para que el segundo monitor muestre una imagen idéntica a la que muestra el primer monitor.

3. La opción MetaModes define la resolución para cada una de las pantallas, acá debes tener cuidado de establecer las resoluciones que tu tarjeta de vídeo soporta para el TwinView o de lo contrario puedes terminar con errores raros o con visualizaciones erráticas. Si tienes una gForce de las nuevas te recomiendo que comiences probando con dos resoluciones iguales, 1024x768 para ambas. Si tienes una gForce de las viejas te recomiendo 1024x768,800x600. Ten presente que puedes agregar varios MetaModes separados por ; (punto y coma), por ejemplo:

Option “MetaModes” “1024x768,1024x768;1024x768,800x600”

En realidad no sé exactamente que comportamiento tiene esta configuración, pero mis experimentos parecen mostrar que los MetaModes establecen las resoluciones para los monitores en el orden en que aparecen en la opción UseDisplayDevice y que cuando se agrega más de un MetaMode Linux intentará con cada uno hasta encontrar uno que la tarjeta acepte. Nuevamente esto es solo una posibilidad, nada es seguro aquí. Pero si tienes más dudas mira el hilo del foro de Ubuntu (Al final en Referencias)

4. Finalmente la opción UseDisplayDevice permite establecer que monitores se usarán, acá debes establecer donde están conectados los monitores, por ejemplo, si tienes dos monitores conectados uno a la salida análoga (VGA) y el otro en la digital entonces sería: “DVI,CRT” asumiendo que el monitor en la salida análoga es el segundo monitor. Otro ejemplo (que es el de mi caso) es que tengas un monitor conectado a la salida análoga (tu monitor principal) y un TV conectado en la salida de S-Video (Composite Video) en ese caso sería “CRT,TV”.

Guarda el xorg.conf, reinicia el equipo y si has hecho todo bien ya debes tener TwinView. A mi en lo personal no me gustó la extensión del escritorio por que Linux a diferencia de Windows no clona el Papel Tapiz sino que lo estira y el escritorio luce... algo horrible, pero de resto bien.

He de decir que NUNCA pude hacer que mi gForce 2 MX400 trabajara con Linux, no por el driver ni nada sino por que cuando usaba la aceleración gráfica el sistema se congelaba al mejor estilo de Windows y nunca pude solucionar ese inconveniente. Ahora me pregunto si era por que tenía algo mal configurado, por culpa de los legacy-drivers o quizás por la propia tarjeta de vídeo, un overheat ¿quizás?. En cualquier caso si alguien logra configurar una gForce 2 MX400 pues que me mande un correo electrónico para poder quitarme la espina del cerebro.

Referencias:

  1. Mi Senpai de Linux, Xavier Corredor Llano que me ayudó con todo lo de la aceleración gráfica

  2. nVidia TwinView - Ubuntu Forums en http://ubuntuforums.org/showthread.php?p=1773584