8.4. Compilar un nuevo núcleo

¿Por qué querría alguien compilar un nuevo núcleo? La mayoría de las veces no será necesario puesto que el núcleo estándar entregado con Debian gestiona la mayoría de configuraciones. En cualquier caso es útil compilar un nuevo núcleo para:

8.4.1. Gestión de la imagen del núcleo

No tenga temor de intentar compilar el núcleo. Es divertido y fructífero.

Para compilar un núcleo al “estilo Debian”, necesita algunos paquetes: kernel-package, kernel-source-2.4.27 (la versión más reciente en el momento de editar este documento), fakeroot y algunos otros que probablemente ya estén instalados (vea /usr/share/doc/kernel-package/README.gz para una lista completa.

Este método creara un «.deb» para su núcleo fuente y, si tiene módulos no estándares, construya también un «.deb» con dependencia sincronizada de los mismos. Es la mejor forma de gestionar imágenes del núcleo; /boot albergará el núcleo, el fichero «System.map» y el fichero de registro del fichero «config» activo para la construcción.

Observe que no tiene que compilar su núcleo “al estilo Debian”; pero creemos que usar el sistema de paquetes para gestionar su núcleo es realmente más seguro y sencillo. De hecho, puede obtener las fuentes de su núcleo directamente de Linus en lugar de kernel-source-2.4.27, y aún así usar el método de compilación kernel-package.

Note que puede encontrar documentación completa sobre el uso de kernel-package en /usr/doc/kernel-package. Esta sección sólo contiene un breve tutorial.

A partir de ahora, asumiremos que tiene acceso completo al sistema y que va a extraer las fuentes del núcleo en algún lugar de su directorio personal[10]. También daremos por supuesto que la versión de su núcleo es 2.4.27. Ubíquese en el directorio donde desee desempaquetar las fuentes del núcleo, extraiga las fuentes del mismo usando tar xjf /usr/src/kernel-source-2.4.27.tar.bz2 , y cámbiese al directorio kernel-source-2.4.27 que se habrá creado.

Ahora puede configurar su núcleo. Ejecute make xconfig si tiene X11 instalado, configurado y ejecutándose, make menuconfig en otro caso (necesitará instalar libncurses5-dev). Tómese su tiempo para leer la ayuda en línea y escoja cuidadosamente. Cuando tenga duda, a menudo es mejor incluir el controlador de dispositivo (el software que maneja el hardware periférico, como tarjetas Ethernet, controladoras SCSI, etc.) del que no está seguro. Tenga cuidado: Otras opciones no relacionadas con un hardware específico deberían dejarse en su valor predeterminado si no las comprende. No olvide seleccionar “Kernel module loader” (para la autocarga de módulos) en “Loadable module support” (éste no es elegido por omisión). Su instalación Debian experimentará problemas si no lo incluye.

Limpie el árbol de fuentes y reinicie los parámetros de kernel-package. Para hacerlo, ejecute make-kpkg clean.

Ahora, compile el núcleo: fakeroot /usr/sbin/make-kpkg --revision=custom.1.0 kernel_image. Por supuesto, puede cambiar el número de la versión “1.0” por cualquier otro valor; éste sólo es el número de versión que usará para seguir la pista a los núcleos que haya construido. Igualmente puede sustituir “custom” por cualquier otra palabra (por ejemplo, un nombre de máquina). La compilación del núcleo puede tomar un buen tiempo, dependiendo de la potencia de su máquina.

Una vez finalizada la compilación, puede instalar su núcleo personalizado como cualquier paquete. Como superusuario, ejecute dpkg -i ../kernel-image-2.4.27-subarquitectura_custom.1.0_alpha.deb. La parte subarquitectura es una subarquitectura opcional, dependiendo de las opciones que haya establecido en el núcleo. dpkg -i kernel-image... instalará el núcleo, junto con otros ficheros de soporte. Por ejemplo, System.map será adecuadamente instalado (de gran ayuda para depuración de problemas con el núcleo), y también se instalará /boot/config-2.4.27, conteniendo su actual configuración. Su nuevo paquete kernel-image-2.4.27 es también lo suficientemente listo como para usar automáticamente usar el gestor de de arranque de su plataforma y actualizar así la información de la imagen del núcleo, la cual le permita arrancar sin necesidad de ejecutarlo nuevamente. Deberá instalar también el paquete de módulos si lo ha hecho, como por ejemplo, en el caso de que tenga PCMCIA.

Es momento de reiniciar el sistema: lea cuidadosamente cualquier advertencia que pueda haberse producido, luego ejecute shutdown -r now.

Para más información sobre kernel-package, vea la excelente documentación en /usr/share/doc/kernel-package.



[10] Hay otras ubicaciones donde puede extraer las fuentes del núcleo y construir su núcleo a medida, pero ésta es la forma más sencilla ya que no requiere de permisos adicionales.