# Debian y el núcleo

## ¿Qué herramientas proporciona Debian para crear núcleos personalizados?

Se recomienda a todos aquellos usuarios que deseen (o necesiten) compilar un núcleo personalizado que obtengan el paquete `kernel-package` (que se encuentra en la sección `misc` en los sitios FTP de Debian). Este paquete contiene el script necesario para compilar el núcleo, y permite crear un paquete Debian kernel-image sólo con la ejecución de la orden `make-kpkg kernel_image` en el directorio principal de los fuentes del núcleo. Hay disponible una ayuda ejecutando la orden `make-kpkg --help`, y en la página manual de make-kpkg(1).

Los usuarios deberán obtener separadamente el código fuente del último núcleo (o del núcleo que quieran) de su servidor de Linux favorito.

Para construir un núcleo personalizado, se deberán tener los siguientes paquetes instalados: `gcc`, `libc6-dev`, `bin86`, `binutils`, y `make`.

En el fichero `/usr/share/doc/kernel-package/README.gz` se dan instrucciones detalladas del uso del paquete. Resumidamente se debe:

- Descomprimir los fuentes del núcleo, y hacer un `cd` al directorio recién creado.

- Modificar la configuración del núcleo usando una de las siguientes órdenes:

  - `make config` (para terminales, con un interfaz línea-a-línea).

  - `make menuconfig` (para un interfaz por menús basado en ncurses). Observe que para usar esta opción debe estar instalado el paquete `libncurses5-dev`.

  - `make xconfig` (para un interfaz X11). Para usar esta opción se requiere tener instalados los paquetes relevantes de X.

  Cualquiera de los pasos anteriores genera un nuevo `.config` en el directorio principal de los fuentes del núcleo.

- Ejecutar la orden: `make-kpkg -rev Custom.N kernel_image`, donde N es un número de revisión asignado por el usuario. El nuevo archivo Debian así creado tendrá la revisión Custom.N, por ejemplo, `kernel-image-2.4.27_Custom.1_i386.deb` para el núcleo 2.4.27.

- Instalar el paquete creado.

  - `Ejecute dpkg --install /usr/src/kernel-image-VVV_Custom.N.deb` para instalar el núcleo. El script de instalación,

    - ejecutará el cargador de arranque, LILO (si está instalado),

    - instalará el núcleo personalizado en /boot/vmlinuz_VVV-Custom.N, y establecerá los enlaces simbólicos apropiados a la nueva versión del núcleo.

    - preguntará al usuario si quiere hacer un disquete de arranque. Este disco de arranque contendrá sólo el núcleo. Mire las notas adicionales sobre la creación de un cusboot.

  - Para usar otros cargadores de arranque (como `loadlin`), puede copiar esta imagen a otros lugares (por ejemplo, a una partición `MS-DOS`).

## ¿Cómo puedo crear un disco de arranque personalizado?

Esta tarea se facilita mucho con el paquete `boot-floppies`, que se encuentra normalmente en la sección `admin` de los archivos FTP de Debian. Los scripts de este paquete producen discos de arranque en el formato `SYSLINUX`. Son discos con formato `MS-DOS` cuyo master boot record (registro maestro de arranque) ha sido alterado para que arranque Linux (o cualquier otro sistema operativo que se haya definido en el fichero syslinux.cfg en el disquete) directamente. Otros scripts de este paquete sirven para producir discos root de emergencia y pueden incluso reproducir los discos base. Encontrará más información acerca de esto en el fichero `/usr/share/doc/boot-floppies/README` después de instalar el paquete `boot-floppies`.

## ¿Qué medios especiales proporciona Debian para el uso de módulos?

El paquete `modconf` de Debian proporciona un shell script (`/usr/sbin/modconf`) que puede usarse para personalizar la configuración de los módulos. Este script presenta un interfaz basado en menús, preguntando al usuario acerca de las particularidades de los controladores de dispositivos de su sistema. Las respuestas se utilizan para personalizar el fichero `/etc/conf.modules` (que lista alias y otros argumentos que deben usarse conjuntamente con algunos módulos), y `/etc/modules` (que lista los módulos que deben cargarse en el arranque). Al igual que los (nuevos) ficheros Configure.help que hay ahora disponibles para ayudar en la construcción de núcleos personalizados, el paquete modconf viene con una serie de ficheros de ayuda (en `/usr/lib/modules_help/`) que proporcionan información detallada sobre los argumentos apropiados para cada uno de los módulos.

## ¿Puedo desinstalar sin peligro un núcleo antiguo y, si es así, cómo?

Sí. El script `kernel-image-NNN.prerm` comprueba antes si el núcleo que está utilizando actualmente es el mismo que quiere desinstalar. Por lo tanto puede borrar paquetes de núcleos no deseados ejecutando la siguiente orden:

    dpkg --purge --force-remove-essential kernel-image-NNN