Saltar al contenido

Visor

Guía rápida TCOS con MAX 7.5

Guía rápida de implantación de TCOS con MAX 7.5

Introducción

El proyecto TCOS de Mario Izquierdo permite que un PC relativamente potente con Linux actúe como servidor de una serie de equipos modestos que arrancan por la red ejecutando el sistema operativo del servidor sin siquiera utilizar el disco duro local. Con TCOS podemos dar una segunda vida a ordenadores anticuados ya que con apenas 64MB de memoria RAM y procesadores de hace 15 años pueden actuar como terminales ligeros del servidor.

TCOS está integrado completamente en nuestra distribución MAX gracias igualmente a Mario.

Instalación del servidor

Partimos de un ordenador personal compatible PC cuyos únicos requisitos especiales serán un procesador potente y una cantidad de memoria RAM amplia para poder dar servicio al número de terminales que vayamos a implantar. Conviene que tenga dos tarjetas de red, a ser posible Gigabit. Para un aula de 15 terminales ligeros podemos dar estas recomendaciones:

  • Procesador con varios núcleos, cuatro núcleos virtuales valdrían (dos reales con Hyperthreading por ejemplo) o más.
  • 4GB de memoria RAM bastarían, pero si se puede instalar más siempre es beneficioso y asegura una buena escalabilidad en el futuro o si queremos añadir más terminales.
  • El disco duro tendrá que ir acorde con las necesidades de almacenamiento que vayamos a tener. Idealmente pondríamos un disco duro SSD para el sistema operativo y otro normal más grande para los datos.
  • Dos tarjetas de red a ser posible Gigabit. Se podría implementar con una sola tarjeta pero el coste es mínimo y la ganancia en rendimiento mucha. También se pueden utilizar más tarjetas para mejorar el rendimiento de red (este punto no lo vamos a ver en este documento)

Nota: se han visto instalaciones tcos con menos puestos y hw mucho más discreto, incluso servidores P-IV.

Necesitaremos una buena conectividad de red entre el servidor y los terminales, a ser posible con un switch dedicado con una boca de red por cada terminal y una o varias para el servidor. Aunque los clientes seguramente no tendrán red Gigabit, un switch gigabit permitirá agregar las conexiones más lentas de los clientes en la más rápida del servidor.

La otra toma de red del servidor se conectará a nuestra red local como cualquier otro ordenador para dar conectividad internet al servidor y por ende a todos los terminales que pasan por el.

Realizaremos una instalación de MAX 7.5 (descargable de nuestra web) en el servidor siguiendo las instrucciones del manual de instalación con la única precaución de seleccionar en tipo de instalación Clientes ligeros (TCOS) También recomendamos seleccionar la opción de Escritorio Ligero XFCE, que irá más fluido y además en MAX 7.5 el escritorio por defecto (gnome-fallback) no integra bien (de momento) el sonido y los dispositivos usb de los clientes ligeros.

Si nuestro servidor tiene más de 4GB de memoria RAM necesitaremos la versión de 64 bits ya que la de 32 no podrá reconocer más que los 4GB iniciales.

Configuración del servidor

Todas las acciones que se describen a partir de ahora las haremos desde una sesión de usuario administrador (madrid si nolo hemos cambiado) y entrando su contraseña (cmadrid, recomendable cambiarla) cada vez que nos lo pida.

Tras la instalación recomendamos actualizar el sistema todo lo que se pueda y reiniciar, para ello tendremos que configurar la interfaz de red con acceso a internet, salvo que con la configuración por defecto (configuración automática vía DHCP) nos funcione. En cualquier caso tendremos que ver cual es la interfaz de red de internet y cual es la de los terminales. El comando ifconfig -a nos puede ayudar a verlo.

Ahora estamos en condiciones de acometer la configuración en los siguientes pasos:

  1. Abrir el Configurador de servidor TCOS (en Inicio->Administración) Aparece una ventana con varias pestañas, vamos a ir viendo qué rellenar:
    1. Pestaña Servidor DHCP:Pestaña DHCP
      1. Seleccionamos en el desplegable la interfaz de red que se va a usar para los terminales ¡Importante no equivocarse aquí! Le damos una dirección IP a esa interfaz en un rango distinto a la subred de Internet y automáticamente se rellenan los valores del rango
      2. Marcamos la casilla para deshabilitar NetworkManager para esa interfaz.
      3. Como prefijo de equipo, si vamos a querer autologin (ver más adelante) tendremos que poner el mismo nombre que el prefijo de los usuarios a crear en la siguiente pestaña.
      4. Importante dar a Guardar cambios
    2. Pestaña usuarios remotos:Pestaña usuarios remotos
      1. Simplemente configuramos el número de usuarios que queramos crear, el prefijo (se llamaran prefijo01, 02, etc.) y Guardar cambios. Conviene establecer más usuario de los que de verdad vayamos a tener.
    3. Pestaña Gestor de entrada:pestaña gestor de entrada
      1. Activamos la entrada remota SIEMPRE y el autologin si queremos que los terminales inicien sesión automáticamente. Esta opción sólo funcionará si cambiamos el gestor de entrada a gdm (ver más abajo) Con el gestor por defecto lightdm) simplemente será ignorada.
      2. Guardar cambios
    4. Pestaña Imágenes de arranque:pestaña imágenes de arranque
      1. Simplemente tiene un botón para pasar a la ejecución de TcosConfig. Hacemos click sobre el botón.
      2. Al hacerlo, si hemos instalado MAX 7.5 de 64 bits, nos recomendará crear una jaula de 32 bits para los clientes, que suelen ser máquinas que no son capaces de ejecutar sistemas de 64 bits. Salvo que los clientes sean equipos muy modernos, diremos que sí:aviso chroot
  2. Al pulsar que sí pasamos al Constructor del chroot, en ejecuciones posteriores del paso anterior, diremos siempre que Sí, aunque luego reutilicemos la jaula ya creada. Si la respuesta al paso anterior fue 'No' puedes pasar al apartado siguiente (3) yendo a Inico->Administración->Tcos-config
    1. Datos a facilitar al constructor del chrootconstructor chroot
      1. Dejamos por defecto distribución ubuntu, versión precise y arquitectura i386.
      2. Cambiamos la versión del kernel por la que tengamos en el servidor y que podemos obtener con el comando uname -r
        1. (podría no ser necesario pero lo hacemos por precaución pues últimamente la versión que pone por defecto puede haber sido borrada de los repositorios de ubuntu)
      3. Damos al botón “Construir chroot” y esperamos algo más de media hora a que termine.fin-chroot
      4. Una vez terminado damos al botón “Construir TCOS” que nos lleva a:tcos-config
  3. TCOS-Config: con este asistente vamos a configurar aspectos relativos a la imagen de sistema operativo que arrancan los clientes en red. Los pasos son:
    1. Diálogo de selección de plantilla: seleccionamos tcos.conf.all: Activadas la mayoría de las características.tcos-config plantillas
    2. Diálogo de configuración básica: dejaremos todos los valores por defecto salvo que los clientes arranquen con problemas gráficos, entonces en la sección 'Opciones de Xorg' cambiaremos el driver (VESA el más conservador) y la resolución si es necesario.tcos-config-conf-básica-1tcos-config-conf-básica-2
    3. Diálogo de configuración avanzada: configuramos el usuario y contraseña que podrá conectarse en consola de texto para depurar, además será el mismo que luego configuremos en TcosMonitor para controlar los equipos.tcos-config-conf-avanzada
    4. Segundo diálogo de configuración avanzada: IMPORTANTE seleccionar la versión del kernel en el desplegable, en principio saldrá sólo uno, pero a veces hay que pulsar pues no sale seleccionado por defecto. Si posteriormente tuviéramos problemas con los clientes, es recomendable también la opción de 'Incluir todos los módulos' Las demás opciones las podemos dejar como vienen por defecto.tcos-config-conf-avanzada2
    5. Por último dejamos el método de arranque como 'Arranque PXE' y le damos al botón de Comenzar a crear las imágenes:tcos-config-conf-arranquetcos-config-hacer-imagen
    6. Una vez terminadas las imágenes pulsamos 'Adelante' y 'Terminar y guardar'tcos-config-empezar-imagentcos-config-fin-hacer-imagen

Llegado este punto es importante REINICIAR EL EQUIPO.

Si todo ha ido bien, estaremos en condiciones de pasar al apartado de Arranque de los clientes. Será ahí cuando veamos si todo funciona bien o no.

Si hay problemas, saltaremos al apartado de resolución de problemas, tras el apartado de cambio de gestor de entrada que también conviene leerse.

Arranque de los clientes

Hay que configurar la bios de los equipos clientes para que arranquen de red con el protocolo PXE. El cómo hacerlo varía de unos equipos a otros. Si sólo los vamos a utilizar con TCOS conviene quitar el resto de opciones de arranque. En equipos muy antiguos conviene desactivar el hardware que no se vaya a utilizar, tal como disquetera, puertos serie y paralelo.

Si los terminales no arrancan de red y ni siquiera llegan a la ventana inicial de TCOS, esta página es un buen comienzo para depurar los problemas de PXE.

Si todo va bien, en el servidor podremos arrancar el programa TCOS-Monitor y tras configurarle en Autenticación el usuario y contraseña que se fijó más arriba al crear las imágenes, podremos monitorizar los puestos.

El gestor de entrada por defecto en MAX 7.5 (heredado de Ubuntu) es lightdm. Funciona bien salvo por que no tenemos (de momento) la funcionalidad de autologin y algunas de las funciones sobre usuarios (de momento no reconoce bien a los usuarios en tcos-monitor) En caso de no importarle y seguir con lightdm, sí recomendamos ejecutar el siguiente comando para evitar que permita a un mismo usuario abrir dos sesiones, acción que sólo puede originar problemas (en gdm no hace falta porque ya lo controla) El comando es:

sudo touch /etc/max-check-double-login

Cambio del gestor de entrada

Si queremos la funcionalidad de autologin, por la cual cada cliente ligero inicará sesión automáticamente con usuarios correlativos al número de terminal, tenemos que activar el gestor de entrada gdm. Lo podemos hacer con el interfaz gráfico (Inicio->Administración->Gestor de paquetes Synaptic) buscar e instalar gdm, o mediante un sencillo comando:

sudo apt-get install gdm

Nos saldrá un menú pidiendo el gestor de entrada a dejar por defecto y seleccionaremos gdm. Si no fuera el caso, podemos forzar la aparición de dicho menú con cualquiera de estos dos comandos:

sudo dpkg-reconfigure lightdm

sudo dpkg-reconfigure gdm

Un paso adicional e importante a hacer, como administrador, es la creación del fichero /etc/gdm/custom.conf con los siguientes contenidos:

[xdmcp]

Enable=true

MaxPending=60

MaxWaitIndirect=80

MaxWait=75

PingIntervalSeconds=35

MaxPendingIndirect=30

MaxSessions=40

DisplaysPerHost=4

[daemon]

TimedLogin=/usr/sbin/tcos-gdm-autologin|

TimedLoginEnable=true

TimedLoginDelay=3

[security]

AllowRemoteAutoLogin=true

Para el caso de haber activado gdm y el inicio de sesión automático, el próximo paso sería asignar una dirección IP a cada puesto para que se le asigne un nombre de equipo y usuario siempre igual. Esto se puede hacer editando como administrador el fichero /etc/dnsmasq.conf añadiendo líneas con el siguiente formato:

dhcp-host=00:11:22:33:44:55,192.168.0.101

Donde 00:11:22:33:44:55 es la direccion MAC del terminal y a continuación separado por una coma la dirección IP que le vamos a asignar siempre a ese equipo. Para obtener la dirección mac de cada terminal, podemos arrancarlos todos y verlo desde el servidor en el programa de monitorización TCOS-Monitor. También en la BIOS de cada equipo, con el comando arp -n en el servidor, o en la consola de cada equipo (CTRL-ALT-F1) haciendo login y con el comando ifconfig -a

Resolución de problemas

Los siguientes pasos son recomendables siempre, más aún si está habiendo problemas:

  1. Revisar que /etc/resolv.conf contiene la IP del servidor en la red de terminales y que /etc/resolv.conf.real contiene los DNS válidos de nuestro proveedor de internet. Si en tcos le hemos dado a que no controle network-manager la interfaz interna, sí nos dejará controlar la interfaz externa y tendremos que ponerle como servidor DNS la IP del servidor en la red de terminales.En algunos documentos se recomienda desinstalar network-manager y configurar las interfaces mediante el fichero /etc/network/interfaces, pero no es estrictamente necesario si se mantienen bien los ficheros aquí descritos.
  2. Cambiar en el fichero /etc/nsswitch.conf la línea que empieza por hosts: para dejar sólo los valores files y dns, quedando así:  hosts: files dns
  3. Revisar el fichero /etc/hosts para ver que las direcciones IP asignadas a los clientes ligeros y sus nombres están bien. Conviene tener más entradas de equipos que equipos reales tengamos, de lo contrario mientras establecemos la asociación por MAC/IP podríamos agotar todos disponibles y denegar a los que por equivocación no se hayan puesto bien.
  4. Cambiar el driver gráfico como se describe más arriba a VESA, resoluciones más pequeñas, etc....

En algunos servidores muy antiguos y con pocos recursos, hay que irse a núcleos de linux más antiguos si no consiguen funcionar (error “waiting for net device” en los clientes al intentar iniciar ) Igualmente con clientes muy antiguos que no puedan con el núcleo actual de MAX (para casos extremos mejor instalar el servidor con la versión anterior de MAX: 6.5) Se procede de la siguiente manera:

  1. Añadir el repositorio de una versión anterior de Ubuntu:
  2. Añadir al final del fichero /etc/apt/sources.list (como root) la siguiente línea:
    1. deb http://old-releases.ubuntu.com/ubuntu/ lucid main restricted
    2. deb http://old-releases.ubuntu.com/ubuntu/ lucid-updates main restricted
  3. Ejecutar el comando sudo apt-get update
  4. Repetir todo el proceso de más arriba y en el paso de generación de jaula chroot, borrar la jaula actual y al crear una nueva elegir en version de la distribución “lucid” y actualizará al kernel más antiguo.
  5. Volver a generar las imágenes con tcos-config

Pendiente de Documentar:

  • TCOS Monitor.
  • Configuración avanzada
    • Cómo configurar bonding de tarjetas de red
    • Cómo forzar configuraciones Xwindow en los clientes
  • Cómo depurar: ficheros de log, activar, qué vigilar, etc....
  • Resolver en tcos algunos temillas apuntados aquí y otros que voy metiendo en el github.

RESUMEN PARA IMPACIENTES:

Instalamos MAX 7.5 en el servidor con dos tarjetas de red seleccionando la opción 'Terminales Ligeros (TCOS)' y Escritorio Ligero Xfce

Reinicio al terminar, actualizar todo lo que se pueda y reinicio.

  • Inicio-> Administración → Configurador servidor TCOS
    • Pestaña Servidor DHCP
      • Seleccionar toma ethernet interna para terminales:
        • Rellena automáticamente el rango, deshabilita NetworkManager y Prefijo equipo (cambio a alumno) La interrogación avisa de ponerlos en /etc/hosts → no hace falta
        • Guardar Cambios
    • Pestaña usuarios remotos:
      • Crear X número de usuarios y Guardar Cambios (grupos a los que pertenece sólo pone fuse ¿?)
    • Pestaña Gestor de entrada:
      • Activar entrada remota
      • ¿Activar autologin? De momento no ya que con lightdm no va, salvo que vayamos a cambiar a gdm.
      • Guardar cambios
    • Pestaña Imágenes de arranque
      • Ejecutar TcosConfig

Propone crear la jaula: dar a Sí.

Ejecuta tcosConfig:

  • Opciones del chroot:
    • Distribución: ubuntu (por defecto)
    • Versión: precise (idem)
    • Arquitectura: i386
    • Kernel: CAMBIAR al actual: (comando uname -a en terminal) ejemplo: 3.11.0-26-generic
    • lo demás por defecto
    • Dar a construir chroot
    • Dar a construir TCOS

Sale el asistente TCOS Config:

  • Plantillas TCOS: dejamos por defecto
  • Configuración básica: ídem (el driver de vídeo por defecto que pone es VESA, pruebo con Detección completa)
  • Configuración avanzada: por defecto salvo usuario y contraseña (root – cmadrid)
  • Segunda pantalla de configuración avanzada: no pongo nada SALVO: ¡SELECCIONAR LA VERSIÓN DEL KERNEL EN EL DESPLEGABLE! e ¿Incluir todos los módulos? Sólo si da problemas la configuración por defecto.
  • Método de arranque: no toco nada.
  • Comenzar para generar la imagen.
  • Una vez completado: Adelante y Terminar y guardar.

Sale un mensaje: tiene que configurar el servidor DHCP → pero ya lo hemos hecho antes, se ignora.

Conviene ejecutar en una terminal el siguiente comando para evitar que en lightdm dos usuarios puedan hacer login a la vez, lo que originaría problemas:

sudo touch /etc/max-check-double-login

Verificar que ha puesto bien /etc/resolv.conf y /etc/resolv.conf.real, el primero tiene que ser la ip del servidor en la red interna de terminales y lo podemos fijar con el Network Manager, el segundo tiene que ser el servidor DNS externo que de ese servicio (el del proveedor de servicios)

REINICIAR !!

 

Por Javier Puche basado en el cuaderno TCOS de Ezequiel Cabrillo. Bajo licencia CC-by 4.0.