 
QUE SON LOS
THIN CLIENT?
CONOZCA
LAS REDES DE BAJO COSTO EN LINUX
REDES
DE BAJO COSTO.
(articulo original INFORMÁTICA,
ECONOMÍA Y ECOLOGÍA por Olix, adaptación
)
A través de clientes livianos (thin clients) se pueden reutilizar
viejas PCs como terminales en red con un servidor central. Esta alternativa
a la vez económica y ecológica se implementa a la perfección con software libre.
La idea es conformar una red LTS (Linux Terminal Server). Por ejemplo, en España
se retiran anualmente 3 millones de computadores, la mayoría irá a los vertederos,
cuando muchos de ellos podrían continuar prestando servicio en centros educativos,
bibliotecas o en locales de colectivos sociales, configurados como clientes
de redes thin-client; en el mundo empresarial se ha probado esta configuración
con excelentes resultados en hospitales, editoriales, despachos de abogados,
oficinas, cibercafés, etc. Linux se presenta como un entorno totalmente válido
para estos fines, y ya tenemos documentadas muchas experiencias en España e
Hispanoamérica.
Con PXES Universal Linux Thin Client (una micro distribucion
que permite bootear clientes delgados o convertir PCs en clientes delgados,
posiblemente no aptas para correr un sistema operativo actual de escritorio).
Requerimiento minimo: Pentium I, 32 Mb RAM, bus PCI. Permite bootear de una
gran variedad de medios: Red, CDROM, Flash, Hard disk, diskette, etc.
Servidores y protocolos:
Unix/Linux supporting XDM |
VNC LOCAL local graphical session with simple
desktop |
Telnet emulating ANSI terminal |
Microsoft Terminal Server using RDP
|
LTSP or K12LTSP |
SSH |
Citrix using ICA VNC using Tight |
IBM Host using 3270 or 5250 emulation
|
Tarantella using proprietary protocol Nomachine
using NX |
Metodos de Arranque
PXE network card included in most modern |
Hard disk |
PC hardware Etherboot to boot from diskette
or EPROM |
DOC DiskOnChip and DOM DiskOnModule |
CD-ROM |
USB Storage |
Requerimientos de Hardware
- Procesador: x86 architecture (i486, i586, i686, VIA C3, etc.)
- BUS: PCI recomendado (o ISA )
- RAM: 32 Mb recomendado (16 Mb minimo)
- NIC: tarjeta de red
- Tarjeta de video
- Acceso a Dispositivos: Diskette - disco duro, CD-ROM, inpresoras en paralelo
y dispositivos para puerto serial y USB
- Sistemas operativos: Linux Solaris AIX SCO BSD HP-UX Microsoft Windows NT4
Microsoft Windows 2000 Microsoft Windows 2003 Microsoft Windows XP
EJEMPLOS DE APLICACION (en España).
Aquellos equipos
que hace pocos años estaban considerados como “de última generación” así como
la proliferación de equipos nuevos de coste reducido pero con unas prestaciones
apreciables hace que, a dia de hoy, nos podamos plantear el reaprovechamiento
de estos recursos empleando tecnologías “cliente-servidor” y de ejecución remota
o “thin client” para realizar amplios despliegues de redes de ordenadores con
servicios avanzados a un coste muy reducido en comparación con las ofertas tradicionales.
Estas tecnologías vienen utilizandose desde hace años en las redes de Internet,
estando muy maduras actualmente y siendo de gran fiabilidad y podrán aprovecharlas
todos aquellos que dispongan de gran cantidad de ordenadores antiguos por encima
de Pentium y 32 Mb de Ram . Aunque es posible usar ordenadores de generaciones
anteriores (486) y menor cantidad de memoria (16 Mb), el gasto en el ajuste
quizá no sea justificable. Así mismo es muy recomendable el uso de maquinas
de tipo MiniItx con procesadores de baja potencia. Tambien es muy aconsejable
en aquellos casos en los que se trata de realizar un despligue de puestos informáticos
nuevos a gran escala. Caso de colegios, oficinas nuevas, ministerios, oficinas
dispersas, etc. En estas situaciones esta tecnología no tiene rival en cuanto
a mantenimiento y conservación, ahorros energeticos, estructurales y de despligue.
Respecto a las
redes; es evidente que: a mayor caudal mejor será la respuesta, pero debemos
saber que una buena planificación, estructuración y segmentación nos dará excelentes
resultados incluso en redes de area amplia (WAN) con media capacidad (ADSL,
ISDN). La separación que se puede realizar entre centro de calculo/datos y punto
de acceso a la información (Desktop) lo hacen muy adecuado para centros de fabricación
con condiciones ambientales agresivas. Hay que tener en cuenta que los clientes
funcionan sin necesidad de disponer de disco duro y que todos los datos y aplicaciones
residen y se ejecutan en el servidor, que estará a buen recaudo. En la parte
de los servidores también es posible realizar una modularización de los servicios
y el establecimiento de soluciones estándar que sean soportadas mediante tecnicas
de ejecución sobre dispositivos de solo lectura. http://metadistros.hispalinux.es
La potencia de
cómputo de las máquinas antiguas es en muchos casos suficiente también para
albergar servicios individuales (mail, web, RDMS,OLDAP...). Habiendo solucionado
el inconveniente del plataformado rápido y teniendo en cuenta que existe técnicas
libres de alta disponibilidad con una gran estabilidad, es posible crear un
conjunto de imagenes (ISO) que creen el entramado del CPD de forma estándar
y modular. La facilidad de gestión y mantenimiento, que se reduce al servidor
y apenas es un poco más compleja que la de un desktop, así como la gran fiabilidad
de la plataforma empleada (Debian) lo hace especialmente indicado en ambientes
donde el numero de técnicos especializados es escaso pero existe una parte del
personal que se dedica en “exclusiva” a atender las necesidades de informatización
del trabajo de los demás, como pueden ser colegios, centros de salud, juzgados
etc. Las enormes posibilidades de gestión de seguridad, que se ofertan los hacen
especialmente recomendable en juzgados, oficinas de atención al ciudadano y,
en general, en todos aquellos lugares donde la información puede ser sensible
por razones legales o de beneficios para la competencia. Está especialmente
recomendado su uso en despliegues de: . Institutos, Colegios, Academias, Aulas
de formación, etc . Colegios profesionales, Sindicatos, Asociaciones, etc .
Bibliotecas, Centros de consulta, Puntos de asistencia, etc . Oficinas técnicas,
Laboratorios, Oficinas administrativas, etc . Centros de salud, Hospitales .
Centros de Investigación . Cibercafes . Centros de fabricación.
http://terminales.hispalinux.es
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 LTSP:
Linux Terminal Server Proyect. Es un grupo de trabajo para poder obtener terminales
linux 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. El LTSP provee una manera 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.” Aula X-terminal Sigue el mismo modelo que el anterior,
pero en este caso, los ordenadores clientes están provistos de disco duro y
se configuran para que realicen tanto la carga del s.o. como de ciertas aplicaciones
de manera local. Esto tiene la ventaja de un aumento en velocidad debido a una
menor congestión de la red pero a costa de configurar cada ordenador localmente
y estar sujeto a mayores roturas en el hardware.
Ejemplo: . Me interes
por ltsp, ya q administro una red en linux, en un centro de enseñanza.
Imaginaros la de veces q se instala linux, y la de usuarios q hay q tener. Con
ltsp, solo se instala linux en el servidor, y despues un disquete en los clientes
ya tienes linux. Mi objetivo era instalar un sólo linux, y configurar
un solo linux, y el resto de máquinas se conectaran a un servidor de
terminales. Las terminales se autoconfiguran por red, a través de dhcp
y por mac. Cuando una terminal arranca es como si tuvieras delante la maquina
linux, q hace de servidor. Con lo q la administración de usuarios se
hace desde el servidor de ltsp. Y lo pude consegir con ltsp.
Por Paco Aldarias Raya. Email: [email protected] Web: http://pagina.de/pacodebian
.Con Linux Debian. En Valencia (España)
PXES Universal Linux Thin Client (http://pxes.sf.net).
Linux Terminal Server Project
www.ltsp.org
Construyendo el Escritorio
Linux Bajo-En-Grasa
Una Guía para Novatos hacia un Linux Menos
Grasoso
Introducción
Comencé a jugar con Linux unos pocos años
atras, después de leer varios articulos del tipo Introducción-a-Linux en
revistas de computación y en la Red. En casi todos esos articulos, los bajos
requerimientos de hardware son listados como una de las ventajas de Linux.
Usualmente los autores después continuan mostrando cuán fácil es usar Linux
en el escritorio con los entornos de escritorio Gnome o KDE.
De manera que configure mi máquina para
inicio dual con Win95 y Linux. y experimenté con varias distribuciones
diferentes. Inicialmente estaba en desacuerdo con el rendimiento de Linux, y me
tomó un tiempo descubrir que el aumento en el rendimiento era posible corriendo
software más ligero. El hecho es que la mayoría de la documentación orientada
a novatos enfatizaba en Gnome/KDE mientras se ignoraba todo lo demás que solo
hacia las cosas más dificiles. De eso es todo lo que trata esta página - una
guia para novatos hacia un software bueno y ligero que corra bien en
computadoras que son menos que estados-del-arte. Mientras que un montón de
nosotros simplemente no puede permitirse (o justificar) el costo del hardware
actual, los altos requerimientos hardware de Windows 2000/XP no podrían ser una
bendición para los usuarios de Linux dentro de un ajustado presupuesto; deberían
haber más máquinas de-segunda-mano haciendose disponibles al igual que los
usuarios de Windows actualizan su hardware.
Gnome y KDE son entornos de buena apariencia y
empaquetados de características que son tan fáciles de usar como el escritorio
en ese otro SO. pero no son la mejor elección para una máquina más antigüa.
Versiones recientes, de manera particular, pueden en este momento ser bastante
torpes a menos que tenga algún hardware medianamente reciente para correrlos.
Eso no que quiere decir que usted se encuentre amarrado a una consola
de-solo-texto sin embargo, es fácil configurar un agradable escritorio Linux
que tenga bastante velocidad sobre algo como una antigüa Pentium con 32 megas
de RAM. Y con las memorias RAM siendo tán baratas en este momento, yo iría por
64 megas si fuése usted y pudiese permitírmelo.
De manera que un escritorio rápido es en gran
parte solo un asunto de usar un admnistrador de ventanas y aplicaciones que
ajusten a la medida de su hardware. Y de cualquier manera, solo porque usted no
usa los entornos de escritorio KDE o Gnome, no significa que no debería
instalarlas. Las aplicaciones KDE y Gnome correrán bastante bien bajo un ligero
administrador de ventanas, así que si usted tiene el espacio de disco, yo
recomendaría instalar ambos. Listado abajo están algunas sugerencias para el
tipo de aplicaciones, que la mayoría de la gente usa cada día, de los cuales
todos trabajan agradablemente en mi máquina 233/64 (y mucho de esto debería
andar bien con solo 32 megas de RAM). Tenga en cuenta que esas sugerencias son sólo
mis preferencias personales; esas no son, ciertamente, la única forma de
hacer las cosas.
El Criterio de Selección:
- Rendimiento - Debería ser aceptablemente rápido
y estable sobre hardware viejo.
- Interfaz Gráfica - la mayoría de los
novatos y los no-genios prefieren esto a la línea de comando
- Funcionalidad - Debería hacer todo lo que
los usuarios normales (cualquiera que sean) esperan de ese tipo de aplicación.
- Facilidad de Instalación - Debería ser
razonablemente simple de instalar, sin necesidad de recompilación de kernel
y sin muchas oscuras dependencias.
- Facilidad de Configuración - Usted no
debería necesitar ser un gurú de vi o scripts para darle forma.
- Facilidad de Uso - Debería ser
razonablemente fácil de aprender a usar.
La facilidad de uso fue un poco más simple de
probar - mi esposa y mis niños comparten mi computadora pero definitivamente no
son genios. Si ellos fueran capaces de usar un programa recientemente instalado
sin sudar en el o llamar por asistencia se consideria suficiente para aprobar el
examen de facilidad-de-uso :-)
Donde Conseguir Paquetes
Usted encontrará que mucho de esto esta
incluido en los CDs de instalación de muchas distribuciones, o puede seguir los
vínculos. Cuando sea posible, este apuntará a la pagina web del proyecto, u
otro sitio de descarga de rpmfind. Si esta usando alguna otra distribución al
estilo de RedHat, puede que tenga que volver un poco atrás a partir de los
sitios rpmfind para obtener la versión correcta.
El Administrador de Ventanas
Existen varios buenos y ligeros
administradores de ventanas disponibles, siendo mi favorito IceWm.
IceWm puede ser configurado para lucir muy bien con papeltapices y temas.
También tiene ese familiar diseño Win95 con el botón de inicio en la esquina,
menúes, barra de tareas y cosas por el estilo.
Configurar IceWm es extremadamente fácil,
y mientras hay herramientas gráficas disponibles para esto, es muy fácil
editar sus archivos de configuración manualmente. Los archivos de configuración
global estan en /usr/X11R6/lib/X11/icewm/ y son llamados preferences, menu y
toolbar. Cree un directorio oculto llamado .icewm en el directorio
home y copie esos tres archivos dentro de el. Entonces es solo cuestión de
editarlos para ajustar sus propias necesidades y gustos.
IceWm esta incluido con muchas distribuciones
recientes, e incluye muy buena documentación en /usr/doc/icewm.
Otro ligero AV muy popular es xfce,
un excepcional, bonito y rápido administrador de ventanas digno de una mirada.
El Administrador de Archivos
De los administradores de archivos que he
probado yo prefiero XWC
(X Windows Commander) debido a su velocidad, estabilidad y de nuevo por su
interfaz familiar. XWC es un clon del Explorador estilo Win95 que soporta
arrastar-y-soltar y asociaciones de archivos, etc. Aunque carecen de muchas de
las caracteristicas mencionadas, Nautilus o Konqueror, tienen todo lo que
necesito, sin inflarse. Si quiere ver cuan rápido es, trate de usarlo para
abrir un gran directorio como el directorio de RPMs de su CD de instalación. Al
igual que IceWm, es muy fácil configurar el menú de opciones incorporadas o
editando el archivo ~/.foxrc/XWC .
Aunque yo preferiria algo que no se viera tan
parecido a Windows, XWC funciona muy bien y es muy rápido. También incluye una
herramienta de archivado y una interfaz un tanto ordinaria para RPM. Una cosa
que hay que observar es el hecho de que XWC siempre abrirá en la última
ubicación en la que fue usado. Si usted usó por última vez XWC para hojear un
medio removible (como /mnt/cdrom por ejemplo), y esta usando supermount,
habrá una demora al iniciar XWC si no hay un dispositivo montado en el momento.
XWC requiere las librerias fox.
Parece que XWC ya no es mantenido activamente,
y solo está disponible en formato RPM. Su sucesor, foXcommander,
es similar y es parte del proyecto foXdesktop. Está disponible como
fuente.
Otro rápido y bonito archivador altamente
recomendado es rox.
Editores de Texto
Mientras que XWC viene con su propio editor básico,
yo prefiero más a Nedit. Nedit
es medianamente pequeño, es rápido y tiene toneladas de características útiles
incorporadas, incluyendo sintáxis de iluminación, búsqueda y reemplazo,
soporte de macros, acceso a shell y mucho mas. La ayuda incorporada es muy buena
también. Sé de algunas personas que se apasionan con sus editores
(especialmente la legión vi), pero si quiere un buen editor estilo WYSIWYG,
Nedit es, en efecto, muy bueno.
La Internet
Manualmente la configuración de PPP es una
agonía, especialmente comparado a kppp. La configuración de kppp puede
ser hecha en segundos, y esta aplicación, sola, hace que la instalación de KDE
valga la pena.
Por fin los usuarios Linux tienen navegadores
que tienen o mejoran el rendimiento de aquellos en otras plataformas, aunque
algunos son algo hambrientos de recursos. A pesar de obtener críticas un poco
injustas, Netscape
4.7x es probablemente el mejor navegador de los alrededores, para usar en una máquina
con 32 megas. A pesar de que pueda ser algo inestable a veces, maneja
Java/JavaScript razonablemente bien, y también trabaja con los plugins más
comunes. Usted necesitará hacer clic en Edit > Preferences para jugar
con la configuración de fuentes (y establecer sus fuentes para sobreescribir la
especificada en el documento) y hacer que se vea bien. Si tiene 64 megas o más,
podría querer probar Mozilla o uno de
sus descendientes (Galeon es simpático).
Estos tienen más características y son mas estables que Netscape 4.7x, pero
probablemente no son mas rápidos. No permita que el vomitivo Netscape 6.0 lo
desanime de probar versiones posteriores que son generalmente muy buenos y
estables, aúnque si un tanto grandes y lentos. A mucha gente le gusta opera,
aunque su interfaz toma tiempo para conseguir usarla. He estado usandolo un poco
últimamente, y ha sido bastante rápido y estable.
Hay también un navegador llamado Dillo
que vale la pena instalar. Dillo es extremadamente rápido, y muy bonito también.
Aún bajo desarrollo, todavía no maneja marcos, Java o JavaScript, asi que
probablemente no será capaz de hacer sus tareas bancarias con él. Es brillante
para lectura de archivos HTML locales (como archivos de ayuda y cosas en
/usr/doc/*.html). Yo usualmente uso Opera para trabajar en internet, y Dillo
para archivos locales.
En cuanto al e-mail, tanto Netscape como
Mozilla tienen razonables clientes de e-mail incorporados, aunque es un tormento
esperar que cargen solo para leer su correo. Un montón de personas recomiendan Sylpheed,
y ahora es lo que uso. Sylpheed es muy rápido, y tiene una bonita y
limpia interfaz. Es también un lector básico de noticias (newsreader). El
lector de noticias de Netscape 4.7x es algo ordinario, de manera que podría
querer pobrar Pan, una aplicación de
noticias de Gnome, capaz de manejar archivos binarios adjuntos.
Otra provechosa utilidad es tnef.
Fue diseñada para desempacar aquellos fastidiosos archivos adjuntos MIME
"ms-tnef" que son comunmente enviados desde servidores de correo
Outlook y Exchange. Aunque es una herramienta de linea de comandos, es fácil de
usar y trabaja bien.
Sé que hay por allí varios clientes gráficos
ftp, y jugué brevemente con gFTP
(que corrió bien), pero realmente no puedo recomendar algo más cuando aún
prefiero el cliente de línea de comandos ncftp.
Aplicaciones de Gráficos
Uso xli
(formalmente xloadimage) como visualizador de imagenes por defecto. Es rápido,
y me gusta la manera en que puedo mover grandes imagenes con el raton, qiv
(Quick Image Viewer, Rápido Visualizador de Imágenes) es simpático también.
Aplicaciones como xv permiten
navegar a través de las miniaturas de imágenes, así como simples
manipulaciones. Miéntras el GIMP no podría
ser descrito como lígero, su conjunto de características lo convierte en una
aplicación obligada sobre cualquier escritorio Linux, y corre perfectamente en
una máquina con 32 megas.
Música y Video
XMMS es un
clón bastante popular del WinAmp que puede reproducir mp3, wav y archivos cdr,
y muchos otros. También soporta skins, incluyendo las skins del WinAmp. En
cuanto a los videos mpegs, uso mtvp como el reproductor por defecto. Es
un reproductor libre que es parte del paquete mtv
y funciona muy bien en máquinas de bajo nivel. XAnim
reproduce archivo .mov y .avi, y cantidad de otras cosas, pero no es muy bueno
con los mpegs. Y si estas leyendo esto, probablemente no tienes suficientes
caballos de fuerza de cómputo para reproducir DVDs. Muchas personas me han
recomendado MPlayer, y es realmente una
impresionante pieza de trabajo. Reproduce bien diferentes formatos, y es
bastante rápido. La única desventaja es que debe ser compilado desde las
fuentes, y esto puede desalentar a algunos novatos de probarlo, aúnque en mi máquina
al menos, se compila rápidamente.
Hay también cantidad de frentes gráficos por
allí para software de grabación de CDs. He jugado con el muy popular xcdroast,
pero principalmente aún uso herramientas de línea de comandos como cdrecord,
mpg123, bladeenc, etc. De nuevo, déjeme saber si tiene recomendaciones.
Software al Estilo Office
Procesamiento de Palabras - Hay
cantidad de donde elegir aquí. Si todo lo que necesita un procesador de
palabras básico, vaya con con AbiWord.
Aunque puede importar bien simples archivo .doc, es limitado para producir
documentos básicos que no contengan tablas, y otras cosas. A pesar de las
limitaciones AbiWord es un rápido y útil programa. KWord es el procesador de
palabras del proyecto KDE, y luce y funciona muy bien, de cualquier manera tiene
limitada compatibilidad con archivos MS .doc por ahora. Yo uso ApplixWords,
vea la sección sobre Suites de Office para mas información. Y WordPerfect de
Corel parece haber desaparecido de la faz de la tierra... A pesar de que no es
realmente un procesador de palabras, Netscape (o Mozilla) Composer puede
hacer un muy trabajo de producción de documentos impresos. Puede hacer tablas,
vínculos e imágenes embebidas al igual que revisión ortográfica. Además la
salida HTML es legible en simplemente cualquier cosa, aúnque obviamente la
importación de archivos .doc esta fuera del asunto, mantenga el Composer en
mente si solo quiere escribir cartas ocasionales sin instalar un programa WP que
se ha ido con el viento.
Hojas de cálculo - Es difícil
recomendar una hoja de cálculo ya que las necesidades de los usuarios varian
muy ampliamente. A pesar de que uso la hoja de cálculo ApplixWare,
Gnumeric es otra aplicación
medianamente madura que encuentra mis reconocidamente modestas necesidades fácilmente,
y parece manejar bien archivos Excel. KSpread,
al igual que KWord, tambien corre suficientemente bien pero aun no trabaja
completamente con formatos Microsoft. Lea la sección de abajo para mayor
información ...
Suites Ofimáticas - Estas
usualmente incluyen un procesador de palabras, hoja de calculo, constructor de
presentaciones, herramientas de graficos/dibujo, etc. A pesar del hecho que es
una aplicacion comercial, no libre, ApplixWare
consigue mi voto como suite ofimatica favorita. Nativa a Linux, Applix corre
bien, y tiene mas que suficientes caracteristicas para encontrar mis
necesidades. Tanto el procesador de palabras y la hoja de calculo parecen
manejar la mayoria de los formatos MS Office, y la documentacion es muy buena.
Vale la pena pagar por ella, en mi opinión.
La suite KOffice
es una muy bonita suite KDE2 que solo decepciona por su incompatibilidad con
archivos MS Office, como sea, para algunas personas esto no será un problema, y
con fé este asunto será pronto superado por los desarrolladores KOffice.
StarOffice
es probablemente la suite mas popular para Linux, pero francamente no puedo
suportarla. Me disgusta especialmente el diseño de escritorio monolítico de la
5.2, e incluso sobre una poderosa máquina se toma una eternidad en cargar. En
cambio tiene montones de características, es gratis para uso personal, y la
compatibilidad con MS Office es muy buena, así que si tiene requerimientos de
trabajo pesado, podría quedarse atascado. Las versiones actuales, al igual que
el pariente cercano OpenOffice, se alejan
del irritante escritorio integral, pero no parecen ser mucho más rápidas.
Rendimiento
La tabla de abajo muestra los tiempos de
inicio aproximados para algunos de los softwares mencionados abajo. Estos
tiempos fueron medidos en una AMD 233 Mhz con 64 megas de RAM y Linux 2.2,
usando el método altamente acientífico de hacer clíc en el botón y luego
contar la espera usando el reloj de la barra de tareas. Por supuesto, un
calendario puede ser mas apropiado para el cronometraje de Star/Open Office ...
Las cifras son, obviamente, solo toscas aproximaciones en vista de la técnica
de medición, pero dan una buena indicación de cuán sensible puede ser una máquina
Linux.
Programa |
Primer Inicio |
Inicios Subsecuentes |
xwindowscommander |
1 segundo |
0,5 segundos |
nedit |
2 segundos |
1,5 segundos |
netscape 4.77 |
9 segundos |
4 segundos |
dillo |
1 segundo |
0,5 segundos |
sylpheed |
1,5 segundos |
1 segundo |
xli (xloadimage) |
1 seg |
0,5 segundos |
xmms |
3 segundos |
2,5 segundos |
mtvp |
1 segundo |
0,5 segundos |
applixwords |
6 segundos |
4 segundos |
abiword |
2,5 segundos |
2 segundos |
Misceláneas
Emuladores de Terminal - rxvt
tiene una combinación de características y velocidad que la hace mi favorita.
Además puede configurar su apariencia si usted está en ese plan. Una aún más
ligera alternativa es aterm.
Protectores de Pantalla son
probablemente mas una monería que una necesidad. Xscreensaver
trabaja muy bien con lígeros administradores de ventanas y es fácil de
configurar. Corre un protector de pantalla elegido al azar despues de período
establecido por el usuario, y continúa cambiándolo a intervalos
pre-establecidos. Ejecute xcreesaver-demo para establecer las
preferencias, o vea las páginas de manual para mas detalles. La manera más fácil
de iniciar xscreensaver automaticamente en el login es agregando el comando xscreesaver
& a su guión de inicio del administrador de ventana, ej.
/usr/X11R6/bin/icewm.
Fuentes TrueType, ya no son un gran
problema de configuración. Algunas distribuciones (tales como Mandrake 7.2 y
posteriores) incluyen una herramienta para la utilización de fuentes TrueType,
incluso aquellas instaladas en una partición Windows. Esto puede hacer una gran
diferencia a la aparencia de las aplicaciones; en particular Netscape. la
herramienta de Mandrake llamada Drakfont, y es extremádamente fácil de usar.
Servicios Innecesarios o demonios
pueden reducir la velocidad de su máquina y alargar los tiempos de inicio. Las
instalaciones por defecto quizás corran toda clase de servicios y otras cosas
que no necesite. Al igual que el uso de recursos, estas cosas pueden incrementar
su riesgo de seguridad. Usted puede usar una herramienta gráfica como tksysv,
o puede tirar manualmente los elementos innecesarios (usualmente de
/etc/rc.d/rc5.d), pero asegurese de hacer un respaldo primero.
Vínculos
No mucho acá por los momentos, enviéme un
correo si sabe de algunos sitios útiles para incluir aquí.
Lo-Fat
Part 2 - Bajo-en-grasa Parte 2: Una guía hacia la afinación post-instalación
The Linux Newbie Administrators Guide
- La Guía para Administradores Novatos de Linux: alguna buena información por
aquí
The Linux Terminal Server Project - El
Proyecto de Servidor de Terminal Linux: una gran manera de usar aquellas viejas
cajas como clientes ligeros
Linux For Old PCs - Linux para
las Viejas PCs : tiene algunas cosas buenas para viejas computadoras, ej. 486s
Linux For Kids - Linux Para Niños:
Juegos y software educativo
RPMFind - Un enorme depósito
explorable de paquetes RPM
Choosing a Distro - A
Newbies Guide - Eligiendo una Distribución - Una guía para novatos.
Los vínculos de abajo apuntan a algunas
distribuciones Linux mas pequeñas y más simples.
Crux
Linux
Peanut
Linux
Vector
Linux
Sinceros agradecimientos a todos aquellos
quienes me enviaron correo con sugerencias y feedbacks, incluso la Policía de
la Puntuación ;-). Probaré todas aquellas aplicaciones que me han recomendado
y actulizaré esta página consecuentemente.
¿Sugerencias, comentarios, insultos, etc? [en
inglés] Enviénmelas todas a mí,
John Murray
Última modificación 20 de Septiembre de 2002. Copyright (c) 2002 por John Murray. Este
material puede ser distribuido solo sujeto a los términos y condiciones
establecidos en adelante en la Licencia de Contenido Abierto (Open Content
License) v1.0 o posterior (la última versión está disponible actualmente en opencontent.org).
Traducción: Nelson Suniaga, 19-octubre-2002,
http://es.openoffice.org, con permiso del autor.

|
PXES
Version 0.6: readme
by
Diego Torres Milano <mailto:[email protected]?Subject=PXES
>
Copyright © 2001-2003. All rights reserved.
This software is free software under the GNU General
Public License.Traducción Mario Suarez
|
PXES es una microdistribucion de linux la cual
permite crear o arrancar thin clients. Estos thin client
pueden ser reales o hardware compatible con pc ,que se pueden
tornar en thin client en minutos. Despues del arranque ud tendra
acceso a:
-
|
XDMCP server (X Display
Manager),
sobre Linux, Solaris y otros "unix",
presenta una pantalla grafica de login
|
|
Microsoft Terminal Server
con RDP (Remote Desktop Protocol)
sobre Microsoft Windows NT, 2000, 2003 , XP
|
|
|
|
|
|
|
|
LTSP/K12LTSP server (Linux
Terminal Server Project),LTSP con pantalla
grafica
|
|
|
|
|
USTED PUEDE RECICLAR HARDWARE SE PUEDE INICIAR CON UN 486 CON 16
DE RAM, PERO SE RECOMIENDA UN PENTIUM 1 CON 32 DE RAM
No es necesario que posean unidades de diskette,
disco duro o cd-rom. Puede arrancar PXE en red, por lo tanto no es
necesario ni diskette de arranque o eprom de arranque (ver
( Intel
Pre-Execution Environment specifications) otras
alternativas son inicializar por DiskOnChip o DiskOnModule,
de cd-rom local, o por discos duros pequeños con LILO
o GRUB.
Despues del arranque el tinc client es
completamente autonomo y no requiere de un servidor NFS. Aparacera
una pantalla como esta

Instalación
Seguir los siguientes pasos:
y voila!
CONFIGURACION DEL SERVIDOR
PXES INSTALACIÓN
PXES esta dividido en peqeños componentes
Al menos es necesario pxes-base y pxesconfig
PXES
instalación basica
Instalando con RPM
Instalar el pxes-base-arch-0.6-release
RPM.
Elegir el archivo que mejor representa su thin
client. Es necesario tener instalados los servidores de TFTP Y
DHCP. Ver TFTP
server installation y DHCP
server installation , corra
#
rpm -Uvh pxes-base-arch-0.6-release.i386.rpm
por defecto se instala en /opt , si
desea otra ubicación especificar con --prefix=/dir
Instalando con tgz
Untar (descomprimar el archivo tgz), y
como root corra
#
make install
Instalación de
servidor TFTP
Se requiere por lo menos tftp-server-0.28-2.
#
rpm -Uvh tftp-server*.rpm
O instalar tftp-hpa-server-0.28-1
Verificar y probar
Instalción del srvidor DHCP
Se puede utilizar dhcp-2.0pl5-8 o dhcp-3.0pl1-9
#
rpm -Uvh dhcp-2.0pl5-8.rpm
La configuración deberia ser como:
allow booting;
allow bootp;
# Standard configuration directives...
option domain-name "your.domain";
option domain-name-servers ns1.your.domain, ns2.your.domain;
option routers 10.0.0.1;
option resource-location-servers server.your.domain;
option font-servers server.your.domain;
option x-display-manager server.your.domain;
option tftp-server-name "tftp.your.domain";
max-lease-time 120;
default-lease-time 120;
subnet 10.0.1.0 netmask 255.255.255.0 {
}
# Group the PXE bootable hosts together
group {
# PXE-specific configuration directives...
next-server tftp.your.domain;
server-name "dhcp.your.domain";
filename "/pxes/pxelinux.0";
get-lease-hostnames true;
use-host-decl-names on;
host pxes1 {
hardware ethernet 0:01:02:7a:e1:af;
fixed-address 10.0.1.1;
}
host pxes2 {
hardware ethernet 0:01:02:d2:1c:e6;
fixed-address 10.0.1.2;
}
}
|
Correr el servidor en Modo Debug
#
dhcpd -d
Instalar
herramientas de configuracion de PXES
Instalar con RPM
pxesconfig depende Gtk-Perl y Glade-Perl,
es necesario instalar Gtk-Perl version 0.7008-3 o mayor y
Glade-Perl 0.60 o mayor.
#
rpm -Uvh Gtk-Perl-0.7008-3.i386.rpm
# rpm -Uvh Glade-Perl-0.60-1.noarch.rpm
Instalar pxesconfig-0.6-release
RPM,
#
rpm -Uvh pxesconfig-0.6-release.noarch.rpm
Installing from tgz
Descomprimir, edite el Makefile.PL y corra
#
perl Makefile.PL
# make
# make install
Creación
y modificación del disco RAM inicial
Seguir instrucciones del druid de GNOME
Adicionar entrada al /etc/fstab
para permitir montaje del sistema de archivos, asi:
/tmp/pxes.initrd /tmp/pxes ext2 loop,noauto,user,owner 0 0
|
Correr /opt/bin/pxesconfig con
las opciones adecuadas.
Ver para configuracion rapida Pxesconfig
Quick Start Guide .
Archivo
de configuración del BOTT
Si cambia el nombre original del disco RAM
de inicio o necesita cambiar parametros es necesario añadir o
cambiar el archivo de configuracion de pxelinux /tftpboot/pxes/pxelinux.cfg/default
default pxes
prompt 1
timeout 600
display pxes.msg
F1 pxes.msg
label pxes
kernel vmlinuz-2.4.20-1pxes.i586
append ramdisk_size=16384 vga=771 console=null initrd=pxes-0.6.initrd root=/dev/ram
label pxes247
kernel vmlinuz-2.4.7-10pxes
append ramdisk_size=16384 initrd=pxes-0.6.initrd root=/dev/ram
|
Asegurese del valor ramdisk_size
chequee el tamaño del archivo /tmp/pxes.initrd
Arranque
modo grafico
Si la controladora
cumple con VESA, establecer el modo VGA apropiado en linea de
comandos
|
640x400
|
800x600
|
1024x768
|
256
|
0x301 (769)
|
0x303 (771)
|
0x305 (773)
|
32K
|
0x310 (784)
|
0x313 (787)
|
0x316 (790)
|
64K
|
0x311 (785)
|
0x314 (788)
|
0x317 (791)
|
16M
|
0x312 (786)
|
0x315 (789)
|
0x318 (792)
|
Arranque del cliente
Defina BIOS o interrumpa el boot normal de red
mediante F8 o F12. Si todo va bien deberia ver la direccion IP y
el pescadito, luego saldria
boot:
presione enter, defina su nombre, luego
deberia para el login de XDMCP o Microsoft
Terminal Server
Parametros lineas de comando de kernel
To alter the behavior of the client while it is
booting some special kernel command line parameters can be added
in the boot configuration file or from the keyboard.
Variable
|
Abrev.
|
Tipo
|
|
ASK
|
|
|
|
BOOT_MESSAGES
|
bm
|
integer
|
nivel de mensajes de
boot
|
CONFIGURATION_DIRECTORY
|
cdir
|
string
|
configuracion de
directorio
|
CONFIGURATION_SERVER_NAME
|
csn
|
string
|
configuracion del server
name
|
CUSTOM_SESSION
|
|
string
|
|
DHCP_ERROR_NON_FATAL
|
|
boolean
|
|
KEYBOARD_LAYOUT
|
|
string
|
|
LOCAL_DVDCDROM_ENABLED
|
|
boolean
|
|
LOCAL_FLOPPY_ENABLED
|
|
boolean
|
|
LOCAL_HARDDISK_ENABLED
|
|
boolean
|
|
LOCAL_PRINTER_DEVICE
|
|
boolean
|
|
LOCAL_PRINTER_ENABLED
|
|
boolean
|
|
LOCAL_PRINTER_PORT
|
|
integer
|
|
LOCAL_SAMBA_ENABLED
|
|
boolean
|
|
LOCAL_SESSION
|
|
string
|
|
LOCAL_SOUND_CARD
|
|
string
|
|
LOCAL_SOUND_CARD_OPTIONS
|
|
string
|
|
LOCAL_SOUND_DEVICE
|
|
string
|
|
LOCAL_SOUND_ENABLED
|
|
boolean
|
|
LOCAL_USB_ENABLED
|
|
boolean
|
|
MOUSE_ACCEL_DIV
|
|
integer
|
|
MOUSE_ACCEL_MULT
|
|
integer
|
|
MOUSE_ACCEL_THR
|
|
integer
|
|
MOUSE_DEVICE
|
|
string
|
|
MOUSE_EMULATE_3_BUTTONS_ENABLED
|
|
boolean
|
|
MOUSE_EMULATE_3_TIMEOUT
|
|
integer
|
|
MOUSE_HANDED
|
mh
|
string
|
|
MOUSE_PROTOCOL
|
mp
|
string
|
|
MOUSE_PROTOCOL_PREFIX
|
mpp
|
string
|
|
MOUSE_WHEEL_ENABLED
|
mwe
|
boolean
|
|
NETWORK_CARD
|
nc
|
string
|
|
NETWORK_CARD_OPTIONS
|
nco
|
string
|
|
PROMPT_BEFORE_CLIENT
|
|
boolean
|
Inittab setting
|
PXES_DEBUG
|
|
integer
|
|
RDP_DOMAIN
|
rd
|
string
|
|
RDP_DONT_REQUEST_LICENSE
|
|
boolean
|
|
RDP_DONT_SEND_MOTION_EVENTS
|
|
boolean
|
|
RDP_FORCE_BITMAP_UPDATES
|
|
boolean
|
|
RDP_GEOMETRY
|
|
string
|
|
RDP_IS_FULL_SCREEN
|
|
boolean
|
|
RDP_PASSWORD
|
rp
|
string
|
|
RDP_SERVER_NAME
|
rdp
|
string
|
|
RDP_SERVER_VERSION
|
rsv
|
string
|
|
RDP_USER
|
ru
|
string
|
|
REMOTE_CONFIGURATION_ENABLED
|
rce
|
boolean
|
|
VNC_COMPRESSION
|
|
integer
|
|
VNC_DISPLAY
|
|
integer
|
|
VNC_GEOMETRY
|
|
string
|
|
VNC_IS_FULL_SCREEN
|
|
boolean
|
|
VNC_IS_SHARED
|
|
boolean
|
|
VNC_PASSWORD_FILE
|
|
string
|
|
VNC_QUALITY
|
|
integer
|
|
VNC_SERVER_NAME
|
vnc
|
string
|
|
WAIT_ON_ERROR
|
woe
|
boolean
|
|
X_BPP
|
|
integer
|
|
X_COLOR_DEPTH
|
|
integer
|
|
X_DRIVER
|
xd
|
string
|
|
X_DONT_ZAP
|
|
boolean
|
|
X_FONT_SERVER_ENABLED
|
|
boolean
|
|
X_FONT_SERVER_NAME
|
|
string
|
|
X_FONT_SERVER_PORT
|
|
integer
|
|
X_HORIZONTAL_SYNC
|
|
string
|
|
X_MONITOR_AUTODETECT_ENABLED
|
|
boolean
|
|
X_NUMLOCK
|
|
boolean
|
|
X_OPTION_NOACCEL
|
|
boolean
|
|
X_REMOTE_CONNECTIONS_AUTHORIZED_FROM
|
|
string
|
|
X_REMOTE_CONNECTIONS_ENABLED
|
|
boolean
|
|
X_SESSION_TYPE
(DEPRECATED)
|
|
string
|
|
X_VERTICAL_REFRESH
|
|
string
|
|
X_VIDEO_MODES
|
|
string
|
|
XDM_METHOD
|
|
string
|
|
XDM_SERVER_NAME
|
|
string
|
|
XDM_SERVER_PORT
|
|
integer
|
|
Arranque alternativo
-
Etherboot
-
Hard disk
-
CD-ROM
-
DiskOnChip
Hardware
soportado
Para 586
Tarjeta de red
-
3Com 3c59x/3c9xx
ethernet
-
Intel i82595 ISA
EtherExpressPro10/10+
-
Intel
i82557/i82558/i82559 PCI EtherExpressPro
-
Lance
-
NE 2000
-
PCI NE2000 clone
-
PCnet32 and
PCnetPCI
-
SiS 900 PCI Fast
Ethernet
-
SMC Ultra
-
SMC 9194
-
TI ThunderLAN
based ethernet PCI
-
Western Digital
-
Digital 21*4*
Tulip ethernet
-
RealTek RTL-8139
Fast Ethernet
-
VIA Rhine
Tarjeta Video
s3_savage, NV1, STG2000, RIVA 128, RIVA TNT,
RIVA TNT2, RIVA ULTRA TNT2, RIVA VANTA, RIVA ULTRA VANTA, RIVA
INTEGRATED, GeForce 256, GeForce DDR, Quadro, GeForce2 GTS,
GeForce2 GTS (rev1), GeForce2 Ultra, Quadro 2 Pro, GeForce2 MX,
GeForce2 MX DDR, Quadro 2 MXR, ET4000, ET4000W32, ET4000W32i,
ET4000W32i_rev_b, ET4000W32i_rev_c, ET4000W32p, ET4000W32p_rev_a,
ET4000W32p_rev_b, ET4000W32p_rev_c, ET4000W32p_rev_d, ET6000,
ET6100, et3000, pvga1, wd90c00, wd90c10, wd90c30, wd90c24,
wd90c31, wd90c33, gvga, r128, ati, sis86c201, sis86c202,
sis86c205, sis86c215, sis86c225, sis5597, sis5598, sis6326,
sis530, sis620, sis300, sis630, sis540, tvga8200lx, tvga8800cs,
tvga8900b, tvga8900c, tvga8900cl, tvga8900d, tvga9000, tvga9000i,
tvga9100b, tvga9200cxr, tgui9400cxi, tgui9420, tgui9420dgi,
tgui9430dgi, tgui9440agi, cyber9320, tgui9660, tgui9680, tgui9682,
tgui9685, cyber9382, cyber9385, cyber9388, cyber9397, cyber9520,
cyber9525, 3dimage975, 3dimage985, cyber9397dvd, blade3d,
cyberblade, clgd5420, clgd5422, clgd5424, clgd5426, clgd5428,
clgd5429, clgd5430, clgd5434, clgd5436, clgd5446, clgd5480,
clgd5462, clgd5464, clgd5465, clgd6205, clgd6215, clgd6225,
clgd6235, clgd7541, clgd7542, clgd7543, clgd7548, clgd7555,
clgd7556, ncr77c22, ncr77c22e, cpq_avga, mga2064w, mga1064sg,
mga2164w, mga2164w AGP, mgag200, mgag100, mgag400, oti067, oti077,
oti087, oti037c, al2101, ali2228, ali2301, ali2302, ali2308,
ali2401, cl6410, cl6412, cl6420, cl6440, video7, ark1000vl,
ark1000pv, ark2000pv, ark2000mt, mx, realtek, s3_virge, AP6422,
AT24, AT3D, s3_svga, NM2070, NM2090, NM2093, NM2097, NM2160,
NM2200, ct65520, ct65525, ct65530, ct65535, ct65540, ct65545,
ct65546, ct65548, ct65550, ct65554, ct65555, ct68554, ct69000,
ct64200, ct64300, mediagx, V1000, V2100, V2200, p9100, spc8110,
i740, i740_pci, Voodoo Banshee, Voodoo3, i810, i810-dc100, i810e,
i815, smi, generic
Audio
-
ac97
-
ac97_codec
-
aci
-
ad1816
-
ad1848
-
adlib_card
-
Audio Excel DSP
16 Driver Version 1.3
-
SB AWE32/64
WaveTable driver
-
btaudio - bt878
audio dma driver
-
CM8x38 Audio
Driver
-
CS4232 based
soundcard driver
-
Crystal
SoundFusion Audio Support
-
ES1370 AudioPCI
Driver
-
ES1371 AudioPCI97
Driver
-
ESS Solo1 Driver
-
gus
-
Intel 810 audio
support
-
mad16
-
ESS Maestro
Driver
-
ESS
Maestro3/Allegro Driver
-
maui
-
mpu401
-
Turtle Beach
MultiSound Driver Base
-
Turtle Beach
MultiSound (Classic/Monterey/Tahiti) Linux Driver
-
nm256_audio
-
opl3
-
opl3sa
-
Module for
OPL3-SA2 and SA3 sound cards (uses AD1848 MSS driver).
-
pas2
-
Module for PSS
sound cards (based on AD1848, ADSP-2115 and ESC614). This
module includes control of output amplifier and synth volume
of the Beethoven ADSP-16 card (this may work with other PSS
cards).
-
Soundblaster
driver
-
sb_lib
-
sgalaxy
-
S3 SonicVibes
Driver
-
OSS Sound
subsystem
-
Core sound module
-
sscape
-
Trident
4DWave/SiS 7018/ALi 5451 PCI Audio Driver
-
uart401
-
uart6850
-
Turtle Beach
WaveFront Linux Driver
-
Yamaha YMF7xx PCI Audio
Enlaces
http://pxes.sourceforge.net/
http://syslinux.zytor.com/
http://www.busybox.net/
http://www.rdesktop.org/
http://www.redhat.com/
http://www.kernel.org/pub/software/network/tftp/
http://tftpd32.jounin.net/
http://etherboot.sf.net/
http://rom-o-matic.org/
Linux Terminal Server y Star Office 5.2
Ing. Aldo E. Russo y Sergio E. Goberitz
El proyecto trata de poner en marcha un servidor de terminales gráficas en Linux. Dichas terminales corren
en el servidor y no poseen disco rígido. Pueden utilizarse equipos 486 con 8 Mb de ram como terminales. El propósito final es ejecutar en ellas el Star Office 5.2.
La elección del Star Office radica en su compatibilidad de ida y vuelta con los documentos , con respecto a
paquetes Office de gran difusión.
Los equipos 486 son comunes dentro del ámbito escolar en nuestra región.
Hemos trabajado con Linux desde 1997 en modo texto para aplicaciones de conectividad a internet. De
hecho , nuestro primer equipo, una 486 DX2 66 con 12 Mb disco de 340Mb y cuatro puertos serie, atiende cuatro módems externos conectados a la central telefónica interna de la escuela, para poder llegar con la distribución de internet a departamentos de la escuela que se encuentran alejados como para haber tendido un cable en su momento. Está conectado a un servidor proxy principal , que en los viejos tiempos discaba por otro módem al proveedor.
Si bien el servidor principal de internet de la escuela ha sufrido muchos cambios y actualizaciones desde sus
inicios, el servidor telefónico sigue siendo el original, sigue prestando servicios . Si bien, los módems y/o los puertos a veces se han colgado , el Linux jamás lo hizo . Sigue instalado el Red Hat 5.0 original
Consideramos que había llegado la hora del entorno gráfico de Linux
El proyecto del terminal server lo tomamos de : www.ltsp.org , y en nuestra escuela estamos en una etapa de
prueba (pre beta diría yo), ya que todavía no pudimos correr mas de catorce terminales a la vez, y todavía no lo hemos probado con alumnos , que son los que encuentran todos los defectos , hasta los que no se nos hubieran ocurrido.
Todo comenzó tratando, como siempre, de sacar el mayor “jugo” posible al equipamiento que poseemos que
como en todas las escuelas estatales , casi siempre es obsoleto o está en vías de serlo en muy poco tiempo.
Desde fines del año 2000 , comenzamos a investigar el Sistema X de Linux para uso masivo en la escuela,
ya que viene teniendo muy buenas críticas y es gratis (solo el costo de la distribución), (no más amenazas de Software Legal), además es muy estable (se cuelga poco, o casi nada), y es verdaderamente un S.O. multitarea y multiusuario.
A este punto, intentamos instalar linux Red Hat 7.0 en las máquinas de un laboratorio de ciclo básico como eran 486 con 8 Mb, las dificultades fueron demasiadas. Instalamos entonces el ya probado Red Hat 5.0 y tratamos de correr Star Office 5.1 era tanto el tiempo que tardaba que un enano escondido en la máquina escribiendo ceros y unos hubiera escrito mucho más rápido la pantalla, por lo que decidimos abandonar la idea de ejecutar las aplicaciones en estos equipos y seguir buscando otras soluciones.
Buscando por Internet proyectos y aplicaciones Linux que permitieran compartir al menos dos o tres
máquinas chicas encontramos el proyecto L.T.S.P. (Linux Terminal Server Project), que por lo que hemos podido observar a la fecha está superando por mucho nuestras aspiraciones.
Como vimos que esto podía andar, apostamos mas alto, si en estas terminales se pudiera correr el Star
Office, Suit de utilitarios de oficina disponible para Linux(como para otros S.O.), muy potente y que es compatible con otras Suit de oficina comerciales (y de manejo muy parecido a éstas) y también gratis para uso personal o educación.
Si esto funciona podríamos abarcar en un principio todo lo que enseñamos en los años que corresponden al ciclo básico ya que tendríamos tanto procesador de texto como planilla de cálculo, además de permitirnos navegar por Internet.
En un principio , instalamos Red Hat 7.0 en lo que iba a ser el Servidor de Pruebas, (un Pentiun 233 Mhz con 64 Mb de Ram y un Hard Disk de 6 Gb y dos placas de red , una para las terminales y otra para la conexión a las demas redes e Internet, e instalamos el LTSP y probamos con una terminal 486 DX2 66 con 16 Mb de Ram sin disco rígido y con disketera , ya que el booteo lo hicimos con una imagen en diskete , al principio instalamos bootp siguiendo el documento de instalación, pero luego vimos que teníamos idéntico resultado usando el DHCP que viene con Linux , por lo que descartamos el bootp .
Grande fue nuestra sorpresa cuando vimos que el Star Office corría aceptablemente en la terminal, aunque después de una carga bastante lenta .
Llevamos entonces la memoria del servidor a 128 Mb de Ram. Aquí un problema, el Linux reconocía solo 64 Mb, Hay una FAQ´s que dice como solucionarlo.
Luego conseguimos una máquina con un AMD K6 II 500 en la cual pusimos el disco rígido de la anterior y logramos que funcione todo bastante mejor, tuvimos que esperar tres semanas hasta que la escuela pudo comprarnos memoria para llevarla a 256 Mb, en estas condiciones ya pudimos conectar siete terminales.
Alrededor del 19 de Julio actualizamos el Linux al Red Hat 7.1 ya que este tiene el kernel 2.4 y pensamos que
nos permitiría mejorar la detección de algunas placas,y algunos problemas de la conección con las terminales y entonces ocurrió lo que no esperábamos. No se conectó ninguna terminal mas. El firewall y algunas características de seguridad del 7.1 que no tuvimos en cuenta. Por más que tratamos no pudimos hacerlo volver a funcionar, y decidimos reinstalar todo desde cero, (total es un servidor de pruebas), le cambiamos el disco rígido por uno de 15 Gb, e instalamos todo de nuevo,(Linux 7.1, LTSP, y Star Office) y probamos con una sola terminal, (habíamos guardado los archivos de configuación del LTSP para las terminales que teníamos), al principio no se conectaban, luego de varios intentos y modificaciones , logramos conexión pero con gran cantidad de fallas, al final nos dimos cuenta que el problema estaba en que las placas de red estaban seteadas en Full Duplex y cuando las pasamos a Halft Duplex , comenzó a funcionar todo.
Pudimos llevar la memoria a 512 Mb , (el Red Hat 7.1 no tiene problemas en reconocerla), y pudimos conectar 14 terminales , pero por encima de las 10 ya se pone un poco pesada la red, todavía no sabemos si es que estamos trabajando con una red de 10 Mb o el servidor se está poniendo pesado.
Algunos problemas :
Las terminales con chip de video Cirrus Logic no las hemos podido , hasta la fecha, hacer dar más de 256 colores, no asi las que tienen chip S3 que dan 16K.
Otra, el Star Office se puede instalar para red, pero todos los usuarios deben hacer la instalación de workstation, eso no sería problema para pocos usuarios , pero para todos los alumnos que pasan por el laboratorio, es mucho!!, para colmo la instalación para que salga bien debe hacerce sobre el servidor. Estamos trbajando para ver si encontramos una solución a esto.
El futuro: de solucionar los problemas anteriores, aun falta analizar como hacer de esto un sistema seguro, como hacer que en las terminales de los docentes se puedan habilitar las disketeras, como asi las impresoras.
Todavia falta bastante , pero estamos en el camino correcto, enseñar lo mas posible , con los recursos a nuestro alcance, requiriendo de la maltrecha economía de la escuela lo mínimo indispensable, y creemos que esa solución se llama
Linux.
Plataforma de referencia S-Helio 1.1
La plataforma de referencia S-Helio 1.1 es un diseño de una red de área local para un colegio, que se basa en Linux Debian y aplicaciones de libre redistribución. En esta red hay por lo menos un computador de más capacidad al que llamamos servidor y otros computadores tal vez menos poderosos a los que llamamos clientes. Al diseñarla hemos considerado:
Emplear únicamente software que pueda usarse sin costo alguno y que resulte ser semilla y fruto de colaboración. Por esto sólo sugerimos software de libre redistribución de muy buena calidad. Ver Lectura Software de libre redistribución.
Que la red se constituya en una intranet del colegio para ser usada por usuarios de uno de los siguientes grupos: estudiantes, profesores, personal administrativo y eventualmente padres y exalumnos.
Que cada usuario cuente con su espacio propio, que disponga de herramientas básicas, que pueda comunicarse con otros usuarios de la red (finger, talk, correo electrónico) y que pueda consultar la documentación y los recursos que el colegio brinde en la intranet (NFS, ftp, web, telnet, ssh).
Que el transito de otro sistema operativo a Linux sea lo menos abrupto posible. Por esto sugerimos un ambiente de escritorio sencillo (GNOME), escribimos documentación inicial de dominio público para usuar y administrar el sistema y ofrecemos soporte gratuito. Como las fuentes de esta documentación son de dominio público, pueden ser completadas, modificadas y usada en su colegio de acuerdo a sus políticas. Puede recibir soporte de voluntarios en la lista <[email protected]>, a la que puede suscribirse en http:// lists.sourceforge.net/lists/listinfo/structio-sopcol, o si desea colaborar a desarrollar guías puede suscribirse a la lista <[email protected]> desde http://lists.sourceforge.net/lists/listinfo/structio- guias
Que el software y la documentación para el usuario final sean vistos en español y que el teclado pueda generar todos los caracteres de nuestro idioma.
Suponemos que el colegio cuenta con PCs no tan modernos y que no podrá invertir grandes recursos económicos para actualizarlos (aun cuando esta plataforma de referencia S-Helio 1.1 también funciona con computadores nuevos).
Suponemos que cada PC de la red es medianamente autónomo, es decir, que puede funcionar aislado de red con un sistema Linux mínimo[1].
Buscamos distribuir al máximo el espacio de los discos de cada computador y la carga de los procesadores aprovechando para esto la red.
Nos hemos basado en la experiencia en un colegio concreto[2].
Hemos tenido en cuenta otros diseños de red para colegios (RedEscolar[3]. ), software sugerido por organizaciones (OFSET[4]) y distribuciones enfocadas en educación (Debian-Jr[5]).
Que la interconexión de diversas redes que sigan estas recomendaciones sea posible y fácil, así como una eventual conexión a Internet. Aunque en estas guías no se describe en detalle como lograr una conexión segura a Internet.
A continuación presentamos la plataforma de referencia S-Helio 1.1 en varias etapas: Red, Computadores y Software. Además al final de esta sección presentamos software de libre redistribución adicional que podría usarse en un colegio y que funciona bien sobre la plataforma de referencia.
Note que esta sección es de carácter técnico, precisamente estas guías le permitirán esclarecer los términos que aquí encuentre y pueden guiarlo en la instalación y uso de la plataforma de referencia S-Helio 1.1.
Red
Hardware:
Tarjetas Ethernet 10Mb (e.g. Compatibles NE-2000).
Medio físico
Cable 10Base-T o de pares trenzados (en inglés twisted pair).
Concentrador
Software para distribución de información
NIS
Usado para distribuir claves que residirán en el servidor.
NFS
Usado para distribuir los directorios /usr, /home, /var/mail [6] y /usr/share del servidor en todos los clientes [7]
/usr
se monta en los clientes como /opt, y por medio de la variables PATH, LD_LIBRARY_PATH (o el archivo /etc/ld.so.conf) y eventualmente enlaces, los usuarios pueden disponer de todos varios de los programas que hay en el servidor.
/home
se monta en todos los clientes como /home, para que los directorios de los usuarios estén disponibles en todas las estaciones.
/var/mail
se monta en todos los clientes como /var/mail para permitir que desde todos el programa mail funcione, mientras se centraliza la cola de correo en el servidor.
/usr/share
se monta en todos los clientes como /usr/share para dejar una sóla copia de la documentación, que pueda consultarse desde todos los computadores.
También se compartirá el directorio /aux de cada cliente en el servidor como /mnt/aux-n, de forma que en el servidor se pueda contar con todo el espacio que sobre en la red para redistribuirlo.
El servidor estará configurado como compuerta en todos los clientes (para una conexión sencilla a Internet de ser posible) y actuará como servidor de diversos protocolos (como se presenta a continuación).
Computadores
Servidor
Procesador >= Pentium o AMD 686, Memoria: >=64MB.
Tarjeta de video >=VGA, Monitor capaz de presentar gráficas 640x480x16.
Disco Duro >=2GB dividido en particiones:
Partición para swap con la misma cantidad de memoria RAM o una cantidad cercana.
/boot con mínimo 10MB y preferiblemente ubicada entre los primeros 1024 cilindros del disco (la ubicación en los primeros 1024 cilindros es indispensable si su BIOS es de antes de 1998 o no soporta LBA32).
/home para cuentas de usuarios (se sugiere un espacio mínimo de 2MB por cada usuario del sistema).
/var por lo menos 100MB más al menos 500K por cada usuario (en esta partición se mantendrá la cola de correo electrónico).
/ con el resto del espacio del disco duro.
Computadores clientes
Procesador >=486, Memoria: >=32MB.
Tarjeta de video >=VGA, Monitor capaz de presentar gráficas 640x480x16.
Disco Duro >=300MB por equipo dividido en particiones: @itemize @item /boot con mínimo 10MB y ubicado en los primeros 1024 cilindros del disco (la ubicación en los primeros 1024 cilindros es indispensable si su BIOS es de antes de 1998 o no soporta LBA32). el computador tiene una BIOS posterior a 1998 no es indispensable que /boot esté en los primeros 1024 cilindros).
/ con mínimo 250MB, aun cuando de ser posible se sugiere 1.5GB.
/swap con la misma cantidad de memoria RAM o un poco más.
/aux con el espacio restante del disco duro.
Teclado, ratón, unidad para disquete 3 1/2 (se sugiere unidad de CD-ROM al menos durante la instalación).
Software
En cada cliente:
La distribución Debian 2.2.
GNOME >= 1.2 (si es posible XimianGNOME >= 1.2).
Locales deben estar instalados por lo menos los siguientes programas: servidor de X-Window, cliente y servidor telnet, cliente y servidor ssh, cliente y servidor ftp, cliente y servidor finger, cliente y servidor talk, cliente y servidor de NFS, cliente de NIS, servidor de correo exim, bash.
Los paquetes son: adduser, ae, alsa-base, apt, at, base-config, base-files, base-passwd, bash, bc, biff, bin86, binutils, bison, bsdmainutils, bsdutils, bug-buddy, console-data, console-tools, console-tools-libs, cpio, cpp, cron, dc, debconf-tiny, debian-policy, debianutils, dialog, diff, dnsutils, doc-debian, doc-linux-text, dpkg, dpkg- dev, dpkg-ftp, dpkg-perl, e2fsprogs, ed, eject, elvis-tiny, emacs20, emacsen-common, enscript, esound, esound-common, exim, fbset, fdflush, fdutils, file, fileutils, findutils, finger, fingerd, flex, freetype2, ftp, g++, gcc, gcompris-data, gdb, gdk-imlib1, gdm, gettext-base, gmc, gnome-applets, gnome-bin, gnome-control-center, gnome-core, gnome-help, gnome-help-data, gnome-libs-data, gnome-panel, gnome-panel-data, gnome-session, gnome-terminal, gpm, grdb, grep, groff, gs, gsfonts, gzip, helix-sweetpill, hostname, iamerican, ibritish, imlib- base, imlib1, info, isapnptools, ispell, ldso, less, libart2, libasound0.4, libaudiofile0, libc6, libc6-dev, libcapplet0, libdb2, libdb2-util, libesd-alsa0, libgdbmg1, libgdk-pixbuf-gnome2, libgdk-pixbuf2, libghttp1, libglade-gnome0, libglade0, libglib1.2, libgmp2, libgnome32, libgnomesupport0, libgnomeui32, libgnorba27, libgnorbagtk0, libgtk1.2, libgtkxmhtml1, libgtop1, libident, libjpeg62, liblockfile1, libncurses4, libncurses5, libnet-perl, libnet- telnet-perl, libnewt0, libopenldap-runtime, libopenldap1, liborbit0, libpam-modules, libpam-runtime, libpam0g, libpanel-applet0, libpaperg, libpcre2, libpng2, libpopt0, libreadline4, librep9, libssl09, libstdc++2.10, libstdc++2.10-dev, libtiff3g, libungif3g, libwrap0, libxml1, libzvt2, lilo, locales, lockfile-progs, login, logrotate, lpr, lsof-2.2, lynx, m4, magicfilter, mailx, make, makedev, man-db, manpages, manpages-dev, mawk, mbr, mc- common, mime-support, minicom, modconf, modutils, mount, mpack, mtools, mutt, ncurses-base, ncurses-bin, ncurses-term, netbase, nfs-common, nfs-server, nis, nvi, passwd, patch, pciutils, perl-5.005, perl-5.005-base, perl-5.005-doc, perl-5.005-suid, perl-base, perl-tk, pidentd, ppp, pppconfig, procmail, procps, psmisc, pump, rcs, rep, rep-gtk, sawfish, sawfish-gnome, sed, setserial, sharutils, shellutils, slang1, ssh, ssh-askpass, ssh- askpass-gnome, ssh-askpass-ptk, strace, svgalibg1, sysklogd, syslinux, sysvinit, talk, talkd, tar, task-helix-core, tasksel, tcl8.2, tcpd, tcsh, tcsh-i18n, telnet, telnetd, tetex-base, tetex-bin, tetex-lib, texinfo, textutils, time, tk8.2, update, util-linux, vflib2, wenglish, whiptail, whois, xbase-clients, xf86setup, xfonts-100dpi, xfonts-base, xfree86- common, xlib6g, xpm4g, xserver-common, xserver-svga, xserver-vga16, xviddetect, zlib1g
Bien locales o compartidos de /usr del servidor, montado como /opt en los clientes: gmc,man, gcalc, gnotepad, gnomecal, mtools, info, chfn, mesg, useradd, userdel, groupadd, groupdel, mail, ps, pstree, top, dmesg, last, w, who, grep, sed, awk, sort, cat, tac, head, tail, nl, wc, split, csplit, abiword, gimp, dia, emacs, gcc, make, gdb, xdvi, dvi2ps, gv, chown, chgrp, gnorpm, lynx, w3m, gtop de ser posible un navegador gráfico y un cliente de correo gráfico.
En el servidor deben estar los mismos programas de cada cliente y además:
El servidor Apache.
Toda la documentación posible en /usr/share (estas guías, Documentación de GNOME, HOWTOs, Network Administrator Guide, System Administrator Guide, archivos para man e info).
Servidor de NIS.
Herramientas para documentación con Texinfo: makeinfo, texi2dvi, texi2html.
Extensiones y programas para Emacs: gnus y opcionalmente w3 que estarían compartidos en /usr/share.
Los paquetes incluyen: abiword, adduser, ae, alsa-base, amaya, anacron, apache, apache-common, apache-doc, apt, asigna, at, auctex, autoclass, autoconf, automake, balsa, base-config, base-files, base-passwd, bash, bc, bibindex, bibtool, biff, bin86, bind, bind-doc, binutils, bison, blt, blt-common, blt-dev, blt8.0, bootpc, bsdgames, bsdmainutils, bsdutils, bug-buddy, build-essential, bzip2, ccmalloc, codecommander, console-data, console- tools, console-tools-libs, cpio, cpp, cron, cvs, cvs-buildpackage, cygnus-stylesheets, dc, ddd, debconf, debhelper, debian-policy, debiandoc-sgml, debianutils, debmake, developers-reference, dh-make, dia, diald, dialdcost, dialog, diff, diffstat, diploma, dlint, dnsutils, doc-base, doc-debian, doc-linux-es, doc-linux-text, docbook, docbook-doc, docbook-stylesheets, docbook-stylesheets-doc, docbook-to-man, docbook-xml, docbook2man, docbook2texi, dpkg, dpkg-dev, dpkg-ftp, dpkg-multicd, dpkg-perl, dupload, dvidvi, e2fsprogs, ecpg, ed, eeyes, eject, electric-fence, elvis-tiny, emacs20, emacsen-common, enscript, eog, esound-alsa, esound-common, exim, expect5.31, expectk5.31, f2c, fakeroot, fbset, fdflush, fdutils, fetchmail, fftw-dev, fftw2, file, fileutils, findutils, finger, fingerd, flex, fort77, fping, freetype2, ftnchek, ftp, g++, g77, gaim-gnome, gawk, gcc, gcc-doc, gcd, gdb, gdk-imlib1, gdm, gedit, gettext, gettext-base, gimp1.1, glade-gnome, glibc-doc, gmc, gnapster, gnome-applets, gnome-audio, gnome-bin, gnome-control-center, gnome-core, gnome-faq, gnome-gv, gnome-help, gnome-help-data, gnome-iconedit, gnome-libs-data, gnome-media, gnome-network, gnome-panel, gnome-panel-data, gnome-pim, gnome-pim-conduits, gnome-session, gnome-terminal, gnome-users-guide-en, gnome-utils, gnomeicu, gnosamba, gnotepad+, gnotepad+-help, gnumeric, gnuplot, gob, gobjc, gpm, gqview, grace, grdb, grep, groff, gs, gsfonts, gsfonts-x11, gtop, guile1.3, guitar, gv, gzip, helix-sweetpill, hostname, hyperlatex, iamerican, ibritish, icmpinfo, imlib-base, imlib1, indent, info, inn2, inn2-inews, ircd, ircd-dalnet, ircii, isapnptools, ispanish, ispell, jade, jadetex, junkbuster, kaffe, kernel-package, kernel-source-2.2.18pre21, lacheck, latex2html, ldso, less, lesstif1, lftp, libart2, libasound0.4, libaudiofile0, libbz2, libc6, libc6-dev, libcapplet0, libdb2, libdb2-util, libdigest-md5-perl, libesd0, libgal3, libgc5, libgc5-dev, libgdbmg1, libgdk-pixbuf- gnome2, libghttp1, libgimp1.1, libglade-gnome0, libglade0, libglib1.2, libglib1.2-dev, libgmp2, libgnome-pilot0, libgnome32, libgnomeprint-bin, libgnomeprint-data, libgnomeprint11, libgnomeprint6, libgnomesupport0, libgnomeui32, libgnorba27, libgnorbagtk0, libgpmg1, libgtk1, libgtk1.2, libgtk1.2-dev, libgtkxmhtml1, libgtop1, libguile6, libhtml-parser-perl, libi18n-langtags-perl, libident, libjpeg-progs, libjpeg62, liblockfile1, libltdl0, libltdl0- dev, libmime-base64-perl, libncurses4, libncurses5, libncurses5-dev, libnet-perl, libnet-telnet-perl, libnewt0, libnspr4, libobgnome0, libobgtk1, libogg0, libole2-0, libopenldap-runtime, libopenldap1, liborbit0, libpam- modules, libpam-runtime, libpam0g, libpanel-applet0, libpaperg, libpcap0, libpcre2, libpgsql2, libpgtcl, libpisock3, libpng2, libpopt0, libproplist0, libreadline4, librep9, librpm1, libruby, libsgmls-perl, libsp1, libssl09, libstdc++2.10, libstdc++2.10-dev, libtext-format-perl, libtiff3g, libtimedate-perl, libtool, libungif3g, libunicode0, liburi-perl, libvorbis0, libwrap0, libwraster1, libwww-perl, libxml1, libzvt2, lilo, lintian, locales, lockfile-progs, login, logrotate, lpr, lsof-2.2, lynx, m4, magicfilter, mailtools, mailx, maint-guide, make, makedev, makepasswd, man-db, manpages, manpages-dev, manpages-es, mawk, mbr, mc-common, memprof, menu, metrics, mime- support, minicom, modconf, modutils, mount, mozilla, mpack, mpage, mtools, ncurses-base, ncurses-bin, ncurses-term, netbase, netpbm, netpbm1, nfs-common, nfs-server, nis, nvi, ocaml-doc, octave, octave-ci, octave-doc, octave-htmldoc, packaging-manual, pan, passwd, patch, perl-5.005, perl-5.005-base, perl-5.005- doc, perl-5.005-suid, perl-base, pgaccess, pidentd, plotutils, pnmtopng, postgresql, postgresql-client, postgresql-contrib, postgresql-doc, postgresql-pl, postgresql-slink, ppp, pppconfig, procmail, procps, proftpd, psgml, psmisc, pstoedit, psutils, pump, python-base, python-doc, rcs, rdate, rdist, rep, rep-gtk, rpm, ruby, ruptime, rusers, rwall, rwho, rwhod, sawfish, sawfish-gnome, sed, setserial, sgml-base, sgml-data, sgmlspl, sgmltools-2, sharutils, shellutils, slang1, sp, ssh, stl-manual, strace, svgalibg1, swig, sysklogd, syslinux, sysvinit, t1lib1, talk, talkd, tar, task-c++-dev, task-c-dev, task-database-pg, task-devel-common, task-dns-server, task- fortran, task-gnome-apps, task-gnome-desktop, task-gnome-net, task-helix-core, task-objc-dev, task-python, task-science, task-sgml, task-spanish, task-tcltk, task-tcltk-dev, task-tex, task-x-window-system-core, tasksel, tcl8.0, tcl8.2, tcl8.2-dev, tclreadline, tcpd, tcpdump, telnet, telnetd, tetex-base, tetex-bin, tetex-doc, tetex-extra, tetex-lib, texinfo, textutils, tftp, time, tk8.0, tk8.2, tk8.2-dev, tktable, tktable-dev, traceroute, transfig, typist, ucblogo, untex, update, user-es, util-linux, vflib2, vile, vile-common, vile-filters, w3m, wenglish, wget, whiptail, whois, wmaker, wspanish, wvdial, wwwoffle, wzip, xaw3dg, xbase-clients, xchat-common, xchat-gnome, xcontrib, xf86setup, xfig, xfonts-100dpi, xfonts-75dpi, xfonts-base, xfonts-scalable, xfree86-common, xlib6g, xlib6g-dev, xpdf, xpm4g, xscreensaver, xserver-common, xserver-mono, xserver-svga, xviddetect, zip, zlib1g
Software Adicional
De acuerdo a las necesidades de su colegio, a los usuarios de la red y eventualmente al currículo, puede instalar software adicional. A continuación resumimos algunas de nuestras recomendaciones de acuerdo al tipo de usuario. La información más actualizada podrá consultarla en la versión más reciente de estas guías que está disponible en: http://structio.sourceforge.net/ guias/AA_Linux_colegio
Para Estudiantes:
Procesador de texto y hoja de cálculo livianos
abiword y gnumeric o pw y siag. Los primeros hacen parte de Gnome Office: http:// www.gnome.org/gnome-office/ (paquetes gnumeric y abiword) mientras los segundos de Siag Office: http://www.siag.nu/ (paquete xsiag). Si los computadores cliente tienen más de 64MB en RAM puede ser mejor opción OpenOffice que incluye filtros para leer y escribir en formatos de Microsoft Office: http:// www.openoffice.org (no hay paquete para Debian 2.2, si para versiones posteriores, los binarios distribuidos por OpenOffice corren bien).
Graficadores
Además de gimp (paquete gimp) se recomiendan xfig (paquete xfig) y dia (paquete dia). Tanto gimp como dia hacen parte de Gnome Office, el sitio de desarrollo de xfig es: http://www.xfig.org/
Mecanografía
GTypist disponible en: http://www.gnu.org/software/gtypist
Lenguajes
Logo: Una implementación es Berkeley Logo disponible en http://www.cs.berkeley.edu/~bh/logo.html
C: gcc, make y vim o emacs.
Java: paquete jdk1.1, hay versiones más recientes disponibles en el sitio de desarrollo: http:// www.javasoft.com
Tcl/Tk: paquetes tcl8.2 y tk8.2. El sitio de desarrollo es http://www.scriptics.com
Ocaml: El sitio de desarrollo es http://caml.inria.fr/ocaml
Bases de Datos
postgresql (paquete postgresql). Si prefiere una base de datos menos poderosa pero más liviana puede emplear MySQL (paquete mysql-server)
Matemáticas
Para estudiantes de Bachillerato Dr. Genius y Dr Geo. (paquete drgeo). Los sitios de desarrollo son: http:// www.ofset.org/drgenius y http://www.ofset.org/drgeo.
Para estudiantes de primaria que se acerquen a un computador
GCompris.http://www.ofset.org/gcompris
Para Profesores
Herramientas de Productividad
Si tiene computadores modernos cada uno con más de 64MB en RAM se recomienda OpenOffice: http:// www.openoffice.org En otro caso debe emplear herramientas más livianas como abiword, gnumeric o pw y siag.
Gradebook
para mantener planilla personal de calificaciones: http://www.gnu.org/software/ggradebook/
Para Secretarias y personal administrativo
Horarios
Para ayudar a asignar el horario de un colegio puede emplear el programa asigna --mantenido y desarrollado por miembros de Structio--. http://structio.sourceforge.net/asigna
Herramientas de Productividad
Vea el comentario sobre herramientas de productividad para profesores.
Usuarios y Grupos
Grupos
estudiantes- Sugerido GID 1101
profesores - Sugerido GID 1102
administración -Sugerido GID 1103
Usuarios
Usuarios: Identificaciones superiores a 1000 (siguiendo política de Debian).
Notas
[1]
Otro enfoque que permite usar computadores con aún menor capacidad puede consultarse en http://www.ltsp.org/
[2]
El Gimnasio Fidel Cano en Bogotá, Colombia. http://www.geocities.com/gimnasio_fidel_cano/proyectos.html
[3]
Distribución mejicana orientada a colegios http://redesc.linux.org.mx/es/
[4]
Organización francesa que promueve el uso de software libre en la educación http://www.ofset.org/
[5]
Puede verse el proyecto Debian-Jr en http://www.debian.org/devel/debian-jr/index
[6]
En Debian 2.2 /var/spool/mail es un enlace a /var/mail.
[7]
De acuerdo a http://www.pathname.com/fhs/2.0/fhs-2.html el estándar para jerarquías de Linux, esos directorios puede ser compartidos en red.
|
|
|
|
MANUAL PRACTICO
DE LSTP
Capítulo
1. Teoría de Operación
Capítulo
2. Instalando LTSP en el servidor
Capítulo
3. Configurando la estación de trabajo
Capítulo
4. Corriendo la estación de trabajo
Capítulo
5. Imprimiendo
Capítulo
6. Solución de problemas
Capítulo
7. Kernels
Capítulo
8. Entradas lts.conf
Capítulo
9. Aplicaciones Locales
Capítulo
10. Ejemplos de configuración
Capítulo
11. Otras fuentes de información
El LTSP provee una manera simple de utilizar estaciones
de trabajo de bajo costo tanto como terminales gráficas o bien como
terminales de caracteres sobre un servidor GNU/Linux.
En una configuración de oficina tradicional, hay PCs de
bastante poder desparramadas en cada escritorio. Cada una con varios
gigabytes de espacio en disco. Los usuarios almacenan su información en
sus discos locales y las copias de resguardo se realizan raramente (si es
que se realizan).
¿Tiene realmente sentido tener un computador completo
en cada escritorio?
Nosotros decimos que no.
Afortunadamente, hay otro camino. Utilizando LTSP,
puedes tomar cada PC de bajo poder, removerle el disco duro, el floppy y
la lectora de CDs y agregarle una placa de red con chip de inicio. Muchas
tarjetas de red poseen sócalos para bootroms (memorias ROM de inicio),
que están esperando que se les inserte uno de estos chips.
Durante la fase de inicio, la estación de trabajo sin
disco obtiene su dirección IP y un kernel (núcleo) desde el servidor,
montando luego su sistema de archivos raíz desde el mismo servidor vía
NFS.
La estación de trabajo puede ser configurada de tres
maneras:
- Sesiones de Telnet basadas en
caracteres
Cada estación de trabajo puede invocar múltiples
sesiones de telnet al servidor. Cada una de estas sesiones aparecerá
en una pantalla virtual separada. Presionando desde Alt-F1 hasta
Alt-F9 se cambiará entre cada una de dichas sesiones.
- Prompt de Shell
La estación de trabajo puede ser configurada para
dejarte justo dentro de una sesión de Bash en la consola. Esto es muy
útil para depurar problemas con X Window o con NFS.
Lo que es realmente impresionante de todo esto es que
puedes tener montones de estaciones de trabajo, todas servidas desde un único
servidor GNU/Linux. ¿Hasta cuántas estaciones te preguntas? Pues bien,
esto depende del tamaño del servidor y de las aplicaciones que has de
utilizar.
No es inusual tener 40 estaciones de trabajo, todas
corriendo Netscape y StarOffice, desde un Dual PIII-650 con 1GB de RAM.
Sabemos que esto funciona. ¡De hecho, el promedio de carga muy rara vez
sobrepasa 1.0!
Ni el autor ni ninguno de los distribuidores, o
cualquier otro contribuyente a este documento, es en modo alguno
responsable por los daños físicos, morales, o de cualquier otro tipo
incurridos por sólo hecho de seguir las sugerencias citadas en este
texto.
Este documento tiene copyright 2001 por James McQuillan,
y está realizado bajo los términos de la GNU Free Documentation License
(Licencia de Documentación Libre GNU), la cual es incorporada por la
presente para referencia.
Iniciar una estación de trabajo sin disco involucra
muchos pasos. Comprender qué está pasando a través del camino hará
mucho mas fácil resolver los problemas que pudiesen surgir.
Este ejemplo está basado en la siguiente configuración:
- Estación de trabajo estándar, basada en x86.
- Tarjeta de red Linksys LNE100TX con una bootrom
Etherboot.
- Chipset gráfico basado en Intel i810.
- Servidor corriendo RedHat 7.2.
- DHCP.
- Dirección de la red 192.168.0.0/24.
Asumiendo que el servidor está configurado con el
paquete LTSP, esto es lo que sucede:
- Cuando enciendes la estación de trabajo, la misma
pasa a través de su Power On Self Test - POST (autorevisión de
encendido).
- Durante la autorevisión, el BIOS buscará roms de
expansión. Cada tarjeta de red posee una bootrom Etherboot, la cual
es una rom de expansión. Por lo tanto el BIOS detectará la rom en la
placa de red.
- Una vez que el POST es completado, la ejecución
saltará dentro del código Etherboot.
- El código Etherboot buscará una placa de red. Una
vez que la misma es detectada, será inicializada.
- El código Etherboot realizará luego una petición
DHCP mediante un broadcast por la red. La petición incluirá la
dirección MAC de la tarjeta de red.
- El demonio dhcpd del servidor verá la petición de
broadcast de la estación de trabajo, y buscará dentro de su propio
archivo de configuración la entrada que concuerde con la dirección
MAC de la terminal.
- El demonio dhcpd construirá un paquete de respuesta,
conteniendo varias piezas de información. Este paquete será enviado
de vuelta a la estación de trabajo. Esta respuesta incluye:
- Dirección IP de la estación de trabajo.
- Máscara de red de la red local.
- Localización del núcleo a descargar.
- Localización del sistema de archivos raíz a
montar.
- Parámetros opcionales que deben ser pasados al núcleo,
a través de la línea de comandos del kernel.
- El código Etherboot recibirá la respuesta desde el
servidor y configurará la interfase TCP/IP en la tarjeta de red con
los parámetros que le fueron suministrados.
- Utilizando TFTP (Trivial File Transfer Protocol), el
código Etherboot se contactará con el servidor y comenzará a
descargar el núcleo.
- Una vez que el núcleo fue completamente descargado
en la estación de trabajo, el código Etherboot colocará al mismo en
la correcta locación de memoria.
- El control es pasado luego al núcleo, el cual
inicializará al sistema completo y a todos los periféricos que
reconozca.
- Aquí es donde la diversión comienza verdaderamente.
Hilvanada al final del kernel hay una imagen de un sistema de
archivos. Esta imagen es cargada en memoria como un ramdisk (disco de
memoria ), y es temporariamente montada como el sistema de archivos raíz.
Un argumento root=/dev/ram0 en la línea de
comandos del kernel le dice al mismo que debe montar la imagen como su
directorio raíz.
- Normalmente, cuando el núcleo finaliza su
inicialización, lanza al programa init. Pero,
en este caso, hemos instruido al kernel para que cargue un script de
shell. Hacemos esto mediando un argumento
init=/linuxrc en la línea de comandos del núcleo.
- El script /linuxrc comienza
rastreando el bus PCI en busca de alguna placa de red. Por cada
dispositivo PCI que encuentra, realiza una búsqueda en el archivo
/etc/niclist, para ver si hay alguna concordancia. Una vez que una
concordancia es encontrada, el nombre del módulo de la interfase de
red es retornado para que sea posteriormente cargado en el kernel.
Para las placas ISA, el nombre del módulo DEBE estar especificado en
la línea de comandos del kernel, junto con cualquier parámetro de
IRQ o dirección de memoria que fuera requerido.
- Una vez que la placa de red ha sido identificada, el
script /linuxrc cargará el módulo de kernel que soporta a dicha
tarjeta.
- dhclient correrá entonces,
para realizar otra petición a el servidor DHCP. Necesitamos hacer
esta petición separada debido a que si dependemos de la petición que
viene con Etherboot, la misma sería tragada por el kernel, y el mismo
ignoraría cualquier servidor NFS que fuera especificado en el
root-path (localización del directorio raíz). Esto es importante si
deseas que el servidor NFS sea diferente al servidor TFTP.
- Cuando dhclient obtenga una
respuesta desde el servidor, correrá el archivo
/etc/dhclient-script , el cual tomará la información recogida y
configurará la interfase eth0.
- Hasta este punto, el sistema de archivos raíz había
sido un disco ram. Ahora, el script /linuxrc montará un nuevo sistema
de archivos raíz a través de NFS. El directorio exportado por el
servidor es típicamente /opt/ltsp/i386. No
puede tan sólo montar al nuevo sistema de archivos como /. Debe
primero montarlo en /mnt. Luego, ejecutará
pivot_root (pivotaje del raíz). pivot_root realizará un
intercambio del sistema de archivos corriente por uno nuevo. Cuando
esto esté completado, el sistema de archivos NFS será montado como
/, y el viejo será montado en /oldroot.
- Una vez completado el montaje y el pivotaje del nuevo
sistema de archivos raíz, se acaba el script /linuxrc y un
init real es invocado.
- Init leerá el archivo etc/inittab
y comenzará a configurar el ambiente de la estación de trabajo.
- Init mantiene la idea de runlevel (nivel de
corrida). Cada runlevel prepara un conjunto diferente de servicios
para la estación de trabajo. La estación LTSP inicia en el runlevel
'2'. Esto está predispuesto por la línea initdefault del
archivo inittab.
- Uno de los primeros puntos en el archivo inittab es
el comando rc.local que correrá mientras la
estación de trabajo esté en el estado 'sysinit'.
- El script rc.local creará un disco ram de 1 MB que
contedrá todas las cosas que necesitan ser escritas o modificadas de
algún modo.
- El disco ram será montado en el directorio /tmp.
Cualquier archivo que necesite ser escrito o modificado existirá
realmente en el directorio /tmp, con algún
link simbólico apuntando hacia él.
- El sistema de archivos /proc
es montado.
- Si la estación de trabajo está configurada para
realizar intercambio sobre NFS, el directorio
/var/opt/ltsp/swapfiles del servidor será montado en
/tmp/swapfiles en la estación. Luego, si no hay ningún archivo de
intercambio para esta estación de trabajo que haya sido creado con
anterioridad, será creado automáticamente. El tamaño de este
archivo de intercambio es preconfigurado en el archivo lts.conf,
El archivo de intercambio es habilitado mediante el
comando swapon.
- La interfase de red de loopback es
configurada. Este es el dispositivo de red que tiene la dirección IP
127.0.0.1 .
- Si la opción de Aplicaciones Locales (Local Apps) es
habilitada, entonces el directorio /home será
montado, para que las aplicaciones puedan utilizar los directorios
personales de los usuarios.
- Varios directorios son creados en el sistema de
archivos /tmp para que contengan algunos de
los ficheros transitorios que son necesarios mientras el sistema está
corriendo. Algunos son:
- /tmp/compiled
- /tmp/var
- /tmp/var/run
- /tmp/var/log
- /tmp/var/lock
- /tmp/var/lock/subsys
Todos estos serán creados.
- El sistema X Window será ahora configurado. En el
archivo lts.conf, hay un parámetro llamado
XSERVER. Si este parámetro falta, o está puesto en "auto
", entonces se intentará una detección automática de la placa
de video. Si la misma es PCI, entonces se obtendrá el PCI Vendor y el
Device id, y se buscará a los mismos en el archivo
/etc/vidlist .
Si la placa es soportada por XFree86 4.X, el script
pci_scan devolverá el nombre del módulo controlador. Si por el
contrario la placa es sólo soportada por XFree86 3.3.6, pci_scan
devolverá el nombre del servidor X a utilizar. El script rc.local
puede saber la diferencia debido a que los nombres de los viejos
servidores X 3.3.6 comienzan con 'XF86_'.
- Si XFree86 4.x es utilizado, entonces el script
/etc/rc.setupx será llamado para construir un archivo XF86Config
para X4. Por el contrario, si XFree86 3.3.6 es utilizado, entonces
/etc/rc.setupx3 será llamado para construir el archivo
XF86Config.
El archivo XF86Config será construido en base a las
entradas contenidas en /etc/lts.conf.
- Cuando el script rc.setupx finaliza, retornará a
rc.local. Luego el script /tmp/start_ws será
creado. Este script es el responsable de llamar al servidor X.
- El archivo /tmp/syslog.conf
será creado. Este archivo contendrá información que le dirá al
demonio syslogd hacia qué máquina de la red
se le debe debe enviar la información de los historiales. Esta máquina
es especificada en el archivo lts.conf. Hay
un link simbólico llamado /etc/syslog.conf
que apunta hacia /tmp/syslog.conf.
- El demonio syslogd es
iniciado, usando el archivo de configuración creado en el paso
anterior.
- En control es nuevamente pasado a
init. Init buscará la entrada inittdefault para
determinar a cuál runlevel ingresar. Como en
lts_core-2.08, el valor por defecto es 2.
- El runlevel 2 causará que init
corra el script set_runlevel el cual leerá el
archivo lts.conf para determinar a cuál runlevel la estación de
trabajo ingresará de hecho.
Los runlevels estandar de LTSP son el 3,
el 4 y el 5.
- 3 - Este comenzará un shell.
Esto es muy útil para depuración de errores.
- 4 - Este correrá una o más
sesiones de Telnet en modo de caracteres. Esto es genial si estás
reemplazando viejas terminales seriales.
- 5 - Modo GUI (Interfase Gráfica
de Usuario). Este iniciará X Window, y enviará una petición
XDMCP al servidor, el cual devolverá una caja de diálogo de
inicio que te permitirá ingresar al servidor. Necesitarás para
esto tener un Display Manager (Administrador de Visualización)
escuchando en el servidor, tal como XDM ,
GDM o KDM.
Los paquetes LTSP están disponibles tanto en formato
RPM como en TGZ. Escoge el formato que más te
guste, y sigue las instrucciones en la sección apropiada.
Si quieres correr X Window en la estación de trabajo,
entonces hay 4 paquetes que necesitarás descargar. Ten en mente que, para
los propósitos de este documento, tenemos una estación de trabajo con
una tarjeta de red basada en Tulip y una placa de video basada en el
chipset Intel i810.
- Paquete principal LTSP (core package)
- Paquete de núcleo (kernel package)
- Paquete principal de X (X core package)
- Paquete principal de X (X core package)
El paquete de fuentes X no es realmente necesario, pero
para una instalación desde cero, es recomendado. Una vez que tengas en
claro cómo configurar un servidor y las estaciones de trabajo sin disco,
puedes levantar un servidor de fuentes X (XFS).
Luego de que los paquetes hayan sido instalados, el
sistema LTSP necesita ser inicializado. Este proceso incluye cambios en
los archivos de configuración del sistema para habilitar los servicios
necesitados por las estaciones en el servidor.
Descarga la última versión de los paquetes ltsp, e
instálalos mediante los siguientes comandos:
rpm -ivh ltsp_core-3.0.0-1.i386.rpm
rpm -ivh ltsp_kernel-3.0.1-1.i386.rpm
rpm -ivh ltsp_x_core-3.0.1-1.i386.rpm
rpm -ivh ltsp_x_fonts-3.0.0-0.i386.rpm
|
Los comandos arriba mencionados instalarán los paquetes
dentro del directorio /opt/ltsp/i386.
Descarga la última versión de los paquetes ltsp e instálalos
mediante los siguientes comandos:
tar xzf ltsp_core-3.0.0-i386.tgz
cd ltsp_core
./install.sh
cd ..
tar xzf ltsp_kernel-3.0.1-i386.tgz
cd ltsp_kernel
./install.sh
cd ..
tar xzf ltsp_x_core-3.0.1-i386.tgz
cd ltsp_x_core
./install.sh
cd ..
tar xzf ltsp_x_fonts-3.0.0-i386.tgz
cd ltsp_x_fonts
./install.sh
cd ..
|
Los comandos arriba mencionados instalarán los paquetes
dentro del directorio /opt/ltsp/i386.
Una vez que la instalación de los paquetes es
completada, necesitas entrar al directorio /opt/ltsp/templates.
Allí hay varios scripts que configurarán los archivos de sistema de tu
servidor. Cada uno de estos scripts es responsable por un archivo de
sistema. Mira el interior de estos scripts para asegurarte de que estás
de acuerdo con lo que van a hacer, ya que potencialmente pueden hacer tu
sistema vulnerable a un ataque de seguridad. Podrías desear realizar los
cambios al sistema de forma manual. Si por el contrario quieres hacerlo
automáticamente, entonces corre el comando ltsp_initialize:
cd /opt/ltsp/templates
./ltsp_initialize
|
El comando de arriba te preguntará acerca de cuáles
servicios quieres que configure. El mismo puede inicializar a los
siguientes :
- XDM - X Display Manager
- GDM - Gnome Display Manager
- Script de inicio del Display Manager
- bootp
- NFS, archivo /etc/exports
- tcpwrappers (archivos /etc/hosts.allow,
/etc/hosts.deny)
- Port mapper
- syslogd
- Script de inicio de TFTP
Ahora, es tiempo de contarle al servidor LTSP acerca de
tu estación de trabajo. Hay tres archivos que contienen información
acerca de la misma.
- /etc/dhcpd.conf
- /etc/hosts
- /opt/ltsp/i386/etc/lts.conf
La estación de trabajo necesita una dirección IP y
otra información. Obtendrá a través de un servidor DHCP lo siguiente:
- Dirección IP
- Nombre de host
- Dirección IP del servidor
- Pasarela por defecto
- Localización del núcleo a cargar
- Servidor y directorio a montar como el sistema de
archivos raíz
Para nuestro ambiente LTSP de ejemplo, hecmos elegido
DHCP para el manejo de las direcciones IP a las estaciones de trabajo.
Durante el script ltsp_initialize, un archivo dhcpd.conf
de muestra es instalado, llamado /etc/dhcpd.conf.example
. Puedes copiar al mismo en /etc/dhcpd.conf para
usarlo como base para tu configuración de dhcp. Probablemente necesitarás
modificar las partes correspondientes a tu estación de trabajo específica
y a tu ambiente en particular.
Como en LTSP versión 2.09pre2, no necesitas especificar
un kernel en particular para cargar. El paquete estándar de núcleo
soporta todas las placas de red que Linux soporta. Hay dos archivos de
kernel incluidos en el paquete LTSP-kernel. Uno de los archivos tiene el
Linux Progress Patch (parche que muestra una barra de progreso gráfica) y
el otro no. Los nombre de estos núcleos son:
vmlinuz-2.4.9-ltsp-5
vmlinuz-2.4.9-ltsp-lpp-5
|
Puede que hayas notado que el kernel sigue estando
ubicado en el directorio /tftpboot/lts, pero en
la entrada "filename" del archivo /etc/dhcpd.conf
no está el /tftpboot del comienzo. Esto es así
debido a que en versiones de RedHat superiores a 7.1 el TFTP corre con la
opción '-s', lo que causa que el demonio tftpd corra en modo
seguro, Esto significa que realiza un chroot
al directorio /tftpboot cuando comienza. Por lo
tanto, todos los archivos que están disponibles para el demonio tftpd son
relativos al directorio /tftpboot.
Otras distribuciones de Linux pueden no tener la opción
'-s' activa para tftpd, por lo que puedes necesitar agregar el prefijo /tftpboot
a la localización del kernel en el archivo /etc/dhcpd.conf.
Mapeo de direcciones IP a nombres de host
Las computadoras generalmente se comunican bastante bien
solo con direcciones IP. Pero los humanos venimos y necesitamos ponerles
nombres a los ordenadores, debido a que no podemos recordar los números.
Ahí es cuando el DNS o el archivo /etc/hosts
entra escena. Este mapeo de direcciones IP a nombres de host no es
requerido generalmente, excepto en un ambiente LTSP. Esto es así porque
sin este mapeo, el NFS dará errores de permisos cuando la estación de
trabajo intente montar el sistema de archivos raíz.
En adición a los problemas de NFS, si la estación de
trabajo no se encuentra en el archivo /etc/hosts,
también podrías tener problemas con los Display Managers GDM
y KDM.
Hay un número de entradas de configuración que son
especificados en el archivo lts.conf.
El archivo lts.conf tiene una
sintaxis simple, que consiste de múltiples secciones. Hay una sección
por defecto, llamada [default] y hay secciones
adicionales para estaciones de trabajo individuales. Las estaciones de
trabajo pueden ser identificadas por nombre de host, dirección IP o
dirección MAC.
Un archivo típico lts.conf
luce así:
#
# Config file for the Linux Terminal Server Project (www.ltsp.org)
#
[Default]
SERVER = 192.168.0.254
XSERVER = auto
X_MOUSE_PROTOCOL = "PS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
USE_XFS = N
LOCAL_APPS = N
RUNLEVEL = 5
[ws001]
USE_NFS_SWAP = Y
SWAPFILE_SIZE = 48m
RUNLEVEL = 5
[ws002]
XSERVER = XF86_SVGA
LOCAL_APPS = N
USE_NFS_SWAP = Y
SWAPFILE_SIZE = 64m
RUNLEVEL = 3
|
Ejemplo 2-1. lts.conf file
La siguiente es una lista de algunas entradas:
- XSERVER
-
Si tu placa de video es PCI y está soportada por
XFree86 4.1, entonces sólo necesitas el paquete lts_x_core. Contiene
todos los módulos para X4.
Por el contrario, si tu tarjeta no está soportada
por XFree86 4.1, hay varios paquetes XFree86 3.3.6 disponibles para
LTSP.
Puedes hacer entradas en el archivo lts.conf
para cada estación de trabajo individual, o puedes realizar entradas
por defecto para que sean compartidas por todas las estaciones de
trabajo.
Nuestra terminal tiene un chipset de video Intel
i810, y puede ser detectado correctamente, por lo que no necesitamos
ninguna entrada XSERVER en lts.conf. Esta entrada XSERVER puede ser
especificada, si lo deseas, o puede ser puesta en 'auto', si es que
quieres dejar constancia de que la placa de hecho será detectada
automáticamente.
- RUNLEVEL
-
Queremos correr la estación de trabajo en modo gráfico,
por lo que necesitamos configurar el runlevel en '5'. Esto es
efectuado mediante otra entrada en el archivo lts.conf.
Una vez que el servidor ha sido configurado, es tiempo
de concentrarse en la estación de trabajo.
El proyecto LTSP trata acerca de qué es lo que sucede
cuando el kernel está en memoria. Hay varias maneras de hacer que un núcleo
se cargue en memoria, incluyendo Etherboot, Netboox, PXE y disco floppy.
Para el objeto de este documento, usaremos un disco
floppy con código del proyecto Etherboot.
|
Etherboot es un paquete de software para la
creación de imágenes ROM que puedan descargar código a través
de una red Ethernet y luego ejecutarlo en un computador x86.
Muchos dispositivos de red poseen un sócalo donde un chip ROM
puede ser instalado. Etherboot es código que puede ser colocado
en dicha ROM.
|
|
--
Ken Yap |
|
Etherboot es también Open Source, protegido bajo la
Licencia Pública General GNU, Versión 2 (GPL2).
Puedes descargar el paquete Etherboot y configurarlo
para el tipo de bootrom que necesites. Luego, puedes compilar el fuente
para producir la imagen que será escrita en el chip EPROM, o bien en un
diskette para pruebas.
Una alternativa mucho más simple es ir al sitio web de
Marty Connor
www.Rom-O-Matic.net.
Marty a realizado un excelente trabajo al ponerle un
frente basado en web al proceso de configuración y compilación de las
imagenes de bootrom con Etherboot. En su sitio, puedes elegir qué tipo de
tarjeta de red posees, y qué clase de imagen quieres. Luego, tienes la
oportunidad de modificar cualquiera de las opciones de configuración de
Etherboot. Por último, presionando el botón 'Get ROM' una imagen bootrom
personalizada será generada para tí.
Nuestra estación de trabajo tiene una tarjeta Linksys
LNE100TX, versión 4.1. Esta placa posee un chipset ADMTek Centaur-P, por
lo que necesitamos seleccionar centaur-p como nuestro
tipo de NIC/ROM.
No necesitamos realizar ningún cambio a la configuración
por defecto, por lo que podemos saltearnos el botón 'Configure'.
Para el 'ROM Output Format' (formato de salida de la
ROM) seleccionamos 'Floppy Bootable ROM Image' (imagen ROM para discos
blandos). Esto causará que contenga una cabecera de 512 bytes que es el
cargador de inicio para cargar la imagen etherboot en la memoria RAM,
donde será ejecutada.
Presiona el botón 'Get ROM<'. La imagen bootrom será
generada mientras esperas. Sólo toma unos pocos segundos, y cuando está
listo, tu navegador desplegará una ventana de 'Guardar Como' donde puedes
designar dónde quiere salvar la imagen.
Yo usualmente salvo la imagen en el directorio /tmp,
por lo que, para la imagen Centaur-P, debes especificar algo como: /tmp/eb-5.0.2-centaur-p.lzdsk.
Una vez que has salvado la imagen en tu disco duro,
necesitas grabarla dentro de un disco flexible. Inserta uno de estos
discos en tu disquetera y corre el siguiente comando:
cat /tmp/eb-5.0.2-centaur-p.lzdsk > /dev/fd0
|
Asumiendo que el servidor y la estación de trabajo han
sido configurados correctamente, debería ser sólo una cuestión de
insertar el disco flexible en la disquetera y encender la estación de
trabajo.
El código Etherboot será leído desde el disquete y
cargado en memoria, la tarjeta de red será encontrada e inicializada, la
petición dhcp será enviada por la red y una respuesta será enviada
desde el servidor y el kernel será descargado en la estación de trabajo.
Una vez que el núcleo ha inicializado el hardware de la estación de
trabajo, X Window arrancará y una ventana de diálogo de inicio debería
aparecer en la terminal, similar al ejemplo de abajo.
este punto, puedes autentificarte. Una cosa
importante es tener en cuenta de que hecho estás ingresando en el
servidor. Todos los comandos que corras de hecho estarás corriendo en el
mismo, mostrando su salida por el monitor de la estación de trabajo. Ese
es el poder de X Window.
Puedes correr cualquier programa soportado por el
servidor.
Mas allá del hecho de que una estación de trabajo
puede poseer un entorno gráfico completo o ser una terminal de caracteres
funcional, también puede actuar como un servidor de impresión,
permitiendo que hasta 3 impresoras puedan ser conectadas a sus puertos
seriales o paralelos.
Todo esto es transparente para el usuario de la estación
de trabajo. Ni siquiera notará la pequeña cantidad de tráfico que es
enviada a través de la terminal hacia la impresora.
LTSP utiliza el programa lp_server
en la estación de trabajo para redireccionar los trabajos de impresión
desde el servidor hacia la impresora conectada a alguno de los puertos de
la estación.
Para habilitar la impresora en la estación de trabajo,
hay un conjunto de entradas de configuración en el archivo
lts.conf.
[ws001]
PRINTER_0_DEVICE = /dev/lp0
PRINTER_0_TYPE = P
|
La entrada de arriba causará que el programa lp_server
corra como demonio, escuchando en el puerto TCP/IP 9100 que llegue alguna
corriente de datos de impresión desde el servidor. Estos datos serán
luego redireccionados hacia la impresora conectada en el puerto paralelo
/dev/lp0.
Hay muchas opciones disponibles. Mira la sección
lts.conf más adelante en este documento para obtener mayor información
acerca de las entradas de configuración.
Configurar una impresora del lado del servidor es cuestión
de definir una cola de impresión, utilizando la herramienta de
configuración apropiada en el servidor.
En RedHat 7.2, hay herramientas tanto gráficas como de
texto para configurar impresoras. La herramienta gráfica se llama
printconf-gui, y la basada en text printconf-tui
. Versiones mas antiguas de RedHat poseen un programa denominado
printtool. Printtool también existe en RedHat 7.2, pero llamará a
printconf-gui. Otras distribuciones de Linux tienen sus propias
herramientas de configuración de impresoras.
Figura 5-1. Printconf-gui Agregando una nueva
impresora
Una vez que has lanzado la herramienta de configuración,
debes agregar una nueva impresora. El programa lp_server le permite a la
estación de trabajo emular un servidor de impresión HP JetDirect, por lo
que sólo necesitas crear una impresora JetDirect .
Necesitas luego darle a la cola un nombre. Este nombre
puede ser cualquier cosa (trata de que sea un nombre significativo) y debe
contener sólo los siguientes caracteres:
- "a-z" letras en
minúsculas
- "A-Z" letras en
mayúsculas
- "0-9" dígitos
numéricos
- "-" guión
medio
- "_" guión
bajo
El nombre seleccionado en el ejemplo de arriba es
ws001_lp. Este nombre hace que sea fácil saber que la impresora está
asociada con ws001.
Figura 5-2. Printconf-gui Información en detalle
Hay dos campos necesarios para comunicarse con la
impresora:
- La dirección IP y el nombre de host de la estación
de trabajo a la cual la impresora está asociada.
- El puerto TCP en el cual el demonio
lp_server está corriendo.
La primera impresora que conectes a la estación de
trabajo estará en el puerto TCP/IP 9100. La
segunda lo hará en el puerto 9101 y la tercera
en el 9102.
Si, luego de haber seguido los anteriores pasos, tu
estación de trabajo no inicia, entonces deberás empezar el proceso de
detección de problemas de la instalación.
La primer cosa por hacer es tratar de ver cuán lejos ha
llegado la estación de trabajo en su proceso de inicio.
Cuando inicias desde un disco flexible, debería ver
algo similar a esto:
loaded ROM segment 0x0800 length 0x4000 reloc 0x9400
Etherboot 5.0.1 (GPL) Tagged ELF for [LANCE/PCI]
Found AMD Lance/PCI at 0x1000, ROM address 0x0000
Probing...[LANCE/PCI] PCnet/PCI-II 79C970A base 0x1000, addr 00:50:56:81:00:01
Searching for server (DHCP)...
<sleep>
|
El ejemplo de arriba muestra lo que puedes esperar ver
en la pantalla cuando inicias desde un disco flexible. Si no ves estos
mensajes, indicando que Etherboot a iniciado, entonces puede ser que
tengas un disco flexible defectuoso, o que hayas escrito la imagen en el
mismo de manera inapropiada.
Si, por el contrario, ves una imagen como la siguiente,
entonces es probable que la imagen Etherboot generada no sea la apropiada
para tu tarjeta de red.
ROM segment 0x0800 length 0x8000 reloc 0x9400
Etherboot 5.0.2 (GPL) Tagged ELF for [Tulip]
Probing...[Tulip]No adapter found
<sleep>
<abort>
|
Si llega al punto en donde detecta a la tarjeta de red y
muestra la dirección MAC, entonces el probable que el disco flexible sea
bueno.
Una vez que la tarjeta de red es inicializada, enviará
una petición de broadcast a través de la red local, buscando algún
servidor DHCP.
Si la estación de trabajo obtiene una respuesta válida
de parte del servidor DHCP, deberá configurar la placa de red. Puedes
saber si ha funcionado correctamente si la información acerca de la
dirección IP es mostrada por la pantalla. Aquí hay un ejemplo de cómo
debería verse esto:
ROM segment 0x0800 length 0x4000 reloc 0x9400
Etherboot 5.0.1 (GPL) Tagged ELF for [LANCE/PCI]
Found AMD Lance/PCI at 0x1000, ROM address 0x0000
Probing...[LANCE/PCI] PCnet/PCI-II 79C970A base 0x1000, addr 00:50:56:81:00:01
Searching for server (DHCP)...
<sleep>
Me: 192.168.0.1, Server: 192.168.0.254, Gateway 192.168.0.254
|
Si ves la línea que comienza con 'Me:', seguida por una
dirección IP, entonces sabes que DHCP está funcionando correctamente.
Puedes continuar ahora para saber si TFTP está de hecho funcionando también.
Si, en cambio, observas el siguiente mensaje en la
estación de trabajo, seguida por montones de <sleep>, entonces algo
está mal, aunque es común ver uno o dos de estos mensajes de
<sleep>.
Searching for server (DHCP)...
|
Tratar de averiguar qué es lo que está mal a veces es
dificultoso, pero aquí hay algunas cosas en las cuales fijarse.
¿Está la estación de trabajo fisicamente conectada a
la misma red del servidor?
Con la estación de trabajo encendida, asegúrate de que
las luces de link están encendidas para todas las conexiones.
Si estás conectando directamente entre la estación de
trabajo y el servidor (sin hub ni switch), asegúrate de estar utilizando
un cable cruzado. Si estás de hecho utilizando un hub o switch, entonces
asegúrate de utilizar cable recto, normal, tanto entre las estaciones de
trabajo y el hub como entre el hub y el servidor.
Necesitas determinar si dhcpd está
corriendo en el servidor. Podemos obtener la respuesta de dos formas.
dhcpd normalmente corre en el
background (de fondo), escuchando en el puerto udp 67. Trata de correr el
comando netstat para ver si hay algo escuchando en
dicho puerto:
netstat -an | grep ":67 "
|
Deberías ver una salida similar a la siguiente:
udp 0 0 0.0.0.0:67 0.0.0.0:*
|
La cuarta columna contiene la dirección IP y el puerto,
separadas por dos puntos (':'). Una dirección de todos ceros ('0.0.0.0')
indica que está escuchando en todas las interfases. Esto es, puede ser
que tengas una interfase eth0 y otra
eth1, y que dhcpd esté escuchando en ambas.
Sólo porque netstat muestre que hay algo escuchando en
el puerto udp 67 no significa que de hecho dhcpd
sea el que está escuchando. Podría ser bootpd,
aunque sería poco probable, ya que bootp ya no se
incluye más en la mayoría de las distribuciones de Linux.
Para asegurarte de que dhcpd está
corriendo, trata con el comando ps.
Deberías ver algo como lo siguiente:
root 23814 0.0 0.3 1676 820 ? S 15:13 0:00 /usr/sbin/dhcpd
root 23834 0.0 0.2 1552 600 pts/0 S 15:52 0:00 grep dhcp
|
La primera línea muestra que dhcpd
está corriendo. La segunda es tan sólo nuestro comando
grep.
Si no ves ninguna línea indicando que dhcpd está
corriendo, entonces necesitas verificar que el servidor esté configurado
para el runlevel 5 y que dhcpd esté listo para
iniciar en dicho nivel. En sistemas basados en Red Hat, puedes ejecutar
ntsysv para asegurarte de que dhcpd esté
marcado.
Puedes probar de iniciar dhcpd
con este comando:
Presta atención a la salida. Puede contener errores.
¿Tiene el archivo /etc/dhcpd.conf
una entrada para tu estación de trabajo?
Deberías verificar dos veces la entrada 'fixed-address'
en el archivo de configuración, para asegurarte de que concuerda
exactamente con la tarjeta de red de la estación de trabajo.
Corre el siguiente comando para ver qué dice:
Si ves algo como esto:
Chain input (policy ACCEPT: 229714 packets, 115477216 bytes):
Chain forward (policy ACCEPT: 10 packets, 1794 bytes):
Chain output (policy ACCEPT: 188978 packets, 66087385 bytes):
|
Entonces no es ipchains el que está metido en el camino.
Corre el siguiente comando para ver qué dice:
Si ves algo como esto:
Chain INPUT (policy ACCEPT 18148 packets, 2623K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 17721 packets, 2732K bytes)
pkts bytes target prot opt in out source destination
|
Entonces no es iptables el que está metido en el camino.
Trata de observar /var/log/messages
mientras la estación de trabajo se inicia. Puedes hacer tal cosa con el
siguiente comando:
tail -f /var/log/messages
|
Esto 'seguirá' al archivo de historiales mientras se vayan
escribiendo los nuevos registros.
server dhcpd: DHCPDISCOVER from 00:50:56:81:00:01 via eth0
server dhcpd: no free leases on subnet WORKSTATIONS
server dhcpd: DHCPDISCOVER from 00:50:56:81:00:01 via eth0
server dhcpd: no free leases on subnet WORKSTATIONS
|
Si ves mensajes como los de arriba, donde dice 'no free
leases', entonces dhcpd está corriendo, pero no
sabe nada acerca de la estación de trabajo que hace el pedido de su
dirección IP.
Etherboot utiliza TFTP para obtener un kernel Linux
desde el servidor. Este es un protocolo en extremo simple, pero a veces
hay problemas cuando se trata de hacerlo funcionar.
Si observas algo similar a esto:
Loading 192.168.0.254:/lts/vmlinuz.tulip |
|
con el último caracter en la línea (el '|'), rápidamente
cambiando a '|', '\', '-' y '/', para formar lo que parece una barra
rotativa, entonces el núcleo está siendo descargado. Esto normalmente
indica que TFTP está funcionando correctamente.
Si, en cambio, no puedes ver la barra rotativa, entonces
hay un problema. Las posibles causas incluyen:
En RedHat 7.1, tftp es iniciado por
xinetd. Hay un script de inicio llamado /etc/xinetd.d/tftp
que contiene la información necesaria para que corra
tftpd.
El kernel nececita estar en un lugar accesible para el
demonio tftpd. Si la opción '-s' está especificada cuando
tftpd inicia, entonces cualquier cosa que pida la estación de trabajo
debe ser relativa a /tftpboot. Por lo tanto, si
la entrada filename en /etc/dhcpd.conf
es /lts/vmlinuz-2.4.9-ltsp-5 , entonces el
kernel de hecho necesita estar en /tftpboot/lts/vmlinuz-2.4.9-ltsp-5.
Hay varias cosas que pueden impedir que un sistema de
archivos raíz pueda ser montado, incluyendo a las siguientes:
Si obtienes el siguiente error:
Kernel panic: No init found. Try passing init= option to kernel.
|
Entonces es muy probable que o bien estés montando el
directorio incorrecto como sistema de archivos raíz, o bien el directorio
/opt/ltsp/i386 esté vacío.
Si obtienes el siguiente error:
Root-NFS: Server returned error -13 while mounting /opt/ltsp/i386
|
Esto indica que el directorio /opt/ltsp/i386
no está listado en el archivo /etc/exports.
Mira en /var/log/messages si
hay algunas pistas. Una entrada como ésta:
Jul 20 00:28:39 jamlap rpc.mountd: refused mount request from ws004
for /opt/ltsp/i386 (/): no export entry
|
Confirma nuestra sospecha de que la entrada en /etc/exports
es incorrecta.
NFS puede ser un servicio difícil y complejo para la
resolución de problemas, pero el hecho de entender qué debería estar
configurado y qué herramientas hay disponibles para diágnósticos sin
duda ayudarán a hacer más fácil la tarea.
Hay tres demonios que necesitan estar corriendo en el
servidor para que NFS funcione correctamente. Estos servicios son
portmap, nfsd y mountd
Si obtienes los siguientes mensajes:
Looking up port of RPC 100003/2 on 192.168.0.254
portmap: server 192.168.0.254 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
Looking up port of RPC 100005/2 on 192.168.0.254
portmap: server 192.168.0.254 not responding, timed out
Root-NFS: Unable to get mountd port number from server, using default
mount: server 192.168.0.254 not responding, timed out
Root-NFS: Server returned error -5 while mounting /opt/ltsp/i386
VFS: unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or 02:00
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 02:00
|
Entonces es muy probable que el demonio
portmap no esté corriendo. Pueder confirmar si el portmapper está o
no funcionando mediante el comando ps:
Si el portmapper está andando, debería ver una salida
como ésta:
Otra forma de provar es mediante el uso de
netstat . El portmapper utiliza los puertos TCP y UDP 110. Prueba
corriendo esto:
netstat -an | grep ":111 "
|
Deberías observar la siguiente salida:
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:111 0.0.0.0:*
|
Si no ves algo similar, entonces el portmapper no está
corriendo. Puedes iniciarlo mediante:
/etc/rc.d/init.d/portmap start
|
Luego, puedes asegurarte de que el portmapper está
configurado para que inicie automáticamente cuando el servidor reinicie.
Corre ntsysv para asegurarte de que está
seleccionado.@
NFS tiene dos demonios que necesitan estar corriendo:
nfsd y mountd. Ambos son iniciados por el
script /etc/rc.d/init.d/nfs.
Puedes ejecutar el comando ps
para asegurarte de que estén funcionando:
ps -e | grep nfs
ps -e | grep mountd
|
Si observas que alguno de los dos demonios no está
corriendo, entonces necesitarás hacerlo tu mismo.
Normalmente, deberías poder correr el script de inicio
con el argumento restart para que ambos demonios se
reinicien, pero por alguna razón, el script /etc/rc.d/init.d/nfs
no reinicia nfsd de ese modo. Sólo reinicia
mountd (¿bug?). Por lo tanto, debes ejecutar la siguiente secuencia
de comandos:
/etc/rc.d/init.d/nfs stop
/etc/rc.d/init.d/nfs start
|
Puede ser que obtengas errores durando el comando
stop, pero esto es normal. Es el start el que
debería estar todo OK.
Si los demonios están corriendo, pero NFS sigue sin
funcionar, entonces pueder verificar que los mismos se hayan registrado a
sí mismo con el portmapper mediante el comando rpcinfo.
Debería mostrarte resultados similares a los siguientes:
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 856 rquotad
100011 2 udp 856 rquotad
100005 1 udp 1104 mountd
100005 1 tcp 2531 mountd
100005 2 udp 1104 mountd
100005 2 tcp 2531 mountd
100003 2 udp 2049 nfs
|
Esto indica que nfs (nfsd) y
mountd están corriendo y han sido registrados con el portmapper.
¡Muchacho! Probablemente la parte más dificultosa de
la configuración de una estación de trabajo LTSP sea que el servidor X
esté configurado correctamente. Si estás usando una placa de video
medianamente nueva, y está soportada por XFree86, y si también posees un
monitor medianamente nuevo que pueda manejar un amplio rango de
frecuencias y resoluciones, entonces todo es muy fácil y derecho.
Usualmente, en ese caso, si no funciona, es muy probable que sea el
servidor X equivocado para dicha placa.
Cuando un servidor X no funciona con tu placa, es
bastante obvio. O bien el mismo no inicia, o bien lo que se ve en pantalla
es incorrecto.
Cuando la estación de trabajo está lista para iniciar
el servidor X, llama al script /tmp/start_ws, el
cual inicia al servidor X en la estación de trabajo local con la opción
-query apuntanto al servidor, donde un Display Manager, como
XDM, GDM o KDM está
escuchando.
Debido a que el servidor X es iniciado por el script start_ws,
el cual es asi mismo arrancado por el programa init,
cuando falla, init tratará de iniciarlo
nuevamente, y seguirá intentándolo 10 veces más antes de rendirse,
debido a que piensa que está repitiendo demasiando rápido. Cuando
finalmente se rinde, un mensaje de error de parte del servidor X será
mostrado por pantalla.
Esperar que el servidor X falle 10 veces puede ser
irritante, por lo que una manera simple de evitar tales fallos repetidos
puede ser iniciar la terminal en el runlevel 3, para que X NO sea iniciado
automáticamente. En cambio, cuando inicies la estación de trabajo, verás
un prompt de bash. Desde el mismo, pueder iniciar X
manualmente mediante el siguiente comando:
El servidor X intentará iniciar, pero cuando falle, volverá
al prompt de bash, para que puedas ver la razón de tal falla.
El Display Manager (Administrador de Sesiones Gráficas)
es el demonio que corre en el servidor, esperando que un servidor X haga
contacto con él. Una vez que el contacto ha sido realizado, mostrará una
caja de diálogo de inicio por pantalla, ofreciéndole al usuario la
chance de ingresar al servidor.
Los tres Display Managers mas comunes son:
- XDM - Ha estado por ahí desde siempre. Viene
incluido con el sistema estandar de X Window.
- GDM - El 'Gnome Display Manager' es parte del paquete
Gnome.
- KDM - El 'KDE Display Manager' es parte de sistema de
escritorio KDE.
Las distribuciones de GNU/Linux mas recientes incluyen a
los tres arriba mencionados.
Esto indica que el servidor X está corriendo, pero que
no ha podido realizar contacto con el Display Manager. Algunas de las
posibles razones son:
- El display manager no está corriendo.
En versiones recientes de Red Hat (7.0 o superior),
el display manager es iniciado por init. En el
archivo /etc/inittab, hay una línea que
luce así:
x:5:respawn:/etc/X11/prefdm -nodaemon
|
El script prefdm determinará cuál
es el display manager a correr.
El display manager por defecto depende de qué
paquetes tengas instalados. Si Gnome está instalado, entonces GDM será
el display manager por defecto. Por el contrario si Gnome no está
instalado, entonces el script prefdm verificará si KDE lo está. Si
así es, entonces KDM será el display manager. Si KDE tampoco está
instalado, entonces XDM será el display manager por omisión.
Utilizando el comando netstat
deberías poder ver si hay algún Display Manager corriendo. En el
servidor, corre lo siguiente:
Esto debería mostrarte que hay algún proceso
escuchando en el puerto de xdmcp (177).
udp 0 0 *:xdmcp *:* 1493/gdm
|
Esto muestra claramente que gdm
está corriendo con el PID 1493 y está escuchando en el puerto de
xdmcp.
Si ves una línea como la de arriba, indicando que
definitivamente hay un display manager escuchando, entonces necesitas
asegurarte de que la estación de trabajo está enviando la petición
XDMCP al servidor correcto.
En el archivo lts.conf hay
una entrada en la cual puedes especificar la dirección IP del
servidor en el que está corriendo el display manager. Esta entrada es
opcional, pero de estar presente, luciría así:
XDM_SERVER = 192.168.0.254
|
Por supuesto, la dirección IP del ejemplo puede ser
diferente a la tuya.
Si la entrada 'XDM_SERVER' no está presente,
entonces se utilizará el valor de la entrada 'SERVER', de estar
presente también. Si no lo está, se usará
192.168.0.254 por omisión.
Cualquiera sea el modo en el cual lo especifiques,
solamente debes asegurarte de que la dirección IP de hecho sea la
dirección correcta del servidor en el que corre el display manager.
- El display manager puede estar configurado para
ignorar peticiones de máquinas remotas.
Si has determinado que el display manager está
corriendo, entonces es posible que haya sido configurado para ignorar
peticiones XDMCP desde máquinas remotas. Necesitarás verificar los
archivos de configuración del display manager en particular que estés
utilizando para ver si está configurado correctamente.
- XDM
La configuración por defecto de RedHat
deshabilita a las estaciones de trabajo para obtener su pantalla
de inicio a través de XDM. El script
ltsp_initialize se hará cargo de habilitar esto por ti, pero
si aun así no funciona, entonces debería verificar el archivo /etc/X11/xdm/xdm-config.
Busca una entrada como esta:
DisplayManager.requestPort: 0
|
Esta entrada DEBE estar comentada (con un '#';
delante) para que XDM escuche en el puerto 177 las peticiones
remotas.
Otro archivo de configuración importante para
XDM es el /etc/X11/xdm/Xaccess, el cual
DEBE tener una línea que comience con un '*' y nada más.
Normalmente en RedHat hay una línea así, pero está comentada.
El script ltsp_initialize se encargará de
corregir esto por tí, pero si aun así no funciona, deberás
verificarlo tu mismo. La línea debería verse así:
* #any host can get a login window
|
- KDM
Las versiones más recientes de KDM poseen un
archivo llamado kdmrc. Diferentes
distribuciones de GNU/Linux guardan dicho archivo en lugares
diferentes. En RedHat 7.2 está ubicado en
/etc/kde/kdm/kdmrc. En otras distribuciones, deberías correr
el comando locate para averiguar dónde se
encuentra.
La entrada que controla si las estaciones de
trabajo pueden obtener una pantalla de inicio está en la sección
que posee la etiqueta [xdmcp]. Asegúrate
de que la entrada Enable esté puesta en
true.
Versiones mas viejas de KDM utilizan los
archivos de configuración del XDM, ubicados en /etc/X11/xdm.
- GDM
GDM utiliza un conjunto diferente de archivos de
configuración. Están ubicados en el directorio /etc/X11/gdm.
El archivo principal es el gdm.conf.
Busca la sección [xdmcp]. Deberías ver
una entrada 'Enable', la cual debe tener el valor '1' o 'true',
dependiendo de la versión de GDM. He aquí un ejemplo:
[xdmcp]
Enable=true
HonorIndirect=0
MaxPending=4
MaxPendingIndirect=4
MaxSessions=16
MaxWait=30
MaxWaitIndirect=30
Port=177
|
Nota el 'Enable=true'. Versiones mas viejas de
GDM utilizan '0' y '1' para deshabilitar y habilitar XDMCP. Las
mas nuevas en cambio usan 'false' y 'true'.
- Si el Display Manager está definitivamente
corriendo, y está escuchando las peticiones de estaciones de trabajo
remotas, entonces puede ser un simple problema de mapeo de direcciones
IP a nombres. La estación de trabajo necesita estar en el archivo /etc/hosts
o bien figurar en algún DNS.
Hay unas pocas deciciones que necesitan ser hechas sobre
el kernel que va a correr en la estación de trabajo. Necesitas decidirte
si quieres correr uno de los núcleos estándar disponibles para descarga,
o uno propio. Y también necesitas decidir si quieres correr la pantalla
gráfica, con la barra de progreso, disponible gracias al
Linux Progress Patch (LPP).
El paquete de kernel que está disponible con LTSP
incluye dos núcleos. Uno posee el Linux Progress Patch y el otro no.
Ambos ya tienen el parche para Swap sobre NFS aplicado.
Hay dos maneras de configurar un kernel para LTSP. El método
por defecto es usar algo llamado 'Disco RAM Inicial', o
initrd. La imagen initrd es un pequeño sistema de archivos agregado
al núcleo. Este sistema de archivos es cargado en memoria, y una vez que
el kernel ha iniciado, montará al disco ram como su sistema de archivos
raíz. Hay un par de ventajas provenientes de utilizar una imagen initrd.
Primero, podemos compilar los controladores de las placas de red como módulos
y cargar el módulo correcto durante el inicio. Esto permite que un solo núcleo
soporte virtualmente a todas las placas de red. La otra ventaja es que
podemos correr al cliente DHCP en modo usuario, mas que en modo kernel.
Correrlo en modo usuario provee un mejor control sobre las opciones
requeridas y recibidas desde el servidor. También, hace al núcleo un
poco mas pequeño. La otra manera de configurar el kernel es sin el
initrd. Construir un kernel sin disco ram requiere que el controlador
específico para la tarjeta de red esté estáticamente ligado (linkeado)
dentro del núcleo, y también requiere que las opciones
(TOKEN=textbf)IP-Autoconfig y (TOKEN=textbf)Root Filesystem on NFS estén
activadas. La ventaja de no utilizar un initrd es que el kernel es un poco
mas pequeño, por lo que iniciará mas rápido. De todos modos, una vez
que la estación de trabajo esté corriendo, virtualmente no hay
diferencias de rendimiento.
El núcleo estándar LTSP incluye in Disco Ram Inicial
(initrd) que se hace cargo de detectar la placa de red y de realizar un
requerimiento DHCP en modo usuario. El principal objetivo fue hacer la
imagen lo mas pequeña posible. Por lo tanto, hemos escogido la librería
libc de uClinux como reemplazo, y a BusyBox para las herramientas
necesarias durante el inicio.
Si quieres construir tus propios núcleos, deberías
descargar el paquete ltsp_initrd_kit. Contiene la jerarquía del sistema
de archivos raíz y un script para construir la imagen.
Cuando se construye un núcleo personalizado, usualmente
es una buena idea empezar con la fuentes frescas de
ftp.kernel.org. La razón de esto es que algunas distribuciones, como
RedHat, aplican varios parches en sus fuentes de núcleo, dejándote con
un conjunto de código fuente que no concuerda con el kernel oficial.
Descarga el paquete de fuentes de kernel de tu agrado, y
guárdalo en el directorio /usr/src. Los núcleos
están ubicados en el directorio /pub/linux/kernel
del servidor ftp de ftp.kernel.org. Necesitarás uno de la serie 2.4.x,
debido a que el soporte para devfs es necesario.
También, si quieres incluir soporte para intercambio
(swap) sobre NFS o el Linux Progress Patch (LPP), deberás asegurarte de
que dichos parches y los fuentes del kernel sean de la misma versión. Al
tiempo de escribir este documento, la versión 2.4.9 del kernel de Linux
era la última que soportaba estas características.
Para nuestro ejemplo, usaremos el núcleo 2.4.9. La
ubicación exacta es: ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.9.tar.bz2.
Desempaqueta las fuentes en el directorio /usr/src.
Necesitas ser cuidadoso, ya que cuando lo haces, habrá un directorio
llamado linux. Si ya posees un directorio
llamado linux correspondiente a otro conjunto de
fuentes, vas a hacer lío. Por eso, verifica si ya hay un directorio con
anterioridad y, de ser así, renómbralo.
El paquete de fuentes que descargamos han sido
comprimidas con la utilidad bzip2. Por lo tanto,
necesitamos descomprimirlo antes de utilizar tar.
Puedes utilizar el siguiente comando para este propósito:
bunzip2 <linux-2.4.9.tar.bz2 | tar xf -
|
Cuando finalice, tendrás un directorio llamado linux
conteniendo un completo árbol de fuentes. En este punto, yo usualmente
renombro al directorio en algo más significativo.
Una vez que el directorio ha sido renombrado, cambio a él:
Usualmente me gusta modificar el Makefile
antes de comenzar a configurar el kernel. Cerca del tope del archivo hay
una variable llamada EXTRAVERSION, la cual lleno
con 'ltsp-1' con el objeto de que el kernel se llame '2.4.9-ltsp-1', lo
que hace mas fácil identificarlo luego. El tope de Makefile debería
verse así:
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 9
EXTRAVERSION = -ltsp-1
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
|
Luego de desempaquetar al kernel, puede haber varios
parches que quieras aplicar. Por ejemplo, el parche para Intercambio
(swap) sobre NFS o el Linux Progress Patch (LPP). Estos parches DEBEN ser
aplicados antes de configurar el núcleo.
El parche para swap sobre NFS le permitirá a la estación
de trabajo utilizar un archivo de intercambio ubicado en un servidor NFS.
Aunque usualmente se recomienda poseer toda la memoria necesaria en la
estación de trabajo para no requerir esto, a veces puede ser dificultoso
agregar mas RAM, especialmente en ordenadores viejos. Por lo tanto, la
habilidad de intercambiar sobre NFS permitirá que un ordenador inusable
se transforme en uno útil.
Si el directorio actual es /usr/src/linux-2.4.9, y el
parche está en /usr/src, entonces puedes hacer lo siguiente para
probarlo:
patch -p1 --dry-run <../linux-2.4.9-nfs-swap.diff
|
Esto probará al parche, para asegurarse de que será
aplicado limpiamente. Si finaliza sin errores, entonces puedes aplicarlo
sin la opción --dry-run.
patch -p1 <../linux-2.4.9-nfs-swap.diff
|
El Linux Progress Patch (LPP) te permitirá configurar
un logo gráfico para que se muestre al momento de iniciar la estación de
trabajo. Los mensajes normales del kernel al iniciarse son redireccionados
a otra pantalla tty, e instrucciones especiales son agregadas a los
scripts de inicio para que la barra de progreso refleje cómo va marchando
la cosa.
Al igual que el parche de swap sobre NFS, puedes probar
el parche LPP mediante el siguiente comando:
patch -p1 --dry-run <../lpp-2.4.9
|
Si la prueba resulta exitosamente, entonces puedes aplicar
el parche con:
Ahora puedes correr el programa de configuración del
kernel de tu elección. Las opciones disponibles son:
- make xconfig
Invocará una versión de la utilidad de configuración
para X Window.
- make menuconfig
Invocará una utilidad de configuración simple,
basada en una opción a la vez en modo texto.
- make config
Invocará una utilidad de configuración simple,
basada en una opción a la vez en modo texto.
Configurar el kernel para utilizar una imagen initrd
requiere de las siguientes opciones:
- File systems -> /dev filesystem support
El soporte para el sistema de archivos /dev debe
estar habilitado. Esto es seleccionado en la sección 'File Systems'.
NO ESPECIFICAR 'Automatically mount at boot'. El montaje debe ser
realizado por el script /linuxrc.
- Block devices -> RAM disk support
Las estaciones de trabajo LTSP requieren que el
kernel tengan soporte para disco RAM, lo cual es seleccionado en la
sección 'Block Devices'.
- Block devices -> Initial RAM disk (initrd) support
Esto también debe estar habilitado.
- Processor type and features -> Processor family
Necesitas asegurarte de que el kernel que vayas a
construir corra en el CPU de la estación de trabajo. Esto se hace en
la sección 'Processor type and features'. Deberías también
desactivar el soporte SMP, a menos que tengas múltiples CPUs.
- File systems -> Network file systems -> NFS
Client support
La estación de trabajo deberá montar su sistema de
archivos raíz vía NFS, por lo que el soporte para cliente NFS es
requerido.
Eso debería ser suficiente. Puedes también desactivar
varias opciones innecesarias, para reducir el tamaño del kernel final.
Configurar el kernel para no utilizar una imagen initrd
difiere del que sí lo hace en lo siguiente:
- Block devices -> RAM disk support
Las estaciones de trabajo LTSP requieren que el
kernel soporte un disco RAM.
- Block devices -> Initial RAM disk (initrd) support
Esto necesita ser desactivado.
- Networking options -> IP:kernel level
autoconfiguration
Esto necesita estar habilitado. Le indicará al
kernel que debe configurar su interfase de red eth0 automáticamente,
basándose en valores previos pasados por la línea de comandos del núcleo.
No es necesario especificar las opciones DHCP, BOOTP
o RARP debido a que la bootrom Etherboot ya hace una petición DHCP o
BOOTP, y hará que los parámetros IP estés disponibles en la línea
de comandos del kernel. Esto evita que se realice una segunda petición.
- Network device support -> Ethernet (10 or 100Mbit)
Cuando no utilizas un initrd, debes elegir una placa
de red específica que concuerde con la tuya. Esto DEBE estar ligado
(linkeado) estáticamente dentro del núcleo, debido a que la
interfase ethernet es necesaria antes de que se monte el sistema de
archivos raíz. Esta es la mayor diferencia entre la forma en que se
trabaja con y sin initrd.
- File systems -> /dev filesystem support
Como en LTSP versión 2.09pre2,
devfs es necesario. Esto es así, se use initrd o no.
- File systems -> Automatically mount at boot
Cuando NO se utiliza initrd, el sistema de archivos
/dev debe ser montado por el kernel, durante el inicio. Por lo tanto,
tienes que decir 'Y' aquí.
- File systems -> Network file systems -> NFS
Client support
La estación de trabajo montará su sistema de
archivos raíz via NFS, por lo que el soporte para cliente NFS es
requerido.
Para hacer las cosas mas fáciles, una copia del archivo
.config está incluida en el paquete
ltsp_initrd_kit. Puedes copiarlo al directorio /usr/src/linux-2.4.9.
Una vez que has finalizado seleccionando y
deseleccionando las opciones del núcleo, necesitas construirlo. Los
siguientes comando necesitan ser ejecutados en orden de lograrlo:
make dep
make clean
make bzImage
make modules
make modules_install
|
Puedes juntar todo así:
make dep && make clean && make bzImage && make modules && make modules_install
|
El doble ampersand (&) significa que si el primer
comando finaliza exitosamente, entonces el segundo será ejecutado. Si el
segundo lo hace también exitosamente, se ejecutará el tercero. Y así.
Cuando la compilación ha finalizado, el nuevo kernel
estará en /usr/src/linux-2.4.9/arch/i386/boot/bzImage.
El kernel Linux debe ser preparado para que Etherboot
pueda manejarlo. Esto es llamado 'etiquetar' el kernel. Este proceso le
agregará algún código adicional que es ejecutado antes de que el
control sea pasado al núcleo. La herramienta para etiquetar el kernel se
llama 'mknbi-linux'.
El ltsp_initrd_kit incluye un script de shell llamado
buildk que incluye todos los comandos que necesites para preparar la
imagen del núcleo para que inicie por red.
Cuando diseñamos LTSP, una de las cuestiones que sabíamos
era que podíamos tener que lidiar con hardware variado para las
estaciones de trabajo. Ciertamente, cualquier combinación disponible hoy
de CPU, placa de red y de video, podría no estar disponible en 3 meses.
cuando querramos agregar mas estaciones de trabajo a la red.
Por eso, hemos desarrollado una manera de especificar la
configuración de cada terminal. El archivo de configuración se llama lts.conf
y reside en el directorio /opt/ltsp/i386/etc.
El formato del archivo lts.conf permite opciones por
defecto y opciones específicas para cada estación de trabajo. Si todas
tus terminales son idénticas, entonces deberías especificar todas las
opciones bajo la sección [Default].
Aquí hay un ejemplo de un archivo lts.conf:
[Default]
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
RUNLEVEL = 5
[ws001]
XSERVER = auto
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS1"
X_MOUSE_RESOLUTION = 50
X_MOUSE_BUTTONS = 3
X_MOUSE_BAUD = 1200
[ws002]
XSERVER = XF86_Mach64
[ws003]
RUNLEVEL = 3
|
- Comentarios
-
Los comentarios comienzan con numeral ('#') y continúan
hasta el final de la línea.
- LTSP_BASEDIR
-
Esto indica dónde el sistema de archivos raíz de
LTSP está ubicado. Por defecto es en /opt/ltsp/.
- SERVER
-
Este es el servidor utilizado 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.
- NFS_SERVER
-
Especifica la dirección IP del servidor desde donde
el sistema de archivos /home es montado. Por
defecto se utiliza la entrada SERVER.
- USE_NFS_SWAP
-
Pon Y aquí si quieres
habilitar intercambio sobre NFS. Por defecto es N.
- SWAPFILE_SIZE
-
Aquí es donde puedes controlar el tamaño del
archivo de intercambio. El tamaño por defecto es
64m.
- SWAP_SERVER
-
El archivo de intercambio puede existir en cualquier
servidor de la red. Puedes especificar la dirección IP de dicho
servidor. Por defecto se toma el valor de NFS_SERVER.
- NFS_SWAPDIR
-
Para especificar el directorio en el server que es
exportado via NFS. Por defecto es /var/opt/ltsp/swapfiles.
Asegúrate de que dicho directorio esté en /etc/exports.
- 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 thru
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 = uart401.o
MODULE_02 = sb.o io=0x220 irq=5 dma=1
MODULE_03 = opl3.o
|
Si el valor de este parámetro es un camino
absoluto, entonces el comando insmod será
utilizado. De otro modo, se utilizará modprobe.
- 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).
- RCFILE_01 thru
RCFILE_10
-
Scripts RC adicionales pueden ser ejecutados por
rc.local. Tan sólo coloca tu script en el directorio etc/rc.d
y especifica el nombre en alguna de estas entradas.
- SOUND
-
Si el paquete LTSP Sound está instalado, entonces
necesitas poner Y en esta entrada y ejecutar el
script rc.sound para configurar la placa de
sonido y el demonio. Por defecto es N.
- 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 puedes 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.
- 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á. Para placas PCI y AGP, este parámetro no debería
ser necesario. El script rc.local debería poder autodetectar la
tarjeta. Puedes también poner auto aquí a fin
de indicar que se tratará de autodetectar el video.
Para placas ISA, o para especificar un servidor X en
particular, puedes poner el nombre del driver o servidor X aquí.
Si el valor comienza con 'XF86_', entonces XFree
3.3.6 será utilizado. De otro modo, XFree 4.1.x lo será. El valor
por defecto es auto.
- X_MODE_0 through
X_MODE_2
-
Hasta 3 Modelines o resoluciones pueden ser
configuradas para la terminal. Esta entrada puede tomar dos tipos
diferentes de valores. Puede ser tanto una resolución como un
modeline completo:
X_MODE_0 = 800x600
o bien
X_MODE_0 = 800x600 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync
|
Si ninguna de las entradas X_MODE_x es especificada,
entonces se utilizarán los modelines por defecto, y las resoluciones
serán de 1024x768, 800x600 y 640x480.
Si una o mas entradas X_MODE_x es especificada,
entonces no se tendrán en consideración los modelines por defecto.
- 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_EMULATE3BTN
-
Esto lo dice al servidor X que debe emular el tercer
botón del mouse cuando se presionen simultáneamente los botones
izquierdo y derecho. El valor por defecto es N.
- 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".
- XF86CONFIG_FILE
-
Si quieres crear tu propio archivo de configuración
XF86Config, lo puedes hacer. Sólo tienes que colocarlo en el
directorio /opt/ltsp/i386/etc. Luego,
cualquiera sea el nombre que le pongas, debes entrar dicho nombre en
este parámetro. Por ejemplo:
XF86CONFIG_FILE = XF86Config.ws004
|
- 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.
- 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 .
- 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.
Todos los archivos de soporte de teclado ahora son
copiados dentro de la jerarquía /opt/ltsp/i386, por lo que configurar un
teclado internacional ahora es cuestión de configurar XFree86. Hay varios
parámetros que hacen esto posible.
Los valores descritos aquí provienen de la documentación
de XFree86. Cualquier valor válido para XFree86 es válido aquí.
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 internacional, entonces
escríbele al grupo de LTSP y te estaremos agradecidos.
- 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 aquí es la palabra 'default
'.
- XkbModel
-
El valor por defecto es 'pc101'.
- XkbLayout
-
El valor por defecto es 'us'.
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
-
Tipo 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)
En un ambiente LTSP, tienes la opción de correr las
aplicaciones localmente, en las estaciones 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. Esto es, la
aplicación del cliente corre en el servidor, usando su CPU y memoria,
mientras muestra su salida por el monitor de la estación de trabajo.
Esta es una capacidad fundamental de X Window. La estación
de trabajo funciona como una terminal X.
En orden de que un usuario pueda correr una aplicación
en su estación de trabajo, esta última necesita saber alguna información
acerca de este usuario, como la siguiente:
- Id del usuario
- Grupo primario al cual pertenece
- Directorio Home del mismo
LTSP confía en el Network Information Service - NIS (antes
llamado Páginas Amarillas) para hacer que el usuario y
el grupo esté disponible para las estaciones de trabajo.
Hay algunos beneficios al correr las aplicaciones en la
estación de trabajo.
- 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.
- Las 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.
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.
Una pequeña cantidad de entradas debe ser configurada
en lts.conf:
- LOCAL_APPS
-
Esta opción debe ser Y. Esto
causará lo siguiente:
- El directorio /home del
servidor será montado vía NFS.
- El archivo /var/yp/nicknames
será creado en la estación de trabajo.
- El portmapper será
iniciado en la terminal.
- xinetd también será
iniciado.
- El archivo /etc/yp.conf
será creado.
- El comando domainname
correrá con el valor de la entrada NIS_DOMAIN
del archivo lts.conf.
- El ypbind correrá en la
estación de trabajo.
- NIS_DOMAIN
-
Con NIS, todos los nodos de la red que quieran
asociarse con un servidor NIS específico deben pertenecep al mismo
dominio NIS (que no está en modo alguno relacionado con el dominio
DNS). Debes usar esta entrada para especificar el nombre del dominio
NIS al que la estación de trabajo pertenece.
- NIS_SERVER
-
NIS tratará de bindearse (emparejarse) con un
servidor NIS específico, o tirará una petición de broadcast a través
de la red. Si quieres especificar un servidor, entonces pon la dirección
IP del mismo en esta entrada.
Nis es un servicio del tipo cliente/servidor. En el
servidor, hay un demonio corriendo, que aceptará peticiones de los
clientes (estaciones de trabajo). El demonio en el servidor es llamado
ypserv.
En la estación de trabajo, hay un proceso llamado
ypbind. Cuando la estación de trabajo necesita información acerca de
un usuario, como verificar un password o encontrar su directorio
principal, utilizará a ypbind para establecer una conexión con ypserv,
en el servidor.
Si ya estás corriendo NIS en tu red, entonces no hay
necesidad de configurar al servidor LTSP para que corra ypserv.
Simplemente puedes ajustas las entradas NIS_DOMAINNAME y NIS_SERVER en
lts.conf.
Si NO estás corriendo NIS en tu red, entonces necesitarás
configurar el servidor para poder correr ypserv.
Para una completa información acerca de cómo
configurar un servidor NIS, hay un HOWTO en el Linux Documentation Project
llamado The Linux NIS(YP)/NYS/NIS+ HOWTO. Mira la lista
de recursos al final de este documento.
Para configurar una aplicación para que corra en la
estación de trabajo, necesitas colocar todos los componentes de la misma
en un lugar donde la terminal la vea.
Con versiones mas viejas de LTSP (2.08 y anteriores),
montones de directorios eran exportados en el servidor y montados por la
estación de trabajo. Directorios como /bin, /usr/bin,
/lib y /usr eran
expuestos a las terminales.
El problema con ese esquema esta que sólo funcionaba si
la estación de trabajo y el servidor tenían la misma arquitectura. De
hecho, aún pequeñas diferencias, como un servidor Pentium II (i686) y
una estación de trabajo Pentium Classic (i586) podía ser un problema,
debido a que el servidor generalmente tenía las librerías para i686 que
no las de i386, i486 e i586.
Por eso, la manera mas limpia de manejar esto es
teniendo un completo árbol con todos los binarios y las librerías que la
estación de trabajo necesita, independientemente del servidor.
Configurar una aplicación para ejecución local
requiere poner todas las piezas requeridas en un árbol. Uno de los
paquetes disponibles para descarga en el sitio LTSP es el paquete Local
Netscape, el cual instala montones de archivos en el directorio /opt/ltsp/i386/usr/local/netscape.
Cosas como las clases java, los archivos de ayuda, los binarios y los
scripts son puestos aquí.
Netscape no necesita ninguna librería del sistema
adicional, por lo que nada debe ser agregado al directorio /opt/ltsp/i386/lib.
Muchas aplicaciones sí requieren de librerías adicionales.
Por eso, ¿cómo puedes determinar lo que necesita tu
aplicación? Con el comando ldd.
Asumamos que quieres hacer que una determinada aplicación
corra localmente. Hemos escogido gaim como ejemplo.
gaim es un cliente para AOL Instant Messenger, que te permite
comunicarte con otra gente en foros AOL.
La primero que necesitas hacer es encontrar el binario
gaim. En RedHat 7.2, está ubicado en el directorio /usr/bin.
Una vez que lo has localizado, puedes correr
ldd con él:
[jam@server /]$ ldd /usr/bin/gaim
libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x40033000)
libm.so.6 => /lib/i686/libm.so.6 (0x40051000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40074000)
libgnomeui.so.32 => /usr/lib/libgnomeui.so.32 (0x4008a000)
libart_lgpl.so.2 => /usr/lib/libart_lgpl.so.2 (0x4015d000)
libgdk_imlib.so.1 => /usr/lib/libgdk_imlib.so.1 (0x4016c000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40191000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4019a000)
libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x401b1000)
libdl.so.2 => /lib/libdl.so.2 (0x402df000)
libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x402e3000)
libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x40319000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x4031d000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40325000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40333000)
libgnome.so.32 => /usr/lib/libgnome.so.32 (0x40411000)
libgnomesupport.so.0 => /usr/lib/libgnomesupport.so.0 (0x40429000)
libesd.so.0 => /usr/lib/libesd.so.0 (0x4042e000)
libdb.so.2 => /usr/lib/libdb.so.2 (0x40436000)
libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x40444000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40468000)
libc.so.6 => /lib/i686/libc.so.6 (0x40495000)
libz.so.1 => /usr/lib/libz.so.1 (0x405d1000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
|
El listado de arriba muestra todas las librerías que el
programa gaim utiliza dinámicamente.
La mayoría de los programas que usan librerías
compartidas, confían en el cargador dinámico ld-linux
para localizarlas y cargarlas. Algunos programas, en cambio, cargan sus
librerías manualmente con la función dlopen().
Para esas aplicaciones, ldd no mostrará las librerías.
En ese caso, strace puede ser utilizado para
rastrear la ejecución del programa, para que puedas ver las llamadas
dlopen() con el nombre de la librería como argumento.
Una vez que las librerías han sido recogidas, deben ser
copiadas en los lugares correctos dentro del árbol /opt/ltsp/i386.
En X Window, los programas típicamente correr relativos
a donde el administrador de ventanas corre. Esto significa que, si el
administrador de ventanas corre en el servidor, mostrando su salida por la
estación de trabajo, entonces cualquier programa que es lanzado también
correrá en el servidor, enviando su salida por la terminal.
El truco es hacer que el servidor le diga a la estación
de trabajo que lance el programa. Esto es realizado comúnmente por el
comando rsh.
Aquí hay un ejemplo de cómo correr
gaim en la terminal:
HOST=`echo $DISPLAY | awk -F: '{ print $1 }'`
rsh ${HOST} /usr/bin/gaim -display ${DISPLAY}
|
El ejemplo de arriba puede ser ejecutado en una ventana
de xterm, o puede ser puesto en un script de shell,
y ser lanzado por un icono desde el escritorio.
Lanzar el Netscape Local es similar, pero una variable
de entorno adicional nececita configurarse antes de correr el programa.
HOST=`echo $DISPLAY | awk -F: '{ print $1 }'`
rsh ${HOST} MOZILLA_HOME=/usr/local/netscape \
/usr/local/netscape/netscape -display ${DISPLAY}
|
Casi cualquier aspecto de una estación de trabajo puede
ser configurado con entradas en lts.conf, el
cual está usualmente ubicado en el directorio /opt/ltsp/i386/etc.
He aquí un ejemplo de las entradas en lts.conf
para un ratón serial estándar de 2 botones:
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS0"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 2
X_MOUSE_EMULATE3BTN = Y
|
He aquí un ejemplo de las entradas en lts.conf
para un Intellimouse:
X_MOUSE_PROTOCOL = "IMPS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 5
X_ZAxisMapping = "4 5"
|
La estación de trabajo ThinkNIC tiene un puerto USB,
que puede ser utilizado para conectar una impresora local. He aquí un
ejemplo de las entradas requeridas en el archivo lts.conf:
MODULE_01 = usb-ohci
MODULE_02 = printer
PRINTER_0_DEVICE = /dev/usb/lp0
PRINTER_0_TYPE = S
|
Por defecto, XFree 4.1.0 será utilizado en una estación
de trabajo. Si por el contrario quieres forzar a una terminal a utilizar
un servidor 3.3.6 mas viejo, primero necesitarás instalar el paquete
XFree86 3.3.6 apropiado. Luego, necesitarás agregar la entrada en el
archivo lts.conf. Este es un ejemplo para
especificar el servidor X SVGA:
- The LTSP home page
www.LTSP.org
- Diskless-Nodes HOW-TO document for Linux
www.linuxdoc.org/HOWTO/Diskless-HOWTO.html
- Etherboot Home Page
etherboot.sourceforge.net
- The Rom-O-Matic site
www.Rom-O-Matic.net
- XFree86-Video-Timings-HOWTO
www.linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO.html
- The Linux NIS(YP)/NYS/NIS+ HOWTO
www.linuxdoc.org/HOWTO/NIS-HOWTO.html
-
Managing NFS and NIS
Hal Stern
O'Reilly & Associates, Inc.
1991
ISBN 0-937175-75-7
-
TCP/IP Illustrated, Volume 1
W. Richard Stevens
Addison-Wesley
1994
ISBN 0-201-63346-9
-
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)
|
|