Anterior Siguiente Indice

4. Compilación del núcleo

4.1 Limpieza y dependencias

Cuando se termina de configurar, se le instará a ejecutar `make dep' y `clean'. Haga `make dep', lo que preparará las dependencias en poco tiempo, a menos que su PC sea muy lento. Cuando acabe, haga `make clean'. Esto elimina ficheros objetos y demás de la versión anterior. No olvidar este paso.

4.2 El momento de compilar

Después de preparar dependencias, puede ejecutar `make zImage' o `make zdisk' (esta es la parte que tarda más tiempo). `make zImage' compilará el núcleo y lo dejará comprimido en arch/i386/boot/zImage junto a otros ficheros. Con `make zdisk' el nuevo núcleo se copiará además en el disquete que esté puesto en la disquetera ``A:''. `zdisk' es interesante para probar núcleos; si explota (o simplemente no hace nada) se quita el disquete de la disquetera y podrá arrancar el núcleo antiguo. Además sirve para arrancar si borró accidentalmente el núcleo del disco duro. También puede usarlo para instalar nuevos sistemas simplemente volcando el contenido de un disco en otro (``¡¡ todo esto y más !! Ahora, ¿cuánto pagaría?'').

Los núcleos recientes están comprimidos, con una `z' comenzando su nombre. Un núcleo comprimido se descomprime automáticamente al ser ejecutado.

4.3 Otras opciones del `make'

Con `make mrproper' hará una limpieza mucho más ``intensa''. Suele hacer falta cuando se actualiza (parchea) el núcleo. Pero esta opción borra también su fichero de configuración del núcleo, así que guarde una copia del correspondiente fichero .config si cree que le interesa.

La opción `make oldconfig' intentará configurar el núcleo con un fichero de configuración anterior A partir del 2.0.xx no es necesario, make recuerda la última configuración evitando todo el proceso del `make config'. Si no ha compilado anteriormente el núcleo o no tiene un fichero de configuración anterior, no lo elija pues normalmente querrá algo que se salga de la configuración por defecto.

Para compilación con módulos, vea la sección correspondiente.

4.4 Instalación del núcleo

Una vez que tenga un nuevo núcleo que parezca funcionar como desea, será el momento de instalarlo. Casi todo el mundo utiliza LILO (LInux LOader) para esto. Con `make zlilo' se instalará el núcleo ejecutando LILO, quedando listo para rearrancar, pero esto solo funcionará si LILO está bien configurado para su sistema: el núcleo es /vmlinuz, LILO está en /sbin y la configuración de LILO (/etc/lilo.conf) es coherente con lo anterior.

En otro caso, necesitará usar LILO directamente. Hay un paquete que lo instala de manera adecuada, pero su fichero de configuración tiende a confundir a la gente. Observe el fichero de configuración (estará en /etc/lilo.conf o en /etc/lilo/config para versiones más antiguas), y vea cuál es la configuración actual. El fichero de configuración será como éste:

image = /vmlinuz
        label = Linux
        root = /dev/hda1
        ...

La línea `image =' apunta al núcleo instalado actualmente. Casi siempre es /vmlinuz. `label' es el identificador usado para seleccionar qué sistema arrancar, y `root' es el disco o partición a usar para el directorio raíz. Haga una copia de seguridad de su antiguo núcleo y copie en /vmlinuz o donde diga el fichero anterior el fichero zImage que haya generado el proceso de compilación. Ahora, ejecute LILO (en sistemas modernos, será simplemente teclear `lilo'. En sistemas antiguos, habrá que poner `/etc/lilo/install' o `/etc/lilo/lilo -C /etc/lilo/config'.)

Si quiere saber más sobre la configuración de LILO, o no tiene LILO, obtenga la versión más reciente de su servidor FTP favorito y siga las instrucciones que le acompañan.

Para arrancar uno de sus antiguos núcleos, copie las líneas anteriores incluyendo `image = xxx' al principio del fichero de configuración de LILO, y cambie `image = xxx' por `image = yyy' donde `yyy' es el nombre de camino completo al fichero de la copia de seguridad guardada. Ahora, cambie `label = zzz' por `label = linux-backup' y reejecute LILO. Puede ser que necesite poner una línea en el fichero con `delay=x' donde x son las centésimas de segundo que LILO esperará antes de arrancar con la primera opción, de modo que pueda interrumpirse (con la tecla SHIFT) y seleccionarse qué núcleo desea arrancar (tecleando la etiqueta (label) asignada).

Inciso de la revisión 2.1

Una forma muy cómoda de llevar todo el tema del LILO, si lo tenemos instalado, y las compilaciones, etc, es añadir lo siguiente en el /etc/lilo.conf:

...
image=/vmlinuz
        label=ultimo
        root=/dev/hd[loquesea]
        read-only
        append = ""
image=/vmlinuz.old
        label=anterior
        root=/dev/hd[loquesea]
        read-only
        append = ""

Al compilar, si lo hacemos con la secuencia de comandos

# make dep; make clean; make zlilo; make modules; make modules_install

el make zlilo renombrará la anterior imagen del kernel a /vmlinuz.old , dejando la nueva como /vmlinuz, e instalará LILO, a continuación con lo cual lo hacemos todo automágicamente.

La órdenes make modules; make modules_install compilarán los módulos que hayamos seleccionado, y los instalarán. No olvidar ejecutar depmod -a en cuanto hayamos arrancado con dicho núcleo.

En caso de que estemos compilando por segunda vez una misma versión de núcleo, y hayamos variado el número de módulos a compilar, es posible que la ejecutar make dep nos encontremos con un mensaje de error; esto se debe a que los antiguos módulos que no hayamos compilado ahora no son borrados. Pueden borrarse tranquilamente.


Anterior Siguiente Indice