LTSP - Linux Terminal Server Project
(Proyecto de Servidor de Terminales Linux)
Jim McQuillan (jam@ltsp.org)
Traducción Dario Rapisardi (dario@rapisardi.com.ar)
v2.4 7 de Junio de 2001.
Linux es una excelente plataforma para el uso de estaciones de trabajo sin disco que inicien desde un servidor de red. El LTSP es un proyecto Open Source con el propósito de crear las herramientas necesarias que harán la configuración de una estación de trabajo sin disco más fácil. Este documento provee una descripción de cómo una estación de trabajo sin disco trabaja, cómo obtener la distribución LTSP y cómo instalarla.
1) Introducción.
El LTSP provee una menera simple de utilizar estaciones de trabajo de bajo costo, tanto en modo gráfico como en modo de terminal de caracteres, con un servidor GNU/Linux.
En una configuración tradicional de oficina, hay PC's basadas en Intel de relativamente gran poder desparramadas por los escritorios. Cada una con varios GigaBytes de espacio en disco. Los usuarios almacenan su información en el propio disco local y las copias de resguardo (si se realizan) se hacen muy raramente.
¿Tiene mucho sentido tener una computadora completa en cada escritorio?
Yo digo que no.
Afortunadamente, hay otro camino. Utilizando el LTSP, se pueden agarrar PC's de bajo poder, sacarles el disco rígido, la diskettera y la lectora de cd-rom, y agregarles una tarjeta de red que pueda bootear. Muchas placas de red tienen sockets para boot roms, y están simplemente esperando que alguien les inserte la rom.
La estación de trabajo sin disco obtiene su dirección IP y el kernel del servidor, y luego monta el sistema de archivos raíz vía NFS.
La estación de trabajo puede ser configurada en alguno de los siguientes tres modos:
X Window Gráfico.
Usando X Window, la estación de trabajo puede ser utilizada para acceder a cualquier aplicación del servidor, o de cualquir otro servidor de la red.
Sesiones Telnet basadas en caracteres.
La estación de trabajo puede invocar múltiples sesiones de telnet en el servidor. Cada sesión de telnet tendrá su propia pantalla virtual. Presionar entre ALT-F1 y ALT-F9 cambiará de sesión en la pantalla.
Prompt de Shell, útil para el debugging.
La estación de trabajo puede ser configurada para dejarte en un shell bash en la consola. Esto es muy útil para depurar problemas relacionados con X Window o NFS.
Lo que es verdaderamente bueno de esto es que puedes tener montones de estaciones sin disco servidas por un único servidor GNU/Linux. ¿Cuántas estaciones de trabajo? Bueno, eso depende del tamaño del servidor y de las aplicaciones que serán utilizadas.
No es inusual tener 40 estaciones de trabajo, todas corriendo Netscape y StarOffice desde un Dual PIII-650 con 1GB de RAM. Sé que esto funciona. De hecho, el runlevel muy rara vez pasa del 1.0!
2) Copyright.
Copyright 2001 James A. McQuillan. El permiso para distribuir y modificar este documento está reconocido bajo el GNU General Public License - Versión 2, Junio de 1991. Para ver el texto completo de esta licencia, puedes ir a: www.ltsp.org/license.txt.
3) Historia.
Este proyecto nació a raíz de la necesidad de resolver un problema para un cliente que necesitaba una terminal que pudiera comunicarse tanto con un IBM AS/400 como con un servidor de aplicaciones Unix. Esta terminal requería TCP/IP, tenía que ser económica así como también fácil de mantener. Además de esto, tenía que permitir al usuario navegar por la Web y enviar y recibir e-mail.
Podríamos haber usado PC's corriendo Windows, el software está ciertamente disponible, pero el costo hubiese sido alto. Tanto en términos de inversión inicial, así como en soporte y mantenimiento de las PC's a través del tiempo.
Decidimos que una estación de trabajo sin disco corriendo el kernel Linux y X-Window podría encajar perfectamente como solución al problema del cliente.
Realmente no inventamos nada nuevo aquí. Buscamos en la Web y encontramos los paquetes Etherboot y Netboot. Luego hallamos una económica tarjeta de red compatible NE2000 que tenía un socket para EPROM. Buscamos y encontramos una grabadora de EPROM de bajo costo, investigamos acerca de cuál chip EPROM comprar, aprendimos sobre bootp, xdm, nfs-root y otras clases de cosas. Luego, pusimos todo junto. Inicialmente probamos esto en una vieja 486 que teníamos tirada por ahí y funcionó bastante bien.
Entonces, instalamos un servidor y 11 estaciones de trabajo. Al cliente le encantó. Ordenó un adicional de 22 estaciones, y probablemente quiera agregar más en el futuro. (Actualización al 16/06/00: Actualmente hay más de 100 estaciones de trabajo funcionando)
Después de muchos meses, y virtualmente sin problemas de soporte con las estaciones de trabajo, decidimos compartir nuestra solución con el resto del mundo.
El paquete que desarrollamos trabaja muy bien para nuestras necesidades. Con suerte, resolverá problemas para otros también.
Si tienes preguntas o comentarios acerca del paquete, por favor suscríbete a la lista de correo en http://www.ltsp.org/mailinglists.html. Hay mucha gente que podría ayudarte.
4) Asuntos de Seguridad.
La instalación del software LTSP habilitará algunos servicios que podrían hacer tu sistema vulnerable a ataques malintencionados.
Un servidor LTSP definitivamente NO puede estar conectado directamente a Internet, sin un Firewall (has sido advertido).
El script de instalación modificará los siguientes archivos:
/etc/exports : Una entrada es agregada para permitir que máquinas pertenecientes a la clase C 192.168.0.0 monten el directorio /tftpboot/lts/ltsroot. Además, algunas entradas son agregadas para otros directorios, pero éstos están comentados (#). Sólo pueden crear vulnerabilidad si son des-comentados.
/etc/bootptab : Una entrada parcial llamada .ltsp es creada. Una entrada adicional llamada ws001 es agregada pero está comentada (#).
/etc/X11/xdm/xdm-config : La entrada 'DisplayManager.requestPort' está comentada (#), permitiendo a estaciones de trabajo remotas obtener una pantalla de login XDM.
/etc/X11/xdm/Xaccess : La entrada con un comodín asterisco (*) está des-comentada, permitiendo a estaciones de trabajo remotas obtener una pantalla de login XDM.
/etc/hosts.allow : Algunas entradas son agregadas, habilitando lo siquiente:
bootpd estará habilitada para recibir paquetes broadcast.
in.tftpd estará habilitada para recibir peticiones de transferencia desde la clase C 192.168.0.0.
portmap estará habilitada para recibir peticiones desde la clase C 192.168.0.0.
/etc/rc.d/init.d/syslog : Este script es modificado para permitir a clientes remotos enviar mensajes de sistema al servidor.
/etc/inetd.conf : Este archivo es modificado para habilitar el demonio tftpd.
/etc/inittab : Este archivo es modificado para arrancar el proceso xdm y el runlevel por defecto es puesto en 5.
/etc/rc.d/rc5.d/S11portmap: Este link simbólico es creado para el portmapper inicie cuando el sistema entra al runlevel 5.
/etc/rc.d/rc5.d/S60nfs : Este enlace simbólico es creado para que nfs arranque cuando el sistema entra al runlevel 5.
5) Problemas con distribuciones de Linux específicas.
Hay algunos problemas con algunos de los paquetes distribuidos por determinados vendedores.
RedHat 6.0.
El paquete X Font Server (XFS) que es distribuído con Red Hat 6.0 no maneja fuentes hacia estaciones de trabajo remotas. Versiones más nuevas de xfs están bien, y puedes actualizarte en Red Hat 6.0 y funcionará correctamente. Mira las instrucciones en "Configurando el Servidor" para obtener información acerca de cómo actualizar xfs. Si no usas XFS, entonces no tienes nada que actualizar.
RedHat 6.2.
El programa /usr/sbin/inetd suministado con RedHat 6.2 tiene un problema después de haber recibido 40 invocaciones a tftpd. Simplemente se reusará a contestar más invocaciones hasta que el servidor sea reiniciado. No hay ninguna mención en la página de Erratas de RedHat, pero el problema se elimina si usas una versión de init de una anterior versión de Red Hat.
RedHat 7.1
Durante la instalación de RedHat 7.1, te preguntará con qué nivel de seguridad quieres instalar el equipo. Cualquier opción diferente a None causará que ipchains se configure, probablemente limirando los servicios que se pudieran correr en el servidor. Si sabes cómo configurar ipchains, entonces puedes elegir un nivel de seguridad y luego modificar ipchains manualmente. Si no sabes cómo configurar ipchains, entonces selecciona None como nivel de seguridad y asegúrate de colocar al servidor detrás de un firewall.
Caldera eDesktop v2.3 y v2.4.
Caldera no incluye el demonio tftp con la versión eDesktop de su distribución Linux. Puedes obtener el RPM de tftp desde el CD de la versión eServer. El archivo se llama netkit-tftp-0.10-2.i386.rpm.
6) Guía de Instalación Rápida.
Si sólo qiueres instalar el software, sin leer todos los detalles sangrientos, simplemente puedes usar esta guía de instalación rápida.
Requisitos mínimos.
La instalación rápida requiere que tu instalación acutal concuerde con los siguientes criterios:
Estás instalando en un sistema basado en RedHat 6.0, 6.1, 6.2 , 7.0 o 7.1, o en Mandrake 7.2 u 8.0.
El servidor tiene una dirección IP de 192.168.0.254.
Las estaciones de trabajo tendrán direcciones en el rango de 192.168.0.1 hasta 192.168.0.253.
Las aplicaciones correrán en el servidor, mostrando su salida en las estaciones.
Estás usando DHCP.
Preparados-Listos-Ya!
Como ejemplo en estas instrucciones, asumiremos que tienes una tarjeta de red basada en Tulip y una placa de video SVGA.
Baja los paquetes rpm LTSP desde el sitio de download del LTSP (http://www.ltsp.org/download)
lts_core-2.xx-xx.i386.rpml
ts_kernel_tulip-2.xx-xx.i386.rpm
lts_xsvga-2.xx-xx.i386.rpm
Instala los paquetes:
# rpm -i lts_core-2.xx-xx.i386.rpm
# rpm -i lts_kernel_tulip-2.xx-xx.i386.rpm
# rpm -i lts_xsvga-2.xx-xx.i386.rpm
Verifica que dhcpd esté instalado en el servidor. Corre el siguiente comando:
# rpm -qa | grep dhcp
Debería mostrar algo como:
# dhcp-2.0-5
Si no es así, entonces necesitas instalar el rpm DHCP del CD de Red Hat.
Una vez que la instalción de los paquetes mencionados está completa, tienes que ir al directorio /tftpboot/lts/templates. Hay aquí muchos scripts que configurarán tu servidor. Cada uno de estos archivos es responsable de un archivo del sistema. Echales un vistazo y asegúrate de que estás de acuerdo con lo que harán. Pueden hacer tu sistema potencialmente vulnerable. Puedes querer hacer cambios a los scrips manualmente. Si quieres hacerlo automáticamente, entonces corre el comando ltsp_initialize:
# cd /tftpboot/lts/templates
# ./ltsp_initialize
Copia /etc/dhcpd.conf.example a /etc/dhcpd.conf
Modifica /etc/dhcpd.conf para incluir la dirección MAC de la tarjeta de red de la estación de trabajo.
Agrega la siguiente línea a /etc/hosts:
192.168.0.1 ws001
Edita /tftpboot/lts/ltsroot/etc/lts.conf para asegurarte de que las entradas son correctas para la estación de trabajo.
Reinicia el servidor.
Enciende la estación de trabajo.
Deberías obtener un login gráfico en la estación. Puedes ingresar con cualquier nombre de usuario y contraseña disponible en el servidor.
Si la estación de trabajo falla al iniciar, re-lee las instrucciones descriptas. Presta particular atención a la lista de "Requisitos Mínimos", para asegurarte de que tu configuración concuerda con estos requerimientos. Si no lo hacen, entonces deberías leer el resto del documento para obtener un mas claro entendimiento de cómo el LTSP trabaja y qué puede estar mal en tu configuración.
Cuando se esté usando una estación de trabajo sin disco, ten lo siguiente en mente:
Todos los programas que corres están corriendo de hecho en el servidor.
Si ejecutas el comando 'uptime', te dirá cuánto tiempo ha estado corriendo el servidor.
Si ejecutas el comando 'shutdown', apagará el servidor. Esto puede no ser lo que tenías en mente.
7) Descripción de una Estación de Trabajo Sin Disco.
Una estación de trabajo sin disco es una computadora que no necesita de un disco duro, disquetera o cd-rom para iniciar.
Cuando una estación inicia, hace lo siguiente:
Obtiene su dirección IP de un servidor bootp o dhcp.
Baja su kernel de un servidor tftp.
Monta su direcctorio raíz de un servidor nfs.
Carga el software del Servidor X en memoria y comienza a ejecutarlo.
Se contacta con un servidor XDM y permite al usuario ingresar en él.
En la mayoría de los casos, el servidor bootp, tftp, nfs y xdm estarán en la misma máquina. Nos referiremos a ella simplemente como el "Servidor", y haremos referencia a la estación de trabajo sin disco como la "Estación de Trabajo".
Una vez que la estación de trabajo es iniciada, y el usuario ingresa, cualquier aplicación que se invoque estará corriendo en el servidor, mientras que la salida será mostrada a través de la estación. Esta es una capacidad fundamental de X-Window. La estación de trabajo está solamente corriendo el kernel Linux, Xfree86, Init y posiblemente un demonio de impresión para imprimir en la impresora local.
A raíz de que hay muy poco corriendo en la estación, puedes salir adelante con una económica máquina de bajo poder. Descubrimos en nuestros inicios que un i486 con 16 MB de RAM era una buena terminal X.
Usamos el paquete Etherboot disponible de http://etherboot.sourceforge.net. El mismo se encargará de la imagen que debe ser grabada en la eprom, y nos ayudará a preparar el kernel para bajar desde la estación de trabajo.
Hay muchos HOWTO's que explican cómo configurar un servidor para que una sola estación trabaje remotamente, pero no discuten los problemas involucrados en la configuración de muchas estaciones para un solo servidor. Es problema es que cuando la estación de trabajo está corriendo, necesita escribir algunos archivos en el servidor, por lo que cada estación necesita montar su único sistema de archivos raíz. Si tienes 50 estaciones de trabajo, necesitarías exportar 50 directorios. Esto puede ser una verdadera pesadilla para administrar.
Nosotros hemos desarrollado un método para configurar un sistema de archivos raíz que pueda ser compartido por todas las estaciones. El kernel monta el sistema de archivos en modo de sólo lectura, y luego monta un disco RAM como su directorio /tmp. El tamaño de este disco RAM es configurable, y es de 1 MB por defecto. Mientras el kernel y XFree están corriendo, necesitan actualizar algunos archivos, entonces hemos puesto esos archivos en el disco RAM, y creado links simbólicos hacia ellos en el lugar apropiado dentro de la jerarquía de directorios raíz.
Adicionalmente, hemos creado un archivo de configuración y un programa que corre como parte del inicio de la estación de trabajo. Cada estación puede incluir diferente hardware. Cosas como una placa de red, de video y el tipo de mouse pueden ser configuradas por defecto o bien individualmente.
Debido a que no hay demasiados programas corriendo en la estación de trabajo, no necesitamos una partición de swap, aunque es posible configurar el kernel para que monte el swap vía NFS.
Este método de booteo está siendo usado muy exitosamente en una red de más de 100 estaciones, todas corriendo desde un solo servidor con Red Hat 6.0 en un Pentium II de 400 mhz. Cada estación es un Pentium 166 mhz con 32 MB de RAM. Podríamos haber usado procesadores menos potentes, pero en estos días se hace bastante difícil conseguir los viejos cpus.
Hay también una opción para permitir a las aplicaciones correr directamente en la estación de trabajo. Nos referimos a ella como "Aplicaciones Locales".
8) Teoría de operación.
Iniciar una estación de trabajo sin disco involucra muchos pasos. Entender qué es lo que pasa en este proceso hará mucha mas fácil la resolución de los problemas que pudieran surgir.
Esta descripción de los eventos asume que hay un servidor configurado para manejar el inicio de estaciones remotas.
1) Cuando enciendes la estación de trabajo, ésta pasará a través del Power On Self Test (auto-testeo de arranque) y el código grabado en la eprom de la tarjeta de red se empezará a ejecutar.
2) El código de inicio tratará de detectar una tarjeta de red. Una vez que la detecta, la inicializa.
3) El código de inicio hará una perición de broadcast bootp en la red local. Esta petición incluirá la dirección MAC de la tarjeta de red (también se puede usar DHCP).
4) El proceso inetd del servidor verá la petición de broadcast e invocará al demonio bootpd para responderla.
5) El demonio bootpd leerá su archivo de configuración, /etc/bootpab, y tratará de localizar la entrada que concuerde con la dirección MAC de origen. Una vez que esta entrada es encontrada, la pondrá en un paquete de respuesta y se lo enviará a la estación que pidió la información. Muchos ítems serán pasados en este paquete de vuelta, siendo los mas importantes:
Dirección IP asignada a la estación de trabajo ('ip=').
Máscara de subred de la red de área local ('sm=').
Directorio home del archivo de inicio ('hd=').
Nombre del kernel a bajar ('bf=').
6) El código de inicio recibirá el paquete de respuesta bootp y configurará la interface TCP/IP en la tarjeta red con los parámetros suministrados.
7) El código de inicio luego enviará una petición TFTP al servidor para empezar a bajar el kernel.
8) Una vez que el kernel fue completamente bajado por la estación de trabajo, del código de inicio de la eprom se hará un salto al kernel.
9) El kernel empezará a ejecutarse, inicializando todo el sistema y sus periféricos.
10) El código de inicio le puede pasar información al kernel. Lo hace construyendo una línea de comando al kernel, similar a la manera en que LILO le pasa parámetros con append=. Si la eprom de inicio no está configurada correctamente, o si el kernel no fue correctamente etiquetado con mknbi-linux, entonces el kernel podrá manejar una petición bootp para obtener la información por sí mismo.
11) Si el kernel necesita hacer una petición bootp/dhcp, el servidor responderá con otro paquete, conteniendo la información que el kernel necesita para continuar. Los ítems relevantes en esta respuesta son:
Dirección IP asignada a la estación de trabajo ('ip=').
Máscara de subred de la red de área local ('sm=').
El directorio raíz a ser montado vía NFS ('rp=').
La puerta de enlace ('gw=').
El servidor de nombres ('ds=')
El nombre de host de la estación de trabajo (el valor del primer campo en la entrada bootp).
12) El directorio raíz será montado vía NFS. Este sistema de archivos será de sólo lectura. Hacemos esto porque podemos tener varias estaciones de trabajo montando el mismo sistema de archivos, y no queremos que ninguna de estas estaciones modifique los contenidos del mismo.
13) En este punto, el control será pasado del kernel al proceso init.
14) Init leerá /etc/inittab y empezará a configurar el ambiente.
15) Uno de los primeros ítems de inittab es el archivo rc.local, que correrá mientras la estación de trabajo está en el estado 'sysinit'.
16) El script en rc.local crerá un disco RAM de 1 MB que contendrá todas las cosas que necesitan ser escritas o modificadas de alguna manera.
17) Este disco RAM será montado en el directorio /tmp. Cualquier archivo que necesite ser escrito estará de hecho en el directorio /tmp, con un enlace simbólico apuntando hacia él. Por ejemplo, cuando una estación de trabajo está corriendo, tratará de modificar los permisos de el nodo /dev/tty0. Si este nodo existiera realmente en el directorio /dev, los permisos no se podrían modificar, debido a que el sistema de archivos es de sólo lectura. Por eso, hemos hecho enlaces simbólicos para todos los archivos que lo requerían y creado los archivos/nodos reales en /tmp, que es de lectura-escritura.
18) El directorio /proc es montado.
19) La interface de loopback es configurada.
20) Varios directorios son creados dentro de /tmp para que contengan algunos de los archivos transitorios que son necesarios mientras el sistema está corriendo. Son creados directorios como:
/tmp/compiled
/tmp/var
/tmp/var/run
/tmp/var/log
/tmp/var/lock
/tmp/var/lock/subsys
21) El archivo /etc/XF86Config es generado basado en las entradas de /tftpboot/lts/ltsroot/etc/lts.conf. Aquí es donde la información acerca del tipo de mouse, y otros parámetros para X son combinados para crear el archivo de configuración.
22) El script /tmp/start_ws es creado. Este script es responsable de iniciar el servidor X. Cuando este script inicia el servidor X, es dirigido para enviar peticiones XDMCP al servidor XDM. Esto funciona basado en la información encontrada en el archivo /tftpboot/lts/ltsroot/etc/lts.conf.
23) El archivo /tmp/syslog.conf es creado. Este archivo contiene información que le informa al demonio syslogd a qué host de la red le deberá enviar la información de log. Este host de syslog está especificado en el archivo lts.conf. Hay un enlace simbólico llamado /etc/syslog.conf que apunta a /tmp/syslog.conf.
24) El demonio syslogd se inicia, usando el archivo de configuración recientemente creado.
25) El control es pasado de vuelta a init. Init mirará en la entrara initdefault para saber a cuál runlevel entrar. En lts_core 2.08, el runlevel por defecto es 2.
26) El runlevel 2 hará que se ejecute el script set_runlevel, que leerá el archivo lts.conf para saber de hecho en qué modo correr la estación de trabajo.
27) Los niveles de corrida estándar de LTSP son 3, 4 y 5.
El nivel 3 iniciará en un shell en la estación de trabajo. Esto es útil para depurar.
El nivel 4 correrá una o más sesiones de telnet en el servidor. Esto es fantástico para remplazar viejas terminales seriales.
El nivel 5 entrará en el modo GUI, levantando X Window y haciendo una petición XDMCP al servidor, quien mandará una ventana de diálogo de inicio para permitir al usuario registrarse. Hace falta un Display Manager corriendo en el servidor, como XDM, GDM o KDM.
Una vez que el usuario ingresa, estará corriendo los procesos en el servidor. Esto significa que si se ejecuta xterm, estará corriendo remotamente y estará mostrando su salida en la estación de trabajo. Básicamente, ahora tenemos una estación X o una terminal Telnet.
9) Aplicaciones Locales versus aplicaciones Remotas.
En un ambiente LTSP tienes la opción de correr las aplicaciones localmente en la estación de trabajo o remotamente en el servidor.
Por lejos, la manera mas fácil de configurar un ambiente LTSP es corriendo las aplicaciones en el servidor, usando la CPU y la memoria de éste, mientras que muestra su salida en la estación de trabajo y usa su teclado y mouse.
Esta es una capacidad fundamental de X Window. La estación de trabajo funciona como una terminal X Window estándar.
Cuestiones acerca de la configuración para aplicaciones locales.
Configurar la habilidad para aplicaciones locales requiere de mucho más:
Mas demanda a la estación de trabajo. Se requiere mas RAM y un CPU mucho mas poderoso. 64 MB en la estación es un buen punto de partida.
NIS - Para correr las aplicaciones en la estación de trabajo, primero debes ingresar en ella. Esto requiere de alguna forma de autenticación de contraseña. NIS ha sido elegido como el método para autenticar a los usuarios a través de la red. Este documento explicará brevemente cómo configurar NIS en el servidor.
Directorios adicionales necesitan ser exportados vía NFS.
Inicio de aplicaciones más lento debido a que necesitan ser leídas vía NFS, causando un incremento de la actividad de la red. También, a raíz de que cada copia del programa está corriendo en cada CPU, no obtendrás la ventaja de Linux/Unix de compartir segmentos de código entre múltiples instancias del mismo programa, lo que reduciría el tiempo que toma iniciar un programa por sucesivas veces.
Beneficios de correr las aplicaciones localmente.
Reduce la carga total en el servidor. En redes largas con aplicaciones de uso intensivo de memoria como Netscape, correr las aplicaciones en las estaciones de trabajo puede proveer un mejor rendimiento, siempre y cuando la estación de trabajo sea capaz de manejar estas aplicaciones.
Los aplicaciones que se cierren solas (runaway) por errores no afectarán a los otros usuarios.
El soporte de sonido es mucho mas fácil de configurar cuando la aplicación que toca el sonido está corriendo en la estación de trabajo.
10) Configuración del servidor.
Hemos creado RPM's y TGZ's conteniendo todas las piezas que necesitas para configurar un sistema Linux como servidor.
Las distribuciones que tenemos el conocimiento que funcionan son:
Red Hat 6.0, 6.1, 6.2, 7.0 y 7.1.
Mandrake 7.2 y 8.0.
SuSE 6.2, 6.3, 6.4, 7.1 y 7.2 beta.
Debian 2.0, 2.1 y 2.2.
Caldera eDesktop v2.3, v2.4 y eServer v2.3.
Podría funcionar con otras distribuciones. Si quieres portar LTSP a otra distribución no comentada aquí, hay una guía de cómo hacerlo en el paquete lts_core. Por favor haznos saber si pudiste completar la portación.
Puedes bajarte todo el software de la página de download de LTSP (http://www.ltsp.org/download/index.html) o puedes usar el servidor FTP (ftp://ftp.ltsp.org/pub/download).
Paquetes disponibles para download.
lts_core-2.xx-xx.i386.rpm
Paquete armazón de LTS, que contiene el sistema de archivos raíz y las herramientas de configuración y la documentación para las estaciones de trabajo.
Kernel de Linux
Núcleos pre-compilados para inicio sin disco para muchas de las tarjetas de red disponibles.
Servidores X
Hay una larga lista de servidores X disponible para download del sitio ltsp.org.
Todos estos paquetes están disponibles en las páginas de download mencionadas en el punto anterior.
Planeando el esquema de direcciones IP.
Cada máquina de tu red necesita una dirección IP única. Hemos elegido una de las clase C reservadas, 192.168.0.0. Por supuesto, eres libre de elegir cualquier dirección que quieras.
Para el servidor, hemos elegido 192.168.0.254. y para las estaciones de trabajo, empezamos con 192.168.0.1 y trepamos desde ahí, lo que nos da la posibilidad de tener 253 estaciones de trabajo asociadas con un solo servidor. Si necesitas mas estaciones de trabajo que esas, puedes tanto configurar otra clase C en el servidor, quizás 192.168.1.254 y tener las demás estaciones de trabajo en el rango entre 192.168.1.1 y192.168.1.253, o bien puedes ir por una clase B y tendrás 65533 estaciones de trabajo corriendo en la misma red (¿suena muy bien eh?).
Hemos elegido los nombres de las estaciones de trabajo bien simples, empezando por ws001 y subiendo. Repetimos, eres libre de elegir cualquier nombre que quieras para la estación de trabajo. Solo asegúrate de que este nombre esté en /etc/hosts o en un DNS.
Actualizando el paquete xfs.
Por defecto, el servidor de fuentes X (XFS) NO es usado con LTSP. Si quieres usarlo, deberías leer esta sección. Si no, puedes salteártela.
Como la versión 1.01 de LTS, el modo por defecto es NO usar xfs. Las siguientes instrucciones son sólo requeridas si eliges activar el parámetro 'USE_XFS' en el archivo /tftpboot/lts/ltsroot/etc/lts.conf con 'Y'.
La versión de xfs que viene con Red Hat 6.0 no maneja estaciones de trabajo remotas. Hay un xfs actualizado que puedes bajar tanto del sitio de Red Hat como del de LTSP. Sólo necesitas XFree86-xfs-3.3.3.1-52.i386.rpm o mayor. Si estás corriendo Red Hat 6.1 o mayor en el servidor, no tienes que preocuparte por el paquete XFS, ya que puede manejar fuentes para estaciones remotas. Sin embargo, tendrás que cambiar el script de inicio y el archivo XF86Config en el servidor.
La línea de comando que necesitas para actualizar xfs es:
# rpm-U Xfree86-xfs-3.3.3.1-52.i386.rpm
Una vez que instalaste la actualización, necesitarás modificar el script de inicio para que le sirva fuentes a estaciones remotas. El archivo a editar es /etc/rc.d/init.d/xfs. Hay dos líneas que deben ser modificadas. Los cambios que hagas al script de inicio dependen de qué versión de Red Hat estés corriendo en el servidor.
Red Hat 6.0
Busca las líneas que empiecen con daemon --check xfs su xfs -c \"xfs -port -1\" -s /bin/sh. Hay dos de ellas, una está alrededor de la línea 22 y la otra cerca de la 41.
Cambia las líneas para leer:
daemon --check xfs su xfs -c \"xfs -port 7100\" -s /bin/sh
NOTA: Asegúrate de cambiar el "-1" por "7100" (SIN el signo menos '-' ).
Red Hat 6.1 & 6.2
Busca las líneas que comiencen con daemon xfs -droppriv -daemon -port -1. Hay dos de ellas, una está alrededor de la línea 22 (53 en RH 6.2) y la otra cerca de la línea 41 (73 en RH 6.2).
Cambia las líneas para leer:
daemon xfs -droppriv -daemon -port 7100
NOTA: Asegúrate de cambiar el "-1" por "7100" (SIN el signo menos '-' ).
El cambio arriba mencionado permitirá al demonio XFS servir fuentes a estaciones remotas. Un cambio DEBES hacer ahora al archivo /etc/X11/XF86Config.
Busca la línea que dice:
FontPath "unix/:-1"
Y cámbiala por:
FontPath "tcp/localhost:7100"
Esto es, cambia el 'unix' por 'tcp' y el ':-1' por 'localhost:7100'.
Instalación de bootpd (opcional).
Si estás usando BOOTP en lugar e DHCP, entonces necesitarás bajarte el paquete bootpd. Red Hat no incluye bootpd en su CD de distribución a partir de 6.0, por lo que tendrás que obtenerlo de una versión anterior, bajándotelo de Red Hat, o bien del sitio ftp://ftp.ltsp.org.
El comando para instalar el paquete bootp es:
# rpm -i bootp-2.4.3-7.i386.rpm
Esto instalará el demonio bootp en un archivo de configuración de ejemplo.
Instalación de DHCP.
Necesitarás asegurarte de que el servidor DHCP esté instalado en el servidor. Puedes verificar esto corriendo el siguiente comando:
# rpm -qa | grep dhcp
Debería mostrarte una línea como esta:
# dhcp-2.0-5
Si no lo hace, entonces necesitas instalar el rpm de DHCP del CD de Red Hat.
La rutina de instalación de DHCP de Red Hat falla al crear el archivo dhcpd.leases, por lo que necesitas crearlo por tí mismo. El comando:
# > /var/state/dhcp/dhcpd.leases
creará un archivo vacío.
Instalación de paquete lts_core por primera vez.
Bájate el paquete lts_core-2.xx-xx.i386.rpm e instálalo usando el siguiente comando:
# rpm -i lts_core-2.xx-xx.i386.rpm
Esto instalará el paquete lts_core, y también levantará el directorio /tftpboot/lts, que contiene la jerarquía básica de directorios que será montada como sistema de archivos raíz en la estación de trabajo. También modificará varios archivos. Mira la sección "Asuntos de Seguridad" arriba mencionada para obtener la lista de archivos que modificará.
Corre el script de instalación ltsp_initialize:
# cd /tftpboot/lts/templates
# ./ltsp_initialize
Esto realizará todos los cambios necesarios en los archivos de configuración.
Actualización del paquete lts_core desde una versión anterior
Si estás actualizando desde una versión anterior de ltsp, tu directorio /tftpboot/lts/ltsroot será salvado renombrándolo y agregándole un número al final del nombre.
Por ejemplo, si es la primera vez que actualizas, entonces /tftpboot/lts/ltsroot se convertirá en /tftpboot/lts/ltsroot.1 y un nuevo directorio /tftpboot/lts/ltsroot será creado.
Luego de bajar lts_core-2.xx-xx.i386.rpm, puedes actualizar usando el siguiente comando:
# rpm -U lts_core-2.xx-xx.i386.rpm
Esto guardará la configuración existente mediante una copia de seguridad de todos los archivos del sistema que actualiza.
Elige el kernel apropiado.
Cuando una estación de trabajo inicia, obtiene un kernel del servidor y lo carga en su memoria. Este kernel necesita estar configurado específicamente para un inicio desde red, y requiere tener el controlador de tarjeta de red apropiado incorporado al mismo. No es capaz de cargar un módulo de tarjeta NIC en este punto. Por eso hemos preparado algunos kernels que están listos para usar, por lo que sólo tienes que elegir el correcto para tu tarjeta e instalarlo.
Varios kernels de Linux están disponibles en nuestro sitio web y ftp. Están pre-configurados para tarjetas de red específicas y están disponibles tanto en formato RPM como TGZ. Los núcleos disponibles son:
lts_kernel_ne2000-2.2-0.i386.rpm
lts_kernel_rtl8139-2.2-0.i386.rpm
lts_kernel_eepro100-2.2-0.i386.rpm
lts_kernel_3c509_2.2-0.i386.rpm
lts_kernel_3c905_2.2-0.i386.rpm
lts_kernel_tulip-2.2-0.i385.rpm
lts_kernel_all-2.2-0.i386.rpm
Por ejemplo, para instalar un kernel Linux con soporte para tarjeta de red NE2000, haz lo siguiente:
# rpm -i lts_kernel_ne2000-2.2-0.i386.rpm
Esto pondrá al núcleo vmlinuz.ne2000 en el directorio /tftpboot/lts. Puedes instalar otros kernels de la misma manera.
También puedes crear el tuyo propio. Cuando estás seteando los parámentros de configuración, DEBES asegurarte de especificar lo siguiente (Nota del Traductor: algunos ítems están en inglés para facilitar su búsqueda):
Soporte para tu tarjeta de red específica.
RAM disk support (soporte para disco RAM).
IP kernel level autoconfiguration (autoconfiguración de kernel a nivel IP).
BOOTP support (soporte BOOTP).
/proc filesystem support (soporte para el sistema de archivos /proc).
NFS filesystem support (soporte para el sistema de archivos NFS).
Root filesystem on NFS (sistema de archivos raíz en NFS).
Support for parallel and/or serial ports for printers (soporte para puertos paralelos y/o seriales para impresoras).
Una vez que el núcleo fue construído, debe convertirse en un formato de imagen etiquetada, usando el comando mknbi-linux que viene con el paquete Etherboot.
# mknbi-linux --output=/tmp/vmlinuz.ne2000 \
--ipaddrs=rom \
--rootdir=/tftpboot/lts/ltsroot \
--append="ramdisk_size=1024" \
/usr/src/linux/arch/i386/boot/bzImage
Luego este kernel necesita ser colocado en el directorio /tftpboot/lts.
Elige el servidor X.
Necesitarás elegir el servidor X que es compatible con tu tarjeta de video. El servidor XF86_SVGA funciona con la mayoría de los chips de video, pero puedes obtener un mayor rendimiento usando el servidor hecho específicamente para tu placa.
Puedes bajar uno de los servidores X desde ftp://ftp.ltsp.org y automáticamente se instalará en el lugar apropiado.
Tenemos paquetes tanto en formato RPM como en TGZ en nuestro sitio ftp. Archivos como lts_xmach64-2.0-i.i386.rpm y lts_xsvga-2.0-0.i386.rpm pueden ser bajados e instalados.
Por ejemplo, para instalar el servidor X para SVGA haz lo siguiente:
# rpm -i lts_xsvga-2.0-0.i386.rpm
Esto pondrá el servidor XF86_SVGA en el directorio /tftpboot/lts/ltsroot/ltsbin.
11) Edición de los archivos de configuración.
La instalación del paquete lts_core agregará entradas en varios archivos de configuración, pero estas entradas pueden requerir ser modificadas para ajustarse a tus necesidades.
Inetd
Con el tiempo, las distribuciones se han movido para el lado de xinetd en lugar de inetd. Xinetd clama ser más seguro y capaz de manejar mayores cargas que su predecesor. De todos modos, tftpd necesita ser habilitado.
Xinetd /etc/xinetd.d/tftp
Por defecto, tftp está deshabilitado. Como parte de la instalación de LTSP, el servicio tftp será dado de alta.
Inetd
/etc/inetd.conf
Por defecto, las líneas en el archivo inetd.conf para los servicios bootp y tftp están comentados (#). El proceso de instalación de LTSP procederá a des-comentar la línea del demonio tftp, pero NO des-comentará la de bootps. Si estás corriendo bootp, necesitarás des-comentar esta línea manualmente:
#
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
#bootps dgram udp wait root /usr/sbin/tcpd bootpd
#
/etc/X11/xdm/Xservers
Si ya estás corriendo el servidor en el runlevel 5, entonces ya estás obteniendo la pantalla de login gráfica cuando inicias la máquina. En este caso, el script de instalación dejará al archivo Xservers como estaba. Si estás corriendo el servidor en el runlevel 3, entonces el script de instalación modificará el archivo Xservers comentando (#) la entrada para la consola. Esto se hace para que la consola no cambie automáticamente al modo gráfico inesperadamente, cuando el script de instalación cambie el runlevel por defecto a 5. De este modo, si quieres correr el servidor en modo gráfico, puedes hacerlo mediando el comando startx o bien des-comentando la línea en el archivo Xservers.
/etc/X11/xdm/Xaccess
Este archivo controla si una estación remota se puede comunicar con el Display Manager (xdm en este caso) en el servidor. El script de instalación descomentará el comodín para habilitar a cualquier estación de trabajo para tener una pantalla de login.
La línea modificada luce así:
* # any host can get a login window.
/etc/X11/xdm/xdm-config (¡sólo Red Hat 6.2, 7.0 y Mandrake 7.2!)
Por defecto, hay una línea que debe ser removida (o comentada).
El script de instalación se encargará de comentar esta línea por ti.
La línea a ser comentada se ve como:
DisplayManager.requestPort: 0
/etc/inittab
El servidor necesita tener xdm corriendo. Éste es iniciado usualmente desde el archivo /etc/inittab. Hay múltiples Display Managers disponibles. La mayoría de los sistemas incluyen XDM, GDM y KDM. Eres libre de elegir el que más te guste.
El script de instalación configurará por tí el Display Manager, y cambiará el runlevel por defecto a 5.
La línea initdefault es la modificada. Se verá como:
id:5:initdefault:
Indicando que el servidor entrará al runlevel 5 cuando se inicie.
/etc/bootptab
Si no estás usando bootp, entonces puedes saltearte este ítem.
Cuando instalas el paquete lts_core, le agrega las siguientes entradas al archivo /etc/bootptab:
## LTS-begin ################################################
.ltsp:\
:ht=ethernet:\
:ds=192.168.0.254:\
:gw=192.168.0.254:\
:lg=192.168.0.254:\
:sm=255.255.255.0:\
:hn:\
:hd=/tftpboot/lts:\
:rp=/tftpboot/lts/ltsroot:
#
# The following is an example of a line needed for a workstation
# (El siguiente es un ejemplo de una línea necesaria para una
# estación de trabajo).
#
# ws001:tc=.ltsp:ha=AABBCCDDEEFF:bf=vmlinuz.ne2000:ip=192.168.0.1:
# LTS-end #####################################################
Necesitas crear una línea de estas para cada estación de trabajo. Puede usar el ejemplo (la línea que está comentada) para ayudarte con las líneas que quieras agregar.
Necesitarás llenar la entrada ha= con la dirección MAC de tu placa de red, la entrada bf= con el nombre del kernel que quieres que cargue la estación de trabajo, y la entrada ip= con la dirección IP que deseas asignarle a la estación.
Además, si estás usando una clase C diferente a la192.168.0.0 dada por defecto, entonces necesitarás cambiar las entradas ip, ds, gw y lg.
/etc/dhcpd.conf
Un ejemplo del archivo dhcpd.conf es instalado como parte de la instalación de LTSP. Este archivo es llamado /etc/dhcpd.conf.example. Puede ser copiado o renombrado a /etc/dhcpd.conf y dhcpd puede ser iniciado.
El archivo luce como:
default-lease-time 21600;
max-lease-time 21600;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
option domain-name "ltsp.org";
option netbios-name-servers 192.168.0.254;
shared-network WORKSTATIONS {
subnet 192.168.0.0 netmask 255.255.255.0 {
}
}
group {
use-host-decl-name on;
option log-servers 192.168.0.254;
host ws001 {
hardware ethernet 00:80:C8:D9:31:C1;
fixed-address 192.168.0.1;
filename "/tftpboot/lts/vmlinuz.ne2000"
}
host ws002 {
hardware ethernet 00:E0:18:E8:0C:09;
fixed -address 192.168.0.2;
filename "tftpboot/lts/vmlinuz.eepro100"
}
}
Si tu servidor tiene más de una dirección IP, entonces necesitarás crear entradas de subnet adicionales en el archivo dhcpd.conf. Puedes usar la entrada de ejemplo subnet 192.168.0.0 como ayuda.
/etc/hosts
Una vez que has agregado a la estación de trabajo en el archivo bootptab o dhcpd.conf, asegúrate de agregar la dirección IP y el nombre de la estación de trabajo en el archivo /etc/hosts o en tus tablas de DNS del servidor. En este último caso el DNS DEBE ser capaz de resolver direcciones IP a nombre.
/etc/hosts.allow
El script de instalación de LTSP agregará algunas entradas en el archivo /etc/hosts.allow para permitir que bootpd, tftp y el portmapper funcionen correctamente.
Las entradas que se agregan lucen como:
bootpd: 0.0.0.0
in.tftpd: 192.168.0.
portmap: 192.168.0.
Estas entradas asumen que estás usando una de las clase C reservadas 192.168.0.0. Si estás utilizando una diferente substitúyela acordemente.
/etc/exports
La entrada por defecto que es puesta dentro de este archivo debería esta bien a menos que estés utilizando una clase C difente a la 192.168.0.0. Si lo estás, entonces necesitas modificar este archivo. La entrada por defecto luce así:
## LTS-begin
#
# Las entradas agregadas entre el 'LTS-begin' y el 'LTS-end' fueron
# agregadas el: Dom Ago 23:30:29 EDT 2000 por el script de instalación.
# Para mas información, visita la página principal en http://www.ltsp.org
#
/tftpboot/lts/ltsroot 192.168.0.0/255.255.255.0 (ro,no_root_squash)
#
# Las siguientes entradas necesitan ser descomentadas si quieres tener
# soporte para aplicaciones locales en ltsp.
#
# /usr 192.168.0.0/255.255.255.0(ro,no_root_squash)
# /bin 192.168.0.0/255.255.255.0(ro,no_root_squash)
# /sbin 192.168.0.0/255.255.255.0(ro,no_root_squash)
# /lib 192.168.0.0/255.255.255.0(ro,no_root_squash)
# /home 192.168.0.0/255.255.255.0(rw,no_root_squash)
## LTS-end ##
Si quieres correr aplicaciones locales (mira 'Aplicaciones Locales') entonces tienes que des-comentar las entradas de los directorios adicionales a /tftpboot/lts/ltsroot.
/etc/rc.d/init.d/syslog
El script de instalación de LTSP modificará el script de inicio /etc/rc.d/init.d/syslog por ti, para habilitar a estaciones de trabajo remotas enviar sus mensajes de sistema al servidor.
La línea a modificar luce así:
daemon syslogd -m 0 -r
/tftpboot/lts/ltsroot/etc/lts.conf
Este es el archivo de configuración para las estaciones de trabajo. La mayoría de los parámetros configurables para las estaciones pueden ser indicados aquí.
Este archivo está dividido en secciones, cada sección representa una estación de trabajo, y además a una sección por defecto (Default).
Las cabeceras de cada sección contienen los nombres de cada estación de trabajo o Default, rodeados por corchetes ( [ ] ). Si todas las estaciones de trabajo son idénticas, entonces puedes configurar todo mediante la sección Default simplemente.
Ejemplo de /tftpboot/lts/ltsroot/etc/lts.conf:
[Default]
XSERVER = XF86_XVGA
SERVER = 192.168.0.254
X_MOUSE_PROTOCOL = "PS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
USE_XFS = N
UI_MODE = GUI
[ws001]
XSERVER = XF86_SVGA
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS1"
X_MOUSE_RESOLUTION = 50
X_MOUSE_BUTTONS = 3
X_MUSE_BAUD = 1200
[ws002]
XSERVER = XF86_Mach4
[ws003]
XSERVER = XF86_SVGA
X_COLOR_DEPTH = 24
USE_XFS = N
[ws004]
UI_MODE = CHAR
12) Parámetros de lts.conf disponibles.
Parámetros generales:
SERVER
Este es el servidor que es usado por XDM_SERVER, TELNET_HOST, XFS_SERVER y SYSLOG_HOST, si alguno de los mencionados no está especificado explícitamente. Si tienes una máquina que está actuando como el servidor de todo, entonces puedes especificar la dirección IP solamente aquí y omitir el resto. Si ningún valor es elegido, se toma por defecto 192.168.0.254
SYSLOG_HOST
Si quieres enviar los mensajes de sistema a una máquina distinta al servidor por defecto, entonces puedes especificar dicha máquina aquí. Si ningún parámetro es especificado se utilizará la entrada de SERVER.
UI_MODE
Esta opción determinará cómo correrá X Window. Las opciones disponibles son:
GUI : corre X Window en la estación de trabajo.
CHAR: realiza una sesión de telnet con el TELNET_HOST.
SHELL: Corre un shell en la estación de trabajo. Útil para depuración.
TELNET_HOST
Si la estación de trabajo es configurada para tener una interface basada en caracteres, entonces el valor de este parámetro será usado como el host donde se haga la sesión de telnet. Si ningún valor es especificado se utilizará la entrada de SERVER.
DNS_SERVER
Usada para crear el archivo resolv.conf
SEARCH_DOMAIN
Usada para crear el archivo resolv.conf
MODULE_01 a MODULE_10
Hasta 10 módulos de kernel pueden ser cargados mediante estas entradas. Puedes especificar la línea de comando que usarías cuando usas indmod. Por ejemplo:
MODULE_01 = agpgart.o
MODULE_02 = uart401.o
MODULE_03 = sb.o io=0x220 irq=5 dma=1
MODULE_04 = opl3.o
RAMDISK_SIZE
Cuando la estación de trabajo se inicia, crea un disco RAM y monta en él el directorio /tmp. Puedes controlar el tamaño de este sistema de archivos con este parámetro. Debes especificar las unidades en kilobytes (1024 bytes). Por ejemplo para crear un disco RAM de 2 MB debes especificar RAMDISK_SIZE=2048.
Si cambias el tamaño del disco RAM aquí, también debes hacerlo dentro del kernel. Esto lo puedes hacer compilándolo o bien, si estás usando Etherboot o Netboot, poniéndolo como argumento cuando etiquetas el kernel con mknbi-linux.
El valor por defecto es 1024 (1 MB).
RUNLEVEL
El runlevel determina el modo en el cual la estación de trabajo estará corriendo. Los siguientes runlevels son los soportados:
3 : Iniciará un shell. Útil para depuración de la estación de trabajo.
4 : Esto correrá una o más sesiones de telnet en el TELNET_HOST. Esto es genial para reemplazar viejas terminales seriales.
5 : Modo GUI. Arrancará X Window, y enviará una petición XDMCP al servidor, quien devolverá una pantalla de login a la terminal. Se necesita tener un Display Manager corriendo en el servidor, como XDM, GDM o KDM.
TELNET_SESSIONS
Indica cuántas sesiones de telnet correr. Cada sesión estará en una diferente pantalla virtual, a las que se puede acceder con las teclas ALT-F1 a ALT-F9. El valor por defecto es 2.
Parámetros de X-Windows:
XDM_SERVER
Si quieres apuntar XDM hacia una máquina que no sea tu servidor por defecto, entonces debes especificarlo aquí. Si este parámetro NO es especificado, entonces se usará la entrada en SERVER.
XSERVER
Esta entrada define cuál servidor X la estación de trabajo correrá. Los valores posibles incluyen XF86_SVGA y XF86_Mach64. Cualquier otro servidor X debería funcionar, mientras esté instaldo en el directorio /tftpboot/lts/ltsroot/ltsbin. El valor por defecto es XF86_SVGA.
X_MOUSE_PROTOCOL
Cualquier valor que funcione con el Protocolo de Puntero XFree86 puede ser puesto aquí. Los valores típicos incluyen "Microsoft" y "PS/2". El valor por defecto es "PS/2".
X_MOUSE_DEVICE
Este es el dispositivo al cual el mouse está conectado. Si es un mouse serial, debería ser un puerto serie, como /dev/ttyS0 o /dev/ttyS1. Si es un mouse PS/2, este valor debería ser /dev/psaux. El valor por defecto es /dev/psaux.
X_MOUSE_RESOLUTION
Este es el valor 'Resolution' que encuentras en cualquier archivo XF86Config. Un valor típico para un mouse serial es 50 y para uno PS/2 es 400. El valor por defecto es 400.
X_BUTTONS
Le dice la sistema cuántos botones tiene el mouse. Usualmente son 2 o 3. El valor por defecto es 3.
X_MOUSE_BAUD
Para ratones seriales, define la tasa de baudios. El valor por defecto es 1200.
X_COLOR_DEPTH
Este es el número de bits a utilizar para la profundidad del color. Los valores posibles son 8, 15, 16, 24 y 32. 8 bits te dará 256 colores, 16 te dará 65536, 24 te dará 16 millones y 32 te dará 4,2 billones de colores. No todos los servidores X soportan estos valores. El valor por defecto es 16.
USE_XFS
Tienes la opción de correr un Servidor de Fuentes X (XFS, X Font Server) o bien leer las fuentes vía NFS. El servidor de fuentes debería proveer un camino simple para mantener todas las fuentes en un solo lugar, pero hay algunos problemas cuando el número de estaciones de trabajo supera las 40. Los 2 valores en esta opción son Y o N. El valor por defecto es N. Si sí quieres usar un Servidor de Fuentes, entonces debes usar la entrada XFS_SERVER para especificar su dirección IP.
XFS_SERVER
Si estás usando un Servidor de Fuentes, debes especificar su dirección IP aquí. Si no está especificado, entonces se usará por defecto la entrada especificada en SERVER.
X_HORZSYNC
Setea la sincronización horizontal del monitor. El valor por defecto es"31-62".
X_VERTREFRESH
Setea el refresco vertical del monitor. Por defecto es "55-90".
X_MODE_1024X768
Este parámetro configura la entrada Modeline del archivo XF86Config para la resolución de 1024x768. Ya hay un valor por defecto para 1024x768, 800x600 y 640x480. Si seteas cualquieras de las entradas X_MODE entonces los 3 valores por defecto NO serán usados y solamente las entradas explícitas aquí tendrán valor.
Abajo hay un ejemplo de una entrada X_MODE_1024x768:
X_MODE_1024x768 = "75.00 1024 1048 1184 1328 768 771 777 806 -hsync \ -vsync"
X_MODE_800x600
Indica la entrada Modeline para la resolución de 800 x 600. Mira la nota en 1024 x 768 para obtener una explicación de los valores por defecto.
X_MODE_640x480
Indica la entrada Modeline para la resolución de 640 x 480. Mira la nota en 1024 x 768 para obtener una explicación de los valores por defecto.
XF86CONFIG_FILE
Si quieres crear tu propio archivo de configuración XF86Config, lo puedes hacer. Sólo tienes que colocarlo en el directorio /tftpboot/lts/ltsroot/etc. Luego, cualquiera sea el nombre que le pongas, debes entrar dicho nombre en este parámetro. Por ejemplo:
XF86CONFIG_FILE = XF86Config.ws004
Parámetros para pantallas táctiles:
USE_TOUCH
Si estás conectando una pantalla táctil a la estación de trabajo, puedes habilitarla mediante esta entrada, colocando Y. Una vez hecho esto, deberás configurar algunos aspectos más detallados a continuación. El valor por defecto es N.
X_TOUCH_DEVICE
Una pantalla táctil funciona como un mouse y usualmente se conecta a un ordenador mediante el puerto serie. Puedes especificar cuál puerto serie en esta entrada. Por ejemplo, podrías poner algo tipo /dev/ttyS0. No hay valor por defecto aquí.
X_TOUCH_MINX
Valor de calibración para una pantalla táctil Elo Touch. El valor por defecto es 433.
X_TOUCH_MAXX
Valor de calibración para una pantalla táctil Elo Touch. El valor por defecto es 3588.
X_TOUCH_MINY
Valor de calibración para una pantalla táctil Elo Touch. El valor por defecto es 569.
X_TOUCH_MAXY
Valor de calibración para una pantalla táctil Elo Touch. El valor por defecto es 3526.
X_TOUCH_UNDELAY
Valor de calibración para una pantalla táctil Elo Touch. El valor por defecto es 10.
X_TOUCH_RPTDELAY
Valor de calibración para una pantalla táctil Elo Touch. El valor por defecto es 10.
Parámetros para aplicaciones locales:
LOCAL_APPS
Si quieres usar la opción de correr las aplicaciones localmente en la estación de trabajo, entonces debes poner Y aquí. Varios pasos adicionales deben llevarse a cabo para que las aplicaciones locales funcionen. Mira la sección 'Aplicaciones Locales' para mayor información. El valor por defecto es N.
LOCAL_WM
Si habilitaste las Aplicaciones Locales, entonces tienes la opción de elegir dónde vas a correr el Window Manager, o Gestor de Ventanas. Si colocas Y en esta opción, entonces el Window Manager correrá en la estación de trabajo. Si por el contrario colocas N, lo hará en el servidor. Configurar Aplcaciones Locales es mucho más fácil si también estás corriendo el gestor de ventanas localmente, ya que, por defecto, cualquier programa que lances desde un gestor de ventanas local también correrá localmente. El valor por defecto es Y.
NIS_DOMAIN
Si habilitaste Aplicaciones Locales, necesitarás un servidor NIS en la red. La entrada NIS_DOMAIN indica dónde está dicho servidor. Necesita concordar con el nombre de dominio NIS configurado en el servidor NIS. Esto NO es lo mismo que un dominio de Internet. El valor por defecto es ltsp.
NIS_SERVER
Coloca aquí la dirección IP del servidor NIS si es que no quieres que se envíe una petición de broadcast preguntando por el mismo.
Parámetros del teclado.
Todos los archivos para soporte de teclado internacional están ahora dentro de la jerarquía del directorio ltsroot, por lo que configurar teclado internacional es sólo una cuestión de configurar XFree86. Varios parámetros de configuración están disponibles para hacer esto posible.
XkbTypes
El valor por defecto aquí es la palabra default.
XkbCompat
El valor por defecto aquí es la palabra default.
XkbSymbols
El valor por defecto es us(pc101).
XkbModel
El valor por defecto es pc101.
XkbLayout
El valor por defecto es us.
Los valores arriba mencionados fueron tomados de la documentación de XFree86. Cualquier cosa válida para XFree86 es válida para estos parámetros.
Nos gustaría agregar documentación que muestre qué valores son necesarios para cada tipo de teclado internacional. Si trabajas con esto y puedes configurar tu teclado exitosamente, entonces escríbele al grupo ltsp y te será apreciado.
Parámetros para la configuración de la impresora:
Hasta tres impresoras pueden ser conectadas a una estación de trabajo sin disco. Una combinación de impresoras paralelas o seriales puede ser configurada mediante las siguientes entradas en el archivo lts.conf:
PRINTER_0_DEVICE
El nombre del puerto de la primera impresora. Nombres como /dev/lp0, /dev/ttyS0, o /dev/ttyS1 están permitidos.
PRINTER_0_TYPE
El tipo de impresora conectada. Los valores posibles son P para paralela o S para serial.
PRINTER_0_PORT
El puerto TCP/IP a usar. Por defecto, es 9100.
PRINTER_0_SPEED
Si la impresora es serial, este esta es la variable que seleccionará la tasa de baudios. Por defecto se usará 9600.
PRINTER_0_FLOWCTRL
Para impresoras seriales, el control de flujo puede ser especificado. Se puede poner tanto S para contrlar por Software (XON/XOFF) como H para hacerlo por hardware (CTS/RTS). Si ningún valor es especificado, se usará S.
PRINTER_0_PARITY
Para impresoras seriales, la Paridad puede ser especificada. Las opciones son: E-Even, O- Odd o N-None. El valor por defecto es N.
PRINTER_0_DATABITS
Para impresoras seriales, el número de data bits puede ser especificado. Las opciones son 5, 6, 7 y 8. El valor por defecto es 8.
PRINTER_1_DEVICE
Puerto de la segunda impresora.
PRINTER_1_TYPE
Tipo de la segunda impresora.
PRINTER_1_PORT
Puerto TCP/IP de la segunda impresora.
PRINTER_1_SPEED
Tasa de baudios de la segunda impresora (serial).
PRINTER_1_FLOWCTRL
Control de flujo de la segunda impresora (serial).
PRINTER_1_PARITY
Paridad de la segunda impresora (serial).
PRINTER_1_DATABITS
Data bits de la segunda impresora (serial).
PRINTER_2_DEVICE
Puerto de la tercera impresora.
PRINTER_2_TYPE
Tipo de la tercera impresora.
PRINTER_2_PORT
Puerto TCP/IP de la tercera impresora.
PRINTER_2_SPEED
Tasa de baudios de la tercera impresora (serial).
PRINTER_2_FLOWCTRL
Control de flujo de la tercera impresora (serial).
PRINTER_2_PARITY
Paridad de la tercera impresora (serial).
PRINTER_2_DATABITS
Data bits de la tercera impresora (serial).
Comentarios
Los comentarios comienzan con el signo numeral (#) y son válidos hasta el final de la línea.
13) Configuración del servidor para Aplicaciones Locales.
Varios cambios adicionales deben hacerse en el servidor para proveerle la habilidad de correr las aplicaciones en las estaciones de trabajo.
Sistema de Información de Red - NIS
NIS es un sistema muy complejo de administrar, y este documento no tiene la intención de explicarlo en profundidad. Para una referencia mas completa, hay un libro de O'Reilly disponible titulado Managing NFS and NIS (Gerenciando NFS y NIS). Puedes fijarte en la lista de referencias al final de este documento para obtener mayor información acerca de este libro.
También hay un muy buen HOWTO en el LDP (Linux Documentation Project) titulado The Linux NIS(YP)/NYS/NIS+ HOWTO. Puedes remitirte a la lista de referencias al final de este documento para obtener la URL.
Hay unas pocas cosas que se pueden hacer para tener NIS listo para usar con LTSP.
1) Desactiva las palabras sombreadas. El NIS HOWTO explica el por qué. Si tu archivo /etc/passwd tiene un asterisco o una cruz en el segundo campo, entonces tienes las palabras sombreadas activadas. Para desactivarlas puedes utilizar el comando:
# pwunconv
Edita el archivo Makefile de yp.
Dentro de /var/yp busca el archivo Makefile y edita lo siguiente:
Busca MERGE_PASSWD, cerca de la línea 34. Cambia el valor a false.
Busca MERGE_GROUP, cerca de la línea 38. Cambia el valor a false.
Busca la línea que comienza con all, cerca de la línea 96. Comenta la entrada netgrp colocando un numeral (#) frente a la palabra.
Inicia ypserv mediante el comando:
# /etc/rc.d/init.d/ypserv start
Deberías también correr ntsysv para así iniciar el servicio cada vez que inicias el
servidor.
Define el dominio NIS para así poder correr ypinit:
# domainname ltsp
Inicializa NIS mediante ypinit:
# /usr/lib/yp/ypinit -m
A esta altura, NIS ya debería estar listo y funcionando.
/tftpboot/lts/ltsroot/etc/lts.conf
Los siguientes parámetros necesitan estar en el archivo lts.conf:
LOCAL_APPS = Y
LOCAL_WM = Y
Esto habilitará a la estación de trabajo para que corra aplicaciones locales.
Preparación de la estación de trabajo.
La estación de trabajo necesita una tarjeta de red con una bootrom (memoria ROM de inicio).
Si tienes acceso a una grabadora de eprom, entonces puedes bajarte la imagen a grabar en el sitio Rom-O-Matic en http://www.rom-o-matic.net. Esta imagen está basada en el proyecto Etherboot, y el código fuente está disponible en http://etherboot.sourceforge.net si quieres compilar la imagen por tí mismo.
Otra alternativa es bajar la imagen de inicio y copiarla en un diskette. Las imágenes están disponibles en el sitio http://www.rom-o-matic.net. Si eliges Floppy Bootable Rom Image, generará una imagen que puedes escribir en el diskette con los comandos dd o cat.
Primero probará por la tarjeta de red y luego iniciará el proceso de inicio como si el código hubiera venido de una eprom desde la misma placa de red. Esto es muy útil para experimentación.
Por ejemplo, si tienes una 3Com 509, el comando para copiar la imagen al diskette es:
# cat eb-5.0.1-3c509.lzdsk > /dev/fd0
Esto pondrá a los archivos en el primer sector del diskette.
También puedes comprar bootroms, tarjetas de red con bootroms, o directamente estaciones de trabajo sin disco completas de Diskless Workstations.com (http://www.disklessworkstations.com) o en LinuxCentral.com.
Reiniciando los demonios.
Luego de crear y/o modificar los archivos de configuración, varios demonios necesitan ser reiniciados, para que los cambios puedan tener efecto. Puedes reiniciar cada uno de ellos individualmente, o bien simplemente reiniciar el sistema.
NFS
# exportfs -ra
bootpd
# killall -q -HUP bootpd
syslogd
# /etc/rc.d/init.d/syslog restart
inetd
# killall -HUP inetd
xinetd
# killall -USRl xinetd
dhcpd
# /etc/rc.d/init.d/dhcpd restart
xfs
Detiene al demonio mediante el comando:
# /etc/rc.d/init.d/xfs stop
Y luego inicialo con:
# /etc/rc.d/init.d/xfs start
Por alguna razón, 'xfs restart' no funciona correctamente. Es por eso que primero debemos detener al demonio, y luego reiniciarlo nuevamente.
Especificaciones de hardware particulares.
Sistemas basados en Intel i810.
Para correr X Window en una estación de trabajo basada en i810 necesitas que el módulo agpgart.o esté cargado en la estación. Este módulo está incluido en el paquete ltsp_core. Puede ser cargado en una estación de trabajo agregando la siguiente entrada al archivo lts.conf:
[ws001]
MODULE_01 = agpgart.o
Probando.
Reinicia el servidor luego de haber realizado todos los cambios arriba mencionados. Luego, sólo enciende la estación de trabajo y deberías verla haciendo una petición en la red para obtener su información IP. Luego, se debería ver una transferencia tftp del kernel para que luego comience a correrlo. Después de esto debería venir X-Window y por último una ventana de login debería aparecer.
Si algo falla en el camino vuelve atrás en la configuración y verifica dos veces cada paso. Si aún así estás teniendo problemas, puedes unirte a las listas de correo de discusión del LTSP, disponibles en http://www.ltsp.org/mailinglists.html.
14) Afinando el servidor.
Una vez que tienes al servidor y a las estaciones de trabajo funcionando, y empieces a incrementar el tamaño de la red, puedes necesitar algunos ajustes para afinar el funcionamiento del servidor.
Los siguientes ítems pueden ser tenidos en cuenta:
Número máximo de archivos que pueden ser abiertos en el servidor.
Por defecto, el número máximo de archivos que pueden ser abiertos simultáneamente está fijado en 4096. Puedes chequear cuál es la cantidad máxima en tu sistema con el siguiente comando:
# cat /proc/sys/fs/file-max
Esto te reportará cuál es el límite. Puedes cambiarlo concatenando un nuevo valor en este archivo, así:
# echo 8192 > /proc/sys/fs/file-max
Esto cambiará el límite inmediatamente. Reiniciar el servidor NO es necesario.
Deberías poner este comando en el archivo /etc/rc.d/rc.local si es que quieres que estos cambios tomen efecto cada vez que reinicies el servidor.
Número máximo de inodos que pueden ser abiertos en el servidor.
Por defecto, el número máximo de inodos abiertos simultáneamente es 16384. Pueden chequear cuál es el número máximo en tu sistema con el comando:
# cat /proc/sys/fs/inode-max
Esto te reportará cuál es el límite. Puedes cambiar el límite concatenando un nuevo valor dentro de dicho archivo, de este modo:
# echo 32768 > /proc/sys/fs/inode-max
Esto cambiará el límite inmediatamente. Reiniciar el servidor NO es necesario.
Deberías poner este comando en el archivo /etc/rc.d/rc.local si es que quieres que los cambios tomen efecto cada vez que reinicies.
Número máximo de procesos que pueden correr en el servidor.
En Red Hat 6.0, y en kernels bajados de kernel.org, el límite del número total de procesos simultáneos es de 512, y el límite del número de tareas por usuario es la mitad de eso.
Desde Red Hat 6.1, usando el kernel estándard distribuído, el número total de procesos es de 2560, y el máximo por usuario es 2048.
Si necesitas incrementar estos límites, deberás modificar el archivo /usr/src/linux/include/tasks.h. Los parámetros a cambiar son NR_TASKS y MAX_TASKS_PER_USER.
En todos los casos, el valor máximo para estos parámetros es 4092 (4090 si APM está habilitado).
Si cambias estos parámetros, deberás construir un nuevo kernel.
15) Solución de problemas.
Lugares donde buscar errores.
Si hay algún problema al momento de iniciar la estación de trabajo, hay un par de lugares en donde puedes buscar errores:
/var/log/messages: Un montón de información útil aparece aquí.
/var/log/secure: Si los TCP wrappers estás habilitados, deberías ver algunos mensajes aquí.
/var/log/xdm-error.log: Si puedes pasar la parte del inicio del kernel, y X tiene un problema para mostrar la pantalla de login, entonces los mensajes serán almacenados aquí.
La consola de la estación de trabajo (sé que puede parecer obvio pero...).
La estación de trabajo no inicia.
Problemas para detectar el IRQ
El error completo es:
NE*000 ethercard probe at 0x300 failed to detect IRQ line
lo cual puede causar otro error después de que el kernel haya sido cargado:
IP-config NO network devices available
Root-NFS NO NFS server available giving up
VFS: Unable to mount root fs via NFS, trying floppy
VFS: cannot open root device 02:00
PANIC VFS unable to mount root fs on 02:00
Esto usualmente indica un conflico de IRQ entre la placa de red y otro dispositivo en el sistema. Prueba removiendo otras tarjetas, dejando sólo la placa de red y la de video.
Muestra 'Searching for server'
NE2000 base 0x0300, addr XX:XX:XX:XX:XX:XX
Searching for server (BOOTP) ...
<sleep>
<sleep>
Esto indica que la estación de trabajo no puede hallar al servidor bootp. Chequea lo siguiente:
Cableado: Verifica que la luz de conexión parpadee tanto en la tarjeta de red como en el hub. AMBAS deben estar encendidas. También tu servidor debe estar conectado al hub y DEBEN estar prendidas las luces de conexión del servidor y del hub.
Demonio bootpd (si estás usando bootp): Asegúrate que el proceso bootpd esté configurado en el archivo /etc/inetd.conf del servidor.
Archivo /etc/bootpab: Cuando la memoria eprom de inicio busca la tarjeta de red, muestra la direccióm MAC de la placa. Asegúrate de que dicha dirección exista en el archivo /etc/bootpab del servidor.
Bootpd puede estar inhibido para correr, debido a TCP wrappers. Si tienes habilitado estos wrappers, mediante los archivos /etc/hosts.allow y /etc/hosts.deny, entonces necesitar asegurarte de tener las siguientes entradas para bootpd:
bootpd: 0.0.0.0
dhcpd (si estás usando DHCP): Asegúrate de que el proceso dhcpd esté corriendo en el servidor. Éste puede ser habilitado con ntsysv.
/etc/dhcpd.conf: Asegúrate de que la dirección MAC de la tarjeta de red figure en /etc/dhcpd.conf.
Muestra 'Loading /tftpboot/lts/vmlinuz.ne2000 ... Unable to load file'
Verifica lo siguiente:
- Podría haber un problema con las entradas en /etc/bootptab o en /etc/dhcpd.conf. Asegúrate de que las siguientes entradas estén habilitadas:
hd= /tftpboot/lts
bf= kernel donde "kernel" es el nombre del núcleo que corresponde a tu tipo de tarjeta de red en la estación de trabajo. Por ejemplo vmlinuz.ne2000 o vmlinuz.rtl8139.
- Asegúrate de que el kernel de hecho exista en el directorio /tftpboot/lts.
Tftp aparenta tratar de bajar el kernel, pero nunca termina de hacerlo.
1) La pantalla muestra:
My IP 192.168.0.4, Server IP 192.168.0.254, GW IP 192.168.0.254
Loading /tftpboot/lts/vmlinuz.ne2000 ... <sleep>
<sleep>
<sleep>
tftpd puede estar inhibido para correr correctamente, a causa de TCP wrappers. Si tienes habilidados TCP wrappers, mediante los archivos /etc/hosts.allow y /etc/hosts.deny, entonces debes asegurarte de agregar la siguiente entrada para tftpd en hosts.allow:
in.tftpd: 192.168.0.
Esto permitirá el acceso a todas las estaciones de trabajo de la clase C 192.168.0.0.
2) La pantalla muestra My IP en una red clase C pero muestra Server IP en una diferente clase C. Esto puede suceder si tienes varias interfaces Ethernet instaladas en el servidor, o si has puesto alias en alguna dirección IP. Puedes solucionar este problema agregando la línea next-server 192.168.0.254 al archivo /etc/dhcpd.conf.
Problemas montando el sistema de archivos raíz vía NFS, errno=13
Errno 13 seguido de Panic. Esto indica un problema de permisos con NFS. Puede estar causado por lo siguiente:
1) El nombre de la estación de trabajo y su dirección IP DEBEN estar especificadas en /etc/hosts o en las tablas del DNS.
2) El archivo /etc/exports DEBE contener una entrada para el directorio /tftpboot/lts/ltsroot:
/tftpboot/lts/ltsroot 192.168.0.0/255.255.255.0(ro,no_root_squash)
La dirección IP debe coincidir con la red local.
3) Después de modificar el archivo exports, debes correr exportfs -ra para decirle al kernel que el archivo exports a cambiado. O, puedes querer reiniciar NFS y el portmapper, usando los siguientes comandos:
/etc/rc.d/init.d/nfs stop
/etc/rc.d/init.d/portmap stop
/etc/rc.d/init.d/portmap start
/eyc/rc.d/init.d/nfs start
4) Asegúrate de que NFS esté corriendo en el servidor. Corre ntsysv y verifica que "nfs" esté habilitado. Si no lo está, hazlo y reinicia el servidor.
Llamada a RPC devuelve error 111
Durante el inicio, la estación de trabajo muestra:
Looking up port of RPC 100003/2 on 192.168.0.254
Root-NFS: Unable to get nfsd port number from server, using defaults
Looking up port of RPC 100005/1 on 192.168.0.254
Root-NFS: Unable to get mountd port numbre from server, using defaults
mount: RPC call returned error 111
RPC: task of released request still queued!
RPC: (task is on xprt_pending)
Root-NFS: Server returned error -111 while mounting /tftpboot/lts/ltsroot
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device 02:00
Kernel panic: VFS: Unable to mount root fs on 02:00
Eso parece más que nada causado por TCP wrappers. Si estás usando TCP wrappers, debes agregar la siguiente línea en el archivo /etc/hosts.allow:
portmap: 192.168.0.
Esto le permitirá al portmapper tener acceso a todas las estaciones de trabajo de la calse C 192.168.0.0.
INIT: cannot execute "/etc/rc.local"
Durante el inicio, la estación de trabajo muestra:
INIT: cannot execute "/etc/rc.local"
INIT: Entering runlevel: 5
/tmp/start_ws: /tmp/start_ws: No such file or directory
/tmp/start_ws: /tmp/start_ws: No such file or directory
/tmp/start_ws: /tmp/start_ws: No such file or directory
/tmp/start_ws: /tmp/start_ws: No such file or directory
/tmp/start_ws: /tmp/start_ws: No such file or directory
Esto probablemente sea causado por permisos incorrectos en el script /tftpboot/lts/ltsroot/etc/rc.local. Hay un bug en lts_core versión 1.02 que crea dicho script con los permisos incorrectos. Deberían ser "-rwxr-xr-x". Puedes cambiar estos permisos con el comando:
# chmod 0755 /tftpboot/lts/ltsroot/etc/rc.local
O directamente actualizando a lts_core 1.03.
La estación de trabajo se detiene en "Freeing unused kernel memory 44k"
Esto es causado por problemas con la versión de Glibc que viene con Red Hat 7.0. Necesitas actualizar hasta al menos Glibc 2.2-5, el cual está disponible en el sitio ftp de Red Hat. Asegúrate de instalar la versión para i386. Una vez que haz hecho esto, necesitas reinstalar LTSP para que recoja las librerías correctas.
Problemas iniciando X-Windows
XDMCP fatal error: Manager unwilling Host unwilling
El error completo es:
Fatal server error:
XDMCP fatal error: Manager unwilling Host unwilling
when reporting a problem related to a server crash, please send the full server output, not just the last messages
INIT: Id "2" respawning too fast: disabled for 5 minutes
INIT: no more processes left in this runlevel
Esto es usualmente causado por una entrada faltante en el archivo /etc/X11/xdm/Xaccess. Este archivo controla qué máquinas pueden conectarse al servidor via XDM. El truco para lograr esto es agregar una línea que comience con un asterisco (*). En Red Hat 6.0, esta línea ya existe con anterioridad, pero a partir de Red Hat 6.1, esta línea fue comentada. Busca en el archivo una línea parecida a esta:
# * # any host can get a login window
y remueve el numeral (#) del comienzo. Lugo, necesitas reiniciar XDM mediante el envío de una señal SIGHUP:
# killall -HUP xdm
X intenta iniciar, pero se muestra extraño, o no se muestra
Hay varias cosas que pueden hacer fallar X, he aquí algunas de las mas comunes:
1) ¿Está tu servidor de fuentes corriendo correctamente en el puerto 7100? Verifica la configuración en /etc/rc.d/init.d/xfs.
2) Si estás corriendo más de 4 clientes, necesitarás incrementar la cantidad máxima de clientes en el archivo /etc/X11/fs/config.
3) Puede ser útil correr un shell mientras estés en el runlevel 5. Modifica el archivo /tftpboot/lts/ltsroot/etc/inittab para que se vea así:
1:35:respawn:/bin/sh
Luego, después de reinicar la estación de trabajo, debería poder presionar CTRL-ATL-F1 para ir a la pantalla donde los mensajes de inicio de X aparecen. CTRL-ALT-F2 te debería traer de vuelta a la pantalla de X-Windows.
4)Tus entradas "Modeline" pueden ser las incorrectas para tu combinación monitor/placa de video. Si quieres cambiarlas, hazlo en /tftpboot/lts/ltsroot/etc/rc.local. Este es el script que genera el archivo XF86Config cuando la estación de trabajo se inicia. Si puedes conectar el monitor al servidor y correr Xconfigurator, podrás ser capaz de copiar las porciones relevantes de /etc/X11/XF86Config al script rc.local.
X inicia exitosamente, pero la pantalla de login nunca aparece
Esto indica un posible problema de la estación de trabajo comunicándose con el servidor xdm. Verifica lo siguiente:
Si estás corriendo Red Hat 6.2, asegúrate de que comentaste la entrada DisplayManager.requestPort.
Verifica que la entrada XDM_SERVER en el archivo /tftpboot/lts/ltsroot/etc/lts.conf tenga la dirrección correcta del servidor xdm.
Problemas en el servidor.
X inicia en el servidor, pero falla, aún cuando solía andar correctamente
Luego de cambiar /etc/rc.d/init.d/xfs, debes cambiar el archivo /etc/X11/XF86Config.
Errores 'fh_verify' en el servidor mientras la estación de trabajo invoca a X
Los siguientes mensajes aparecen en el servidor:
fh_verify: dev/tty2 permission failure, acc=8, error=30
fh_verify: dev/tty0 permission failure, acc=8, error=30
Esto sucede a raíz de que el servidor X está tratando de cambiar los permisos de dueño y grupo de los nodos dev/tty0 y dev/tty2. El sistema de archivos raíz está montado de solo lectura, por lo que no puede cambiar ningún permiso. El servidor X de hecho no necesita cambiar estos permisos, porque los mismos ya están puestos de forma correcta de antemano. Hay algunos servidores X actualizados en la página de download de ltsp.org que corrigen este problema.
No hay login gráfico en el servidor
Si el servidor está configurado para correr en el runlevel 5, se supone que debe mostrar una pantalla de login gráfica cuando el mismo se inicia.
El procedimiento de instalación de LTS Versión 1.0 por error comentaba una línea en /etc/X11/xdm/Xservers que se veía así:
:0 local /usr/X11R6/bin/X
Asegúrate de que esta entrada NO esté comentada.
Este error ha sido corregido en LTS versión 1.01.
Si todo esto falla:
Si aún sigues sin poder hacer andar la estación de trabajo, por favor usa la lista de correo discuss en ltsp.org para reportar tus problemas. Hay mucha gente que puede ayudarte y yo trato de tener un ojo siempre puesto en dicha lista.
16) LTSP en otras versiones de Linux y Unix.
Es sabido que actualmente LTSP funciona en Red Hat, Mandrake, SuSE y Debian.
He recibido un reporte de David Anders (dave123@abcsinc.com) quien fue capaz de instalar LTSP en SCO OpenServer 5.0.5!
En algún momento nos gustaría incluir las instrucciones para otras distribuciones, por lo que si has tenido alguna experiencia corriendo LTSP en plataformas diferentes a Red Hat, por favor envíanos alguna información.
17) Referencias adicionales.
Referencias en línea.
Linux Terminal Server Project (LTSP) home page (http://www.ltsp.org).
Diskless-Nodes HOW-TO document for Linux (http://www.linuxdoc.org/HOWTO/Diskless-HOWTO.html).
Etherboot home page (http://etherboot.sourceforge.net).
Rom-O-Matic home page (http://www.rom-o-matic.net).
Xfree86-Video-Timings-HOWTO (http://www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO.html).
The Linux NIS(YP)/NYS/NIS+ HOWTO (http://www.linuxdoc.org/HOWTO/NIS-HOWTO.html).
Diskless Workstations.com home page (http://www.DisklessWorkstations.com).
Publicaciones impresas - para referencia adicional.
1- Managing NFS and NIS
Hal Stern
O'Reilly & Associates, Inc.
1991
ISBN 0-937175-75-7
2- TCP/IP Illustrated, Volume 1
W. Richard Stevens
Addison-Wesley
1994
ISBN 0-201-63346-9
3- X Window System Administrator's Guide
Linda Mui and Eric Pearce
O'Reilly & Associates, Inc.
1993
ISBN 0-937175-83-8
(Volume 8 of the The Definitive Guides to the X Window System)