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-devDescargamos 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.bz2Descomprimimos:
cd /usr/src
tar -jvxf linux-2.6.30.1.tar.bz2Configuramos las opciones que tendrá el nuevo kernel:
cd /usr/src/linux-2.6.30.1
make menuconfigUna 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` .configCompilamos el nuevo kernel y generamos los paquetes .deb:
make-kpkg clean
make-kpkg --append-to-version=-20090712 --initrd kernel-image kernel-headers kernel-sourceEn 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.debFinalmente 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.