<chapt id="kernel">Debian y el núcleo

<sect id="customkernel">
¿Qué herramientas proporciona Debian para crear núcleos personalizados?

<p>Se recomienda a todos aquellos usuarios que deseen (o necesiten) compilar
un núcleo personalizado que obtengan el paquete
<tt>kernel-package</tt> (que se encuentra en la sección
<tt>misc</tt> 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
<tt>make-kpkg kernel_image</tt> en el directorio principal de los fuentes del
núcleo. Hay disponible una ayuda ejecutando la orden <tt>make-kpkg
--help</tt>, y en la página manual de make-kpkg(1).
<p>
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.
<p>
Para construir un núcleo personalizado, se deberán tener los
siguientes paquetes instalados:
<tt>gcc</tt>,
<tt>libc6-dev</tt>,
<tt>bin86</tt>,
<tt>binutils</tt>,
y <tt>make</tt>.
<p>
En el fichero <file>/usr/share/doc/kernel-package/README.gz</file> se dan instrucciones
detalladas del uso del paquete. Resumidamente se debe:
<list>
<item>Descomprimir los fuentes del núcleo, y hacer un <tt>cd</tt> al
directorio recién creado.
<item>Modificar la configuración del núcleo usando una de las siguientes
órdenes:
  <list>
  <item><tt>make config</tt>  (para terminales, con un interfaz
línea-a-línea).
  <item><tt>make menuconfig</tt>  (para un interfaz por menús basado en
ncurses).
Observe que para usar esta opción debe estar instalado el paquete
<tt>libncurses5-dev</tt>.
  <item><tt>make xconfig</tt>  (para un interfaz X11).
Para usar esta opción se requiere tener instalados los paquetes relevantes
de X.
  </list>
  Cualquiera de los pasos anteriores genera un nuevo <tt>.config</tt> en el
directorio principal de los fuentes del núcleo.
<item>Ejecutar la orden: <tt>make-kpkg -rev Custom.N kernel_image</tt>,
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, <tt>kernel-image-&kernelversion;_Custom.1_i386.deb</tt> para el núcleo
&kernelversion;.
<p>
<!-- XXX nested list (sgml2txt problem)-->
<item>Instalar el paquete creado.
  <list>
  <item><tt>Ejecute dpkg --install /usr/src/kernel-image-VVV_Custom.N.deb</tt>
para instalar el núcleo. El script de instalación,
  <list>
     <item>ejecutará el cargador de arranque, LILO (si está instalado),
     <item>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.
     <item>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 <ref id="cusboot">.

     </list>
  <item>Para usar otros cargadores de arranque (como <tt>loadlin</tt>),
puede copiar esta imagen a otros lugares (por ejemplo, a una partición
<tt>MS-DOS</tt>).
  </list>
</list>

<sect id="cusboot">¿Cómo puedo crear un disco de arranque personalizado?

<p>Esta tarea se facilita mucho con el paquete <tt>boot-floppies</tt>,
que se encuentra normalmente en la sección <tt>admin</tt> de los
archivos FTP de Debian. Los scripts de este paquete producen discos de
arranque en el formato <tt>SYSLINUX</tt>. Son discos con formato
<tt>MS-DOS</tt> 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
<tt>/usr/share/doc/boot-floppies/README</tt> después de instalar el paquete
<tt>boot-floppies</tt>.
<p>

<sect id="modules">¿Qué medios especiales proporciona Debian para el uso de módulos?

<p>El paquete <tt>modconf</tt> de Debian proporciona un shell script
(<tt>/usr/sbin/modconf</tt>) 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 <tt>/etc/conf.modules</tt> (que
lista alias y otros argumentos que deben usarse conjuntamente con
algunos módulos), y <tt>/etc/modules</tt> (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
<tt>/usr/lib/modules_help/</tt>) que proporcionan información detallada
sobre los argumentos apropiados para cada uno de los módulos.

<sect id="removeoldkernel">¿Puedo desinstalar sin peligro un núcleo antiguo y, si es así, cómo?

<p>Sí. El script <tt>kernel-image-NNN.prerm</tt> 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:

<example>dpkg --purge --force-remove-essential kernel-image-NNN</example>
