<sect>Debian y el núcleo<label id="Kernel">
<P>
<sect1>
¿Qué herramientas proporciona Debian para crear núcleos personalizados?
<label id="custker">
<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(8).
<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>
Ejecutando la orden <tt>dpkg --install kernel-package_VVV_all.deb</tt>
se creará el directorio <tt>/usr/src/linux-VVV/</tt>, y establecerá el
enlace <tt>/usr/src/linux</tt> para que apunte al directorio
<tt>/usr/src/linux-VVV/</tt> que contendrá los fuentes del núcleo.
<P>
En el fichero <tt>/usr/doc/kernel-package/README</tt> se dan instrucciones
detalladas del uso del paquete. Resumidamente se debe:
<itemize>
<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:
  <itemize>
  <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>ncurses3.0-dev</tt>.
  <item><tt>make xconfig</tt>  (para un interfaz X11).
Para usar esta opción se requiere tener instalados los paquetes relevantes
de las X.
  </itemize>
  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-2.0.36_Custom.1_i386.deb</tt> para el núcleo
2.0.36.
<P>
<!-- XXX nested itemize (sgml2txt problem)-->
<item>Instalar el paquete creado.
  <itemize>
  <item><tt>Ejecute dpkg --install /usr/src/kernel-image-VVV_Custom.N.deb</tt>
para instalar el núcleo. El script de instalación,
  <itemize>
     <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" name="disco de arranque
personalizado">.
     </itemize>
  <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>).
  </itemize>
</itemize>

<sect1>¿Cómo puedo crear un disco de arranque personalizado?<label
id="cusboot"></>
<P>
Esta tarea se facilita mucho con el paquete
<tt>boot-floppies</tt>, que se encuentra normalmente en la
sección <tt>devel</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.

Cuando se instala el paquete boot-floppies, se instalan los ficheros en
<tt>/usr/src/boot-floppies/</tt>, incluyendo los tres scripts,
denominados <tt>bootdisk.sh</tt>, <tt>rootdisk.sh</tt>, y
<tt>basedisk.sh</tt>. Se recomienda a los usuarios de estos scripts revisarlos y
personalizarlos apropiadamente. En particular, uno debe incluir el núcleo
seleccionado cuando invoque el script <tt>bootdisk.sh</tt>. <em>Tenga en
cuenta que este núcleo no se puede usar para cargar el disco raíz (root
disk) en un RAMDISK salvo que se haya compilado con
<tt>CONFIG_RAMDISK=y</tt> y <tt>CONFIG_INITRD=y</tt></em>.

Para copiar el paquete kernel-image-2.0.36 en un disco de 1.44 MBytes
colocado en A: ejecute la siguiente orden:
<tscreen><verb>
./bootdisk.sh /usr/src/kernel-image-2.0.36_1.00.deb /dev/fd0 1440
</verb></tscreen>

Asegúrese de incluir un editor y cualquier otra herramienta que
seleccione cuando cree su disco raíz (root disk) personalizado con
<tt>./rootdisk.sh</tt>.
<P>
Mucha gente encuentra que los discos de arranque y raíz se comportan como
unos buenos discos de emergencia.

<sect1>¿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.

<sect1>¿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:

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