Diferencia entre revisiones de «Multiterminal/Usando Xephyr»

Contenido eliminado Contenido añadido
Rotlink (discusión | contribs.)
m enlace roto
Ortografía
Etiqueta: editor de código 2017
 
Línea 11:
= Introducción =
 
Xephyr es un cliente X y un servidor X a la vez, que corre dentro de otro servidor X. Xephyr es cliente de un servidor X real, pero también es un servidor que tiene sus propios clientes. Este programa se usa normalmente para permitir trabajar en dos o masmás escritorios al mismo tiempo, sin embargo, hemos hechos modificaciones en su código para hacer posible que Xephyr implemente un sistema multiterminal.
 
El sistema trabaja en la siguiente manera. Únicamente un servidor X "real" está corriendo, configurado para usar varios screens o pantallas, de las cuales cada una será asociada a una tarjeta de video . Después del inicio de X, un Xephyr estará corriendo dentro de cada pantalla. Cada usuario usará un Xephyr, en una forma transparente
 
El Xephyr original obtiene los eventos de los dispositivos de entrada de su servidor X padre . Sin embargo, para permitir Xephyr sea usada en la multiterminal modificamos su codigocódigo fuente para que leyera directamente desde la interfaz de eventos del kernel, saltando al servidor X.
 
La ventaja de esto es la posibilidad de tener multiterminales con cualquier combinación de tarjetas de video, siempre y cuando esta sea soportada por el servidor X. Además de esto, Xephyr tiene varias ventajas sobre Xnest(otro programa similar): Xephyr tiene soporte, es mas rápido que Xnest, y soporta la implementación de extensiones mas fácilmente.
Línea 21:
= Evdev y Udev =
 
Asegurate de que tu kernel este compilado con la opcionopción evdev .
 
AdemasAdemás instala udev, el cual provee de un directorio /dev dinamicodinámico, actualizado de acuerdo a los dispositivos conectados:
 
<pre>apt-get install udev</pre>
Línea 33:
Ahora, necesitas checar si tus dispositivos de entrada (ratones y teclados) han sido correctamente detectados por el kernel. Al hacer esto, analiza el archivo /proc/bus/input/devices, el cual muestra los detalles sobre los dispositivos de entrada detectados por el kernel.
 
Un ejemplo de este archivo es mostrado abajo. UnicamenteÚnicamente dos campos son de nuestro interesinterés: el nombre de cada dispositivo, encontrado en las lineas que inician con “N: Name=”, y el nombre del archivo relacionado con cada dispositivo, encontrado en las lineaslíneas que inician con “H: Handlers”.
 
<pre>I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
Línea 75:
B: REL=103</pre>
 
Nota que el archivo parece indicar la presencia de 3 teclados, el sistema en cuestioncuestión solo tiene dos. Pero esto pasa debido a que muchos teclados USB tienen teclas especiales (para control multimedia o de acceso a internet) los caulescuales son detectados por el kernel como teclados adicionales, siendo aquellos cuya direcciondirección fisicafísica termine con “input1”. Necesitar configurar unicamenteúnicamente los teclados primarios, los cuales son los que terminan en su direcciondirección fisicafísica con “input0”.
 
El ejemplo dado abajo muestra la presencia de 2 teclados "primarios", relacionados a los archivos /dev/input/event0 y /dev/input/event2, respectivamente, y 2 ratones, relacionados a los archivos /dev/input/event1 y /dev/input/event4, respectivamente.
Línea 81:
= Instalacion de XOrg =
 
En este COMO describiremos los pasos necesarios para configurar multiterminales usando XOrg , pero tambientambién es posible usar XFree86, con pocos cambios. Para instalar XOrg, en un Debian Sarge, has lo siguiente:
 
1. Crea un backup y borrar los archivos /etc/init.d/xfree-common.
 
2. Agrega los siguientes lineaslíneas /etc/apt/sources.list:
 
<pre>deb http://people.debian.org/~nobse/xorg-x11/ sarge main
Línea 102:
2. Descarga el wrapper script, necesario para correr Xephyr: [http://www.c3sl.ufpr.br/multiterminal/howtos/Xephyr.sh Xephyr.sh]. El script debe ser copiado a /usr/sbin.
 
= ConfiguracionConfiguración de X(XOrg) =
 
Para configurar una multiterminal con N terminales, edita el archivo /etc/X11/xorg.conf, y has lo siguiente:
Línea 119:
EndSection</pre>
 
2. Crea una seccionsección Device para cada tarjeta de video:
 
<pre> Section "Device"
Línea 132:
# El BusID identifica tu tarjeta de video. Para obtener el BusIDs de tu tarjeta de video,
#usa el comando "lscpi | grep VGA".
# Beware: el comando lscpi muestra la direcciondirección en hexadecimal, mientras que X espera numerosnúmeros decimales.
#El comando "echo $((0xHEX_NUMBER))" es tu amigo
.
Línea 144:
EndSection</pre>
 
3. Crea la seccionsección Monitor.
 
<pre> Section "Monitor"
Línea 162:
EndSection</pre>
 
4. Crea la seccionsección Screen
 
<pre> Section "Screen"
Línea 188:
EndSection</pre>
 
5. Xorg.conf debe tener unicamenteúnicamente una seccionsección teclado, como esto:
 
<pre> Section "InputDevice"
Línea 195:
EndSection</pre>
 
La seccionsección de mouse puede ser eliminada, lo cual es recomendado, pero debes agregar la opcionopción AllowMouseOpenFail en la seccionsección ServerFlags, como se muestra abajo , de otra manera el servidor X no iniciara.
 
6. Asegurate de tener lo siguiente en la seccionsección ServerFlags:
 
<pre> Section "ServerFlags"
Línea 218:
EndSection</pre>
 
= ConfiguracionConfiguración de XKB =
 
Para permitir a Xephyr usar las extensiones de XKB , tu debes descomprimir el archivo [http://web.archive.org/web/20060615012654/http://www.c3sl.ufpr.br/multiterminal/howtos/xkb-evdev.tar.gz xkb-evdev.tar.gz] dentro del directorio /etc/X11. DespuesDespués de esto, es necesario crear un archivo XKB por cada Xephyr. La configuracionconfiguración de XKB para el primer Xephyr debe ser puesta como /usr/X11R6/lib/X11/xkb/X1-config.keyboard, para el segundo Xephyr como /usr/X11R6/lib/X11/xkb/X2-config.keyboard, y asiasí sucesivamente. Puedes ver un ejemplo de un archivo de configuracionconfiguración XKB abajo.
 
<pre>rules = "evdev"
Línea 226:
layout = "us"</pre>
 
= ConfiguracionConfiguración de GDM =
 
El ultimoúltimo paso para configurar el login manager para iniciar el servidor X principal y correr los wrapper scripts que abrirarabrirá al Xephyr. Solo explicaremos como hacer esto en GDM, pero para otros managers, como XDM y KDM, pueden ser configurados de formas similar.
gdm.conf
 
Edita el archivo /etc/X11/gdm.conf en la seccionsección [servers] , agregando lo siguiente:
 
<pre> [servers]