La semana pasada cansado de estar en el puesto de soporte sin nada que hacer e intentando hacer un poco mas «aceptable» mi estancia allí me propuse construir algo nuevo. La idea era transformar el ordenador que tenía para ejecutar unas aplicaciones de soporte en una estación multimedia.
Y a eso me puse. Supongo que por que quiero que no se me olvide lo he que hecho estoy escribiendo este post. Supongo que será cosa vuestra el juzgar si esto es trabajo o no.
La idea era consolidar varios servicios en los mínimos ordenadores posibles. Las aplicaciones que tenemos que consolidar son:
- Aplicación web con una pantalla tactil
- Musica
- Video
Para poder hacer esto disponía del siguiente Hardware.
Si no queda muy claro con los dibujos lo describiré.
- Dell 390
- Sharp Aqua 50″
- Elo touch screen (USB)
La idea era utilizar linux como sistema operativo y configurar todas las aplicaciones sobre el. Manos a la obra se ha dicho. Supongo que entenderéis que no voy a entrar en detalles sobre la instalación de linux. Realmente no tiene nada especia. Simplemente acordaos de instalar estas opciones durante la instalación.
- SSH Server
- Ubuntu desktop
Una vez hecha la instalación añadimos una segunda tarjeta gráfica a la workstation. La idea es que cada una de las tarjetas alimentará un monitor diferente. Con lo que tenemos los siguiente.
01:00.0 VGA compatible controller: nVidia Corporation NV41 [Quadro FX 3450/4000 SDI] (rev a2)
05:04.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200] (rev a1)
La idea es que cada una de las tarjetas alimente un monitor diferente y que cada tarjeta corra una sesión X diferente. Para hacer esto necesitamos modificar los siguientes ficheros:
Este fichero debe contener la definición de los 2 servidores. Imaginaos que tenéis 2 ficheros de configuración xorg.conf para cada uno de los servidores y los juntáis en uno solo. Tendréis entonces 2 secciones de cada. Lo importante es que os quedéis con el nombre que le asignáis a las secciones de «ServerLayout». por que la utilizaremos más adelante.
Aunque no está relacionado con la configuración del servidor X vamos a indicar como se configuraría el interfaz para la pantalla táctil. Esta pantalla tiene un conector USB para utilizar el dispositivo táctil. Para configurar ese dispositivo tenemos que hacer lo siguiente.
El la siguiente página
Nos podemos descargar el driver para Xorg. Si utilizamos el que viene con la distribución (xserver-xorg-input-elographics) tendremos que utilizar el interfaz serie, ya que este no soporta USB.
Para instalarlo simplemente tendremos que hacer lo siguiente:
wget -c http://www.softcoded.net/eduard/zx_pub/elousb_binary.tar.gz
tar -zxpvf elousb_binary.tar.gz
cp elousb_drv.so /usr/lib/xorg/modules/input
y en el fichero de configuración tenéis que añadir lo siguiente:
Section "InputDevice"
Identifier "touchscreen"
Driver "evtouch"
Option "Device" "/dev/input/evtouch_event"
Option "DeviceName" "touchscreen"
Option "MinX" "434"
Option "MinY" "503"
Option "MaxX" "3563"
Option "MaxY" "3524"
Option "SwapY" "true"
Option "ReportingMode" "Raw"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
Option "SendCoreEvents" "On"
EndSection
La parte en negrita es muy complicada, son los valores de calibración. Básicamente yo he encontrado los míos al tuntún. Hay varios programas para realizar la calibración, pero solo funcionan a través del interfaz RS232.
Como podéis ver vuestra touchscreen se comportará como si de un ratón se tratara para el sistema de Xwindows.
Una vez hecho eso tenemos que decirle a nuestro display manager (en este caso GDM) que deberá cargar 2 servidores X. Uno con cada configuración.
Para eso utilizamos este fichero. La configuración que vamos a realizar se llama multiseat. No es algo fuera de lo común, pero es la primera vez que lo hago. Se supone que con añadir un par de lineas al fichero gdm.conf esta hecho.
En la sección
Hay que añadir algo como
Y luego decirle como se carga ese servidor, con algo parecido a esto.
[server-Television]
name=Television
command=/usr/bin/X -novtswitch -sharevts -layout Television
flexible=true
Reiniciamos nuestro gdm y voilá .. ya tenemos dos Xservers… uno en :0 y otro en :1… uno en cada pantalla.
Pues ahora tenemos 2 pantallas con 2 sesiones X.. genial, ahora solo hay que configurarlas para que hagan autologin y ejecuten las aplicaciones que necesitamos.
Pero eso es otra historia y será contada en otro momento.. 😉