Buscar en este blog

26.8.06

Receta para compilar el kernel de Linux (Debian Way)

Una de las ventajas de hacer esto es que el kernel que compilamos va a estar empaquetado en un archivo .deb y de esta forma será muy facil de instalar/desinstalar.

Normalmente, cuando compilamos un kernel, bien desde los fuentes oficiales, parcheados o sin parchear, o desde los fuentes ya parcheados de nuestra distribución, usamos el procedimiento clásico:

make menuconfig/xconfig
make
make modules-install
crear la imagen "initrd.img" en caso de que la usemos
reconfigurar sistema de arranque Lilo/Grub/...

Esto funciona muy bien, pero en Debian hay una serie de herramientas concretas para hacer esto de forma más sencilla y que incluye, como ya se dijo, el empaquetamiento del kernel en un archivo que manejara el gestor de paquetes apt (con las ventajas que ello supone).


Paquetes necesarios para la configuración y compilación:
  • binutils
  • make
  • automake
  • autoconf
  • libncurses5
  • libncurses5-dev
  • gcc
  • kernel-package

Configuración, compilación y empaquetamiento:

Ahora es cuando utilizaremos toda la funcionalidad de Debian para este tipo de tareas.

  • descomprimimos los fuentes del kernel que vayamos a utilizar en /usr/src
  • parcheamos los fuentes en caso necesario (patch -p1 <>
  • entramos al directorio de los fuentes y los configuramos al estilo clásico: make xconfig ó make menuconfig
  • Una vez configurado ejecutamos:

    make-kpkg clean (deja todo listo para compilar)

    make-kpkg -append-to-version YOCOMPILO --initrd kernel_image kernel_headers (este es el comando que hace todo el trabajo: compilar el kernel, y crear un paquete con el kernel y su "initrd.img" y otro con los headers correspondientes al kernel)

Con el archivo de configuración de Debian, que compila casi todos los módulos disponibles, en un Athlon XP 1900 tarda alrededor de una hora en hacer todo.

Si todo ha ido bien, en el directorio superior tendremos los dos archivos .deb que necesitamos:
  • linux-headers-2.6.xxxxxxCustom_i386.deb
  • linux-image-2.6.xxxxxxxxCustom_i386.deb

Para instalarlos:
  • dpkg -i linux-image-2.6.xxxxxxCustom_i386.deb
  • dpkg -i linux-headers-2.6.xxxxxxCustom_i386.deb
...y apt se encargará de actualizar el cargador de arranque y todo para dejarnos el kernel listo para funionar en el siguiente arranque. Y lo más importante, apt tendrá en cuenta los nuevos paquetes instalados para manejarlos como si hubieran venido de un repositorio Debian.