Menú Cerrar

Compilar e instalar un kernel y generar paquetes .deb

Compilar e instalar un nuevo kernel en Debian y derivados es sumamente sencillo y trivial. La aplicación kernel-package nos permite crear un paquete para la imágen, fuente y encabezados; estos dos últimos indispensables cuando queremos compilar un nuevo módulo para el kernel que estemos utilizando.

Instalamos dependencias:

aptitude install kernel-package quilt autoconf automake libtool libncurses5-dev pkg-config checkinstall build-essential module-assistant zlib1g-dev

Descargamos un kernel desde www.kernel.org :

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.1.tar.bz2

Descomprimimos:

cd /usr/src
tar -jvxf linux-2.6.30.1.tar.bz2

Configuramos las opciones que tendrá el nuevo kernel:

cd /usr/src/linux-2.6.30.1
make menuconfig

Una forma rápida de escoger las opciones es utilizando el .config del kernel actual. El archivo de configuración se encuentra dentro de /boot lo copiamos a la raiz del nuevo kernel:

cp /boot/config-`uname -r` .config

Compilamos el nuevo kernel y generamos los paquetes .deb:

make-kpkg clean
make-kpkg --append-to-version=-20090712 --initrd kernel-image kernel-headers kernel-source

En donde:
–append-to-version : es la versión que se agregará al nombre del kernel, en mi caso he puesto la fecha de hoy.
kernel-image : se creará un paquete .deb para instalar la imágen del kernel
kernel-headers : se creará un paquete .deb para instalar los headers del kernel
kernel-source : se creará un paquete .deb para instalar el fuente del kernel

El proceso de compilado tomará algun tiempo, esto dependerá de que tan rápido sea tu CPU.

Una vez terminado el proceso podemos instalar los paquetes:

dpkg -i linux-headers-2.6.30.1-20090712_2.6.30.1-20090712-10.00.Custom_i386.deb
dpkg -i linux-image-2.6.30.1-20090712_2.6.30.1-20090712-10.00.Custom_i386.deb
dpkg -i linux-source-2.6.30.1-20090712_2.6.30.1-20090712-10.00.Custom_all.deb

Finalmente reinciamos y tendremos un nuevo kernel listo para utilizar.

Si contamos con un equipo con mas de un procesador podemos disminuir el tiempo de compilación ejecutando lo siguiente antes de empezar a compilar:

export CONCURRENCY_LEVEL=`expr $(cat /proc/cpuinfo |grep -i ‘MHz’|wc -l) + 1`
Caja Negra
Publicado en Tutorial