next up previous contents
Next: 3.2.2.4 Creación del kernel Up: 3.2.2 Instalación y configuración Previous: 3.2.2.2 Servidor de archivos   Índice General

3.2.2.3 Cargador de arranque

El programa encargado de iniciar la interfaz de red, obtener los datos de configuración básicos, y cargar por medio de TFTP el archivo especificado en esta configuración, es el cargador de arranque.

Para este proyecto se contaba, básicamente, con la elección de dos cargadores de arranque libres, que son los más utilizados en conjunto con redes Linux, y de hecho son mencionados en la documentación sobre arranque de estaciones diskless [5]. Estos dos paquetes son Netboot y Etherboot.

Históricamente Netboot fue el primero en aparecer. Netboot utiliza los manejadores de paquetes (packet drivers) que se incluyen con casi cualquier tarjeta de red en el mercado, teniendo de esta manera gran compatibilidad con una extensa gama de tarjetas. Sin embargo, tiene dos desventajas básicas: la primera es que, por la inclusión de código externo y por tratarse de una base de código más antigua, es de tamaño un tanto grande, teniéndose en cuenta que el cargador de arranque normalmente se graba en una ROM que se adiciona a la tarjeta de red, las limitantes en tamaño de las ROM disponibles y el soporte a las mismas según cada tarjeta de red; la segunda es que, para tarjetas ISA, Netboot no realiza autoconfiguración, requiriéndose especificar los parámetros de la tarjeta (IRQ, puerto I/O) al momento de crear la imagen de arranque. Esto es importante porque representa una desventaja administrativa significativa, requiriendo mantener una imagen diferente para cada configuración de tarjeta, y ya que los equipos utilizados en el proyecto emplean tarjetas ISA, se considera esta limitación decisiva para no utilizar Netboot.

Etherboot es un desarrollo posterior, basado hasta cierto punto en Netboot, pero que ha sido reescrito proporcionando una base de código más limpia y compacta que la de Netboot. Etherboot utiliza manejadores internos y genera una imagen ROM para cada tipo de tarjeta de red soportada. El uso de manejadores internos permite que la imagen tenga un tamaño muy reducido que no da problemas con ninguna tarjeta de red soportada. Además, ya que los manejadores fueron desarrollados explícitamente para Etherboot, cuentan con autoconfiguración para tarjetas tipo ISA, lo que permite utilizar una sola imagen de arranque para cada tipo de tarjetas. El uso de Etherboot no se recomienda si se tienen tarjetas de red que no estén soportadas, ya que el soporte de Netboot es más extenso; en este caso se contaba únicamente con tarjetas que sí están soportadas por Etherboot, de manera que se decidió su uso para el arranque de los nodos.

Etherboot no se incluye en la distribución Red Hat Linux. Para utilizarlo se debe obtener el código fuente de la página http://etherboot.sourceforge.net. Para este proyecto se obtuvo la versión 4.6.7.

Para la instalación se debe desempacar el archivo obtenido con el siguiente comando:

# tar -zxvf etherboot-4.6.7.tar.gz

Esto crea un subdirectorio etherboot-4.6.7. A continuación cambiamos al subdirectorio etherboot-4.6.7/src. En este directorio se encuentra el código fuente. Aqui invocamos el comando make. Este compila todos los archivos fuente, generando las imágenes ROM y colocándolas en el directorio etherboot-4.6.7/src/bin32. En este directorio los archivos con extensión .rom son las imágenes ROM. En este caso son de particular interés los archivos winbond940.rom y 3c509.rom pues estos corresponden a las tarjetas de red con que se cuenta.

En el paquete Etherboot se proporciona un pequeño cargador para discos flexibles, cuyo propósito es permitir probar las imágenes ROM antes de su grabado definitivo en una memoria EEPROM. Se decidió emplear este método pues es una manera sencilla de arrancar los nodos.

Para crear un diskette de arranque con Etherboot, se debe introducir un diskette limpio y formateado y utilizar el comando make como se indica:

# make bin32/3c509.fd0
# make bin32/winbond940.fd0

Cada uno de estos comandos creará un diskette de arranque para la tarjeta correspondiente.

Para utilizar el cargador de arranque se inserta el diskette correspondiente a cada nodo, según el tipo de tarjeta de red que cuenta. Se inicia el nodo con este diskette. El cargador de discos carga y ejecuta el programa Etherboot; éste solicita su dirección IP por medio de DHCP (Etherboot utiliza DHCP y si no obtiene respuesta intenta una petición BOOTP). Obtenida la dirección se comunica al servidor de TFTP y solicita el archivo especificado, que en este caso es /tftpboot/vmlinuz-2.2-nbi. Como hasta el momento este archivo no está disponible, el proceso falla y la carga se detiene. El paso siguiente será crear el archivo del kernel que utilizarán los nodos.


next up previous contents
Next: 3.2.2.4 Creación del kernel Up: 3.2.2 Instalación y configuración Previous: 3.2.2.2 Servidor de archivos   Índice General
2002-05-15