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`
Comentarios
Publicar un comentario
Gracias por tomarte el tiempo de leer mi blog, por favor deja tu duda sugerencia, seran leidas y si es posible se les dara pronta respuesta, gracias.