Etiquetas

domingo, 8 de julio de 2012

Compilar un Kernel "a la Debian"

Compilar el núcleo del sistema operativo Linux/GNU, contrariamente a lo que muchos creen no es una tarea dificil.
Sí, seguro, es una tarea que lleva mucho tiempo y esfuerzo a fuerza de pruebas errores. Pero también existe una forma de compilar el núcleo de forma rápida, por ejemplo cuando necesitamos probar un kernel más reciente al que tenemos instalado en nuestra distribución.

El kernel Linux es el núcleo central del sistema operativo Linux/GNU, que fuera iniciado hace más de 20 años por Linus Torvalds.
Existen varios motivos para lo que es útil compilar el kernel. Una puede ser que necesitemos alguna funcionalidad que nuestro núcleo actual no tiene habilitada o bien, si deseamos por ejemplo disminuir la "huella" (el tamaño) del núcleo del sistema, por ejemplo, porque trabajamos en un sistema embebido.

Pero normalmente la razón fundamental para actualizar el núcleo del sistema es que contamos con alguna pieza de hardware que requiere de un kernel más nuevo.
La tarea más ardua de construir un núcleo a medida es configurar cada uno de los parámetros. Eso es indispensable, por ejemplo, si trabajamos con un kernel que deberá tener una pisada (tamaño) reducido para funcionar en un equipo determinado.
Una forma de construir el núcleo en pocos pasos consiste en tomar como punto de partida una configuración que ya está en producción.
En el ejemplo de abajo partimos de la configuración que utiliza el kerne stock de Debian. Los pasos del proceso serían los siguientes:

1) Bajar una versión del núcleo algo más reciente desde kernel.org.
Una vez que lo hayamos descomprimido en un directorio de trabajo copiaremos la configuración de un kernel en producción:


cp /boot/config-3.0.0-1-686-pae /home/elequiscentrico/dir-de-fuentes/.config

Con esto nos aseguramos de partir de un kernel que viene en producción en un sistema Debian.

3) Ajustar pasos finales:
make oldconfig
Con este paso deberemos configura solo los itemns nuevos de la nueva versión en la que estamos trabajando.

4) Compilación "A la Debian"

$ make-kpkg clean

$ fakeroot make-kpkg --initrd kernel_image kernel_headers --append-to-version=miKernel

Ir por un aperitivo, una cerveza, una gaseosa o un chocolate caliente. Y...


5) Si todo fue bien, y deseamos instalar el nuevo kernel y sus headers:

# dpkg -i linux-kernel-3.4.4-miKernel.deb
(o la versión y nombre que hayamos decidido, claro).

Este método es "A la Debian", porque difiere de la metodología tradicional. Su principal ventaja, además de la sencillez es que saca ventaja de todo el poderío del sistema de Paquetes Debian, ya que para instalar o desinstalar el nuevo kernel sólo debemos usar dpkg.
Compilar el kernel es una tarea importante a medida que vamos usando más y más el sistema Linux/GNU.
Correciones, sugerencias o comentarios siempre son bienvenidos.


Continuar »