8.6. 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. Además, Debian ofrece habitualmente varios núcleos alternativos. Así, debería comprobar si hay un paquete de imagen de núcleo alternativa que se ajuste mejor a su hardware. En cualquier caso es útil compilar un nuevo núcleo para:

8.6.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: fakeroot, kernel-package, linux-source-2.6 y algunos otros que probablemente ya estén instalados (vea /usr/share/doc/kernel-package/README.gz si desea una lista completa.

Este método creará un «.deb» para su núcleo fuente y, si tiene módulos no estándares, construirá 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 linux-source-2.6, 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[22]. También daremos por supuesto que la versión de su núcleo es 3.16. Ubíquese en el directorio donde desee desempaquetar las fuentes del núcleo, extraiga las fuentes del mismo usando tar xjf /usr/src/linux-source-3.16.tar.bz2 y cámbiese al directorio linux-source-3.16 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 carga automática de los 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 --initrd --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 ../linux-image-3.16-subarchitectura_custom.1.0_amd64.deb. La parte subarquitectura es una subarquitectura opcional, dependiendo de las opciones que haya establecido en el núcleo. dpkg -i instalará el núcleo, junto con otros ficheros de soporte. Por ejemplo, se instalará System.map adecuadamente (de gran ayuda para depurar problemas con el núcleo), y también se instalará /boot/config-3.16, con su configuración actual. Su nuevo paquete es también lo suficientemente listo como para actualizar automáticamente el gestor de arranque de su plataforma para que utilice 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 construido.

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

Si desea más información sobre los núcleos de Debian y la compilación del núcleo consulte el Debian Linux Kernel Handbook («Guía del núcleo de Linux para Debian»). Consulte la excelente documentación disponible en /usr/share/doc/kernel-package si desea más información sobre kernel-package.



[22] 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.