PXES Version 0.6: Léeme

por Diego Torres Milano <mailto:diego@in3.com.ar?Subject=PXES >
Copyright © 2001-2003. Todos los derechos reservados.
Este software es gratis bajo los términos de G.N.U. (Licencia General Pública).

Cliente thin instantáneo

PXES es una micro distribución Linux que le permite crear o bootear clientes thin.
Estos clientes thin pueden ser verdaderos terminales thin o cualquier hardware compatible P.C.(ver lista abajo)    
los cuales pueden ser transformados en clientes thin en cuestión de minutos.

Después del proceso de booteo, éste debería ser capáz de acceder a:

    XDMCP server (X Display Manager),
    principalmente en sistemas Linux, Solaris y otros Unix presentando la pantalla de login gráfico.

    Microsoft Terminal Server a través de RDP (Remote Desktop Protocol--Protocolo de Escritorio Remoto)
    presente en Microsoft Windows NT, 2000, 2003 y XP

    Citrix ICA Server soportando la Versión 6.30 y 7.00


    VNC (Virtual Network Computer) server


    Sesión de LOCAL X Windows con manejador local de window y escritorio simple.

    LTSP/K12LTSP server (Linux Terminal Serverl Project),
    LTSP configurado con pantalla de login gráfico.

    IBM Host Access emulando terminales 3270 y 5250. 


    Telnet emulando un terminal ANSI

    SSH sesión remota

    Tarantella sesión


    Nomachine NX sesión




Existe un documento explicando como configurar el cliente Citrix ICA debido a que este software cliente no puede ser redistribuido. Vea Configurando ICA.

La actual configuración de clientes es hecha con una herramienta gráfica fácil de usar parecida a un asistente  (GNOME druid) que le permite establecer los parámetros de los clientes, el servidor a acceder, la configuración de los dispositivos locales tales como tarjetas de red, distribución del teclado, tarjeta de sonido y dispositivos de audio, servicios de impresión local y dispositivos USB.

 Usted puede reciclar el hardware obsoleto otorgándole una segunda oportunidad para ejecutar modernos S.O. y aplicaciones de oficina.

Cualquier Intel 486 con 16 Mb de RAM puede ser usado como requerimiento mínimo, pero es recomendado un Intel Pentium I con 32 Mb de RAM.

 Debido a la ausencia de dispositivos locales como diskette, cd-rom o discos duros, por ser no necesarios, Ud puede reducir en forma considerable el TCO (Total Cost of Ownership--Costo Total por Propiedad) con terminales mas básicos como sea posible. Esto se traduce, por ejemplo que Ud puede reducir los incidentes en su red al mínimo, debido a virus o fallas de seguridad. No obstante si son necesarios estos dispositivos, puede configurar los clientes thin para que los puedan utilizar.

Estos clientes thin cargan el S.O. desde la red a través del proceso PXE ( Intel Pre-Execution Environment specifications Especificaciones de Entorno de Preejecución de Intel) de manera que no es necesario diskete o memoria eeprom de arranque. No obstante, si su hardware no soporta PXE, existen alternativas de configuración creando una imagen de kernel etiquetada, seleccionando la opción Enable network bootable image mientras se configura su imagen de disco ram y entonces usa Etherboot para cargar de diskete, EEPROM, DiskOnChip interno o DiskOnModule, desde un cd-rom local, o cualquier disco duro pequeño usando LILO o GRUB.

El kernel de linux y el sistema de archivos root inicial son transmitidos a través de la red (el tamaño comprimido de la versión 0,6 es de 4,7Mb).

Esta versión de PXES combina varios factores para obtener estos objetivos.

Después de terminado el proceso de carga, el cliente thin es completamente autosuficiente, de manera que no es necesario un servidor NFS. Por supuesto si ud. necesita acceder a XDMCP, Microsoft Terminal Server , Citrix ICA server o cualquier otro servidor, estos servidores son requeridos.

Liberando la dependencia de servidor NFS nos permite la existencia de clientes thin autosuficientes, principalmente cuando son empleados en entornos "Microsoft ONLY" en donde no se encuentran servidores NFS y ud. no desea emplear un servidor Unix/Linux NFS.
Por otro lado, el no uso de NFS implica que esta distribución se mantenga compacta.

Aquí hay algunas instantáneas de PXES luego del proceso de carga; observandose la pantalla de login XDMCP y el login de Microsoft Terminal Server.

 

 

Se pueden observar mas instantáneas de PXES visitando página de instantáneas.

Instalación

Estos son los pasos a seguir para que PXES funcione:

y listo!.

Configuración del server

Instalación de PXES

PXES está dividido en partes para hacer fácil la instalación y permitirle instalar únicamente los componentes que ud. vaya a necesitar.

Ud. necesita por lo menos pxes-base y pxesconfig para comenzar.

Esto debería ser instalado en  cualquier servidor usado para generar el disco RAM inicial y la configuración de los clientes thin . Si este no es un servidor TFTP, entonces ud va a tener que copiar la imagen de disco ram generada, el kernel y los archivos de configuración en el servidor TFTP en el directorio correspondiente.

PXES instalación base

Instalando a través de RPM

Instale el RPM pxes-base-arch-0.6-release.  

Ud puede elegir el "arch" que mejor represente a su cliente thin básico.

Pxes-base necesita de los servidores TFTP y DHCP, los cuales deben estar instalados.

Después de seguir las instrucciones de Instalación del servidor TFTP y la Instalación del servidor DHCP, ejecute

# rpm -Uvh pxes-base-arch-0.6-release.i386.rpm

Por defecto este RPM se instalará en el directorio /opt pero si se prefiere, se puede utilizar el directorio /usr o cualquier otro directorio que Ud especifique en --prefix=/dir

Instalando de tgz

Ejecute el comando Untar y guárdelo en un directorio temporal , luego edite el archivo Makefile de acuerdo a su conveniencia y a continuacion (como usuario ROOT) introduzca el comando:

# make install

TFTP instalación del servidor

 El paquete del servidor TFTP debe ser por lo menos la versión tftp-server-0.28-2. Este es parte del estandar  de Red Hat 7.3 y posteriores distribuciones.

# rpm -Uvh tftp-server*.rpm

O ud puede instalar tftp-hpa-server-0.28-1 el cual puede ser descargado en forma de paquete RPM de:

http://www.fis.unipr.it/pub/linux/contrib/redhat/6.2/RPMS/i386/tftp-hpa-server-0.28-1.i386.rpm

http://etherboot.sourceforge.net/tftp-hpa/tftp-hpa-0.29-1.i386.rpm

O en forma de paquete TGZ de:

http://www.kernel.org/pub/software/network/tftp/

Después de la instalación del software verifique la correspondiente configuración "xinted" y efectúe pruebas de otra línea de comando host.

 Ud. puede usar el servidor Microsoft Windows actuando como un servidor TFTP, De acuerdo a la documentación de SYSLINUX :

Si su servidor de arranque esta corriendo Windows (y no se puede cambiar), pruebe tftpd32 por Philippe Jounin:

http://tftpd32.jounin.net/

Y a lo mejor ud pueda tener todo funcionando correctamente.

Si ud no tiene acceso a ningún servidor Unix/Linux en las cuales generar los archivos PXES vea: Ms entorno únicamente HOWTO

DHCP instalación del server

El servidor dhcp probado fue dhcp-2.0pl5-8 incluido en la distribución Red Hat 7.2 y dhcp-3.0pl1-9 incluido en Red Hat 8.0, pero ud puede elegir el que necesite:

# rpm -Uvh dhcp-2.0pl5-8.rpm

No es necesario que el servidor DHCP sea el mismo que el servidor TFTP server, y esto puede ser útil en algunas situaciones en donde el servidor local DHCP o DHCP-Proxy esten separados uno del otro de la red de servidores.

En la configuración DHCP se debería ver algo como esto:

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;
        }
}

Durante la etapa de setup ud puede ejecutar el servidor en modo debug y ver que es lo que está pasando:.

# dhcpd -d

Ud. deberá ver las consultas y respuestas de DHCP.

 Lo único que necesita es adaptar esta configuración a su entorno o requerimiento de red, siguiendo el ejemplo mostrado.

PXES instalación de las herramientas de configuración

Instalando a través de RPM

pxesconfig necesita de Gtk-Perl y Glade-Perl, por lo cual antes de ejecutarlo, asegurese de tener instalado Gtk-Perl versión 0.7008-3 o posterior y Glade-Perl 0.60 o posterior.

# rpm -Uvh Gtk-Perl-0.7008-3.i386.rpm
# rpm -Uvh Glade-Perl-0.60-1.noarch.rpm

Ud puede descargar Glade-Perl de la sección extras de descargas PXES.

Instale el RPM pxesconfig-0.6-release , use la versión apropiada:

# rpm -Uvh pxesconfig-0.6-release.noarch.rpm

Por defecto, este RPM se instalará en /opt pero si ud prefiere instalarlo en  /usr o cualquier otro directorio debe especificar con  --prefix=/dir

Instalar de tgz

pxesconfig necesita de Gtk-Perl y Glade-Perl, por lo cual antes de ejecutarlo asegurese de tener instalado Gtk-Perl versión 0.7008-3 o posterior y  Glade-Perl 0.60 o posterior.
Ejecute el comando Untar sobre la distribución en un directorio temporal, edite el archivo Makefile.PL de acuerdo a sus necesidades y entonces corra:

# perl Makefile.PL
# make
# make install

 

Creación o modificación del disco ram inicial

Durante el proceso de carga, una imagen de disco ram inicial es solicitada. Esta es la imagen que ud va a crear.

Un druida GNOME (asistente) lo ayudara en la creación o modificación del disco ram inicial.

Ud necesita agregar una entrada igual como la siguiente en su /etc/fstab para montar el sistema de archivos durante su creación o modificación

  /tmp/pxes.initrd        /tmp/pxes       ext2    loop,noauto,user,owner  0 0
      

Ejecute el comando /opt/bin/pxesconfig , ud tiene la opción de seleccionar los valores acordes a su entorno.

Si ud está inicializando el disco ram, el cual es cierto durante la primera vez que ejecute pxesconfig, el botón "initialize" informa al druida sobre sus intenciones. Y debido a que se necesitan privilegios para estas operaciones mientras se crea el sistema de archivos, ud deberia ser usuario root.

Para detalles y conocimiento de como configurar rápidamente su cliente thin en 7 pasos visite el link Guía rápida pxesconfig.

pxesconfig druid


Archivo de configuración Boot

Si ud ha cambiado el nombre del disco ram que se establece por defecto, o necesita establecer algunos parámetros para algunas imágenes, deberá cambiar una entrada en la configuración 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

Ud puede configurar tantas entradas como necesite, por ejemplo puede tener una entrada para clientes thin que quieran acceder a Microsoft Terminal Server y otras para acceder a servidores XDMCP.

Asegurese de adaptar el valor ramdisk_size con el tamaño de la imagen generada sin compresión. Para conocer este valor, después de crear la imagen, compruebe el tamaño en el archivo /tmp/pxes.initrd.

Los parámetros de las imágenes pueden ser alteradas por argumentos de línea de comandos.Ud puede incluir cualquier variable de PXES en la línea de comando del kernel.

Pantalla de carga gráfica

Si su tarjeta de video es totalmente compatible con VESA, ud  puede intentar setear el modo VGA en la línea de comando del kernel, adicionalmente se agrega un tabla con los valores correspondientes.

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)

Carga del cliente

Programe el BIOS o interrumpa el proceso normal de carga para cargar a través de la red, usualmente presionando la tecla F8 o F12.

Si todo va saliendo bien ud va a ver como se obtiene una dirección IP del servidor DHCP y la pantalla gráfica mostrando el pez PXES. En la parte de abajo de la pantalla se va a encontrar:

boot:

Presione <enter>, espere por timeout, o ingrese el nombre de la entrada que ud quiera que se cargue.
Ud puede configurar el tiempo de timeout en la configuración.

Luego de algunos segundos aparecerá la pantalla de login de XDMCP o Microsoft Terminal Server.

Parámetros de línea de comandos del Kernel

Para alterar el comportamiento del proceso de carga del cliente thin, se pueden agregar algunas líneas de comandos especiales del kernel en el archivo de configuración de boot o desde el teclado.

Variable

Abreviación

Tipo

Comentario

ASK




BOOT_MESSAGES

bm

entero

Mensajes del nivel Boot 

CONFIGURATION_DIRECTORY

cdir

cadena

Directorio de configuración si la configuración remota está habilitada.

CONFIGURATION_SERVER_NAME

csn

cadena

Nombre del servidor de configuración o dirección IP si la configuración remota está habilitada.

CUSTOM_SESSION


cadena


DHCP_ERROR_NON_FATAL


boleana


KEYBOARD_LAYOUT


cadena


LOCAL_DVDCDROM_ENABLED


boleana


LOCAL_FLOPPY_ENABLED


boleana


LOCAL_HARDDISK_ENABLED


boolean


LOCAL_PRINTER_DEVICE


boleana


LOCAL_PRINTER_ENABLED


boleana


LOCAL_PRINTER_PORT


entero


LOCAL_SAMBA_ENABLED


boleana


LOCAL_SESSION


cadena


LOCAL_SOUND_CARD


cadena


LOCAL_SOUND_CARD_OPTIONS


cadena


LOCAL_SOUND_DEVICE


cadena


LOCAL_SOUND_ENABLED


boleana


LOCAL_USB_ENABLED


boleana


MOUSE_ACCEL_DIV


entero


MOUSE_ACCEL_MULT


entero


MOUSE_ACCEL_THR


entero


MOUSE_DEVICE


cadena


MOUSE_EMULATE_3_BUTTONS_ENABLED


boleana


MOUSE_EMULATE_3_TIMEOUT


entero


MOUSE_HANDED

mh

cadena


MOUSE_PROTOCOL

mp

cadena


MOUSE_PROTOCOL_PREFIX

mpp

cadena


MOUSE_WHEEL_ENABLED

mwe

boleana


NETWORK_CARD

nc

cadena


NETWORK_CARD_OPTIONS

nco

cadena


PROMPT_BEFORE_CLIENT


boleana

Inittab seteos

PXES_DEBUG


entero


RDP_DOMAIN

rd

cadena


RDP_DONT_REQUEST_LICENSE


boleana


RDP_DONT_SEND_MOTION_EVENTS


boleana


RDP_FORCE_BITMAP_UPDATES


boleana


RDP_GEOMETRY


cadena


RDP_IS_FULL_SCREEN


boleana


RDP_PASSWORD

rp

cadena


RDP_SERVER_NAME

rdp

cadena


RDP_SERVER_VERSION

rsv

cadena


RDP_USER

ru

cadena


REMOTE_CONFIGURATION_ENABLED

rce

boleana


VNC_COMPRESSION


entero


VNC_DISPLAY


entero


VNC_GEOMETRY


cadena


VNC_IS_FULL_SCREEN


boleana


VNC_IS_SHARED


boleana


VNC_PASSWORD_FILE


cadena


VNC_QUALITY


entero


VNC_SERVER_NAME

vnc

cadena


WAIT_ON_ERROR

woe

boleana


X_BPP


entero


X_COLOR_DEPTH


entero


X_DRIVER

xd

cadena


X_DONT_ZAP


boleana


X_FONT_SERVER_ENABLED


boleana


X_FONT_SERVER_NAME


cadena


X_FONT_SERVER_PORT


entero


X_HORIZONTAL_SYNC


entero


X_MONITOR_AUTODETECT_ENABLED


boleana


X_NUMLOCK


boleana


X_OPTION_NOACCEL


boleana


X_REMOTE_CONNECTIONS_AUTHORIZED_FROM


cadena


X_REMOTE_CONNECTIONS_ENABLED


boleana


X_SESSION_TYPE (DEPRECATED)


cadena


X_VERTICAL_REFRESH


cadena


X_VIDEO_MODES


cadena


XDM_METHOD


cadena


XDM_SERVER_NAME


cadena


XDM_SERVER_PORT


entero




Métodos alternativos de carga

Si su hardware no es compatible con PXE 2.x ud puede utilizar los siguientes métodos para la carga de su cliente thin.

Mejoras

Configuración dinámica

 

Para el soporte de diferencias de hardware o configuración entre sus clientes thin, la configuración dinámica puede ser utilizada. Habilitando esta opción, los parámetros de configuración son obtenidos del servidor luego de completado el proceso de carga. El servidor es accedido mediante TFTP.

Ud puede seleccionar esta opción de pxesconfig como “enable remote configuration” y seteando el servidor TFTP y su directorio, por defecto “/pxes/config”.

Kernel 2.4 simplificado

Debido a que un cliente thin estandar no requiere del uso de controladores de disco, periféricos, etc, un nucleo kernel 2.4 simplificado es utilizado en el proceso de carga.

Ud puede usar como base el código fuente del  kernel incluido en esta distribución como punto de partida para crear su propio kernel o para agregarle los módulos que necesite.

Vea Customizing kernel and modules HOWTO para información de detalles.

Componentes

La gran flexibilidad de adaptación es creada a partir del conjunto de los componentes de Red Hat 7.2, por lo que en el caso de que su hardware no cumpla los requerimientos, ud puede seleccionar los componentes apropiados y reconstruir esta micro distribución.

El software adicional puede ser incluido en el  disco ram desde el repositorio de stock.

Pantalla de boot gráfico

 Las herramientas que necesita para cambiar la pantalla de boot gráfico están incluidas en la distribución SYSLINUX , permitiendole convertir la imagen que ud necesite en un formato aplicable.

La distribución estandar viene con la siguiente imagen

PXES splash screen


Hardware compatible

Estas imágenes fueron compiladas para i586. Si ud esta usando otro tipo de procesador deberá compilar una nueva imagen a partir del codigo fuente.

Tarjetas de red

Tarjetas de video

PXES 0.6 incluye el servidor SVGA de XFree86 3.3.6 y Xfree86 4.3.0, por lo que la lista se obtiene del estado actual del hardware soportado en http://www.xfree86.org/current/Status.html

Nota: Intel i810 es soportado debido a que el módulo agpgart es incluido también.

Audio

Hardware comprobado

Clientes thin

P.C. Computadora personal

Tarjetas de video

Tarjetas de red

Si ud tiene tarjetas de red 3Com, puede actualizar la memoria flash rom con MBA: http://support.3com.com/infodeli/tools/nic/mba.htm

PXE lista de hardware

La lista de hardware OEM que soporta la especificación de PXE,  hasta diciembre del 2001, es:

http://www.intel.com/labs/manage/wfm/managedpc/systemlist.htm

Futuras ampliaciones

Versiones futuras dispondrán de: 

Recursos

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/






$Id: readme.html,v 1.12 2003/07/04 16:33:03 diego Exp $