Para compilar/recompilar el kernel necesitamos el source de Linux, podemos hacerlo en:
www.kernel.org
ó
#apt-cache search linux-source //Para encontrarlo en repositorios con los paquetes de tu distro
Recordad que la subversión (2.XX) impar es inestable y la par estable.
Descargamos la versión deseada, si lo hicimos desde www.kernel.org movemos el archivo a /usr/src
#cp /lugarde/descarga/patch-2.xx.bz2
Descomprimimos el archivo dentro de /usr/source
#tar xvjf linux-source-2.xx.tar.bz2 (yo uso la versión de los repositorios)
#bunzip2 patch-2xx.bz2 (para la compresión de kernel.org)
Nos situamos dentro de la carpeta recién creada con los archivos del kernel
#cd linux-source-2xx
Para configurar a nuestro gusto Linux, tenemos varias opciones:
make menuconfig //opción donde lo haremos por menús
make xconfig //modo gráfico
make config //toda la configuración te irá pasando por terminal para que elijas, muy pesada
make oldconfig //para usar una antigua configuración, las nuevas opciones se te preguntarán
Yo me decante por copiar la antigua configuración y usarla.
#cp /boot/config* /usr/src/linux-image-2xx
Ahora pasamos a la compilación, dentro de la carpeta de la imagen del kernel:
#make dep //Crea las dependencias, indicando las herramientas de compilación
#make bzImage //Crea una imagen comprimida de Linux en bzip2, que la encontraremos en /usr/src/linux-image-2xx/arch/i386/boot (si nuestra arquitectura es x86)
#make modules //Compilamos los módulos elegidos en la configuración
#make modules_install //Instalamos los módulos
Resumido en una línea, se encadenan con && y ya
#make dep && make bzImage && make modules && make modules_install
Si la compilación falla o quieres volver ha hacerla, podemos usar:
#make clean //Limpia las fuentes del kernel, deberás volver a ejecutar make dep
#make mrproper //Limpia las fuentes del kernel, archivos generados y configuración.
Y movemos archivos para poder ejecutar este nuevo kernel:
#mv /usr/src/linux-image-2xx/arch/i386/boot /boot/linux-xx //Este nombre puede ser cualquiera
#mv /usr/src/linux-image-2xx/System.map /boot/System.map
#mkinitrd -o /boot/initrd.image-2.xx /lib/modules/xx
# mkinitramfs -o /boot/initrd.img-xx /lib/modules/xx
//Para crear el initrd debes tener instalado “initrd-tools” ( #apt-get install initrd-tools ) o ahora initramfs-tools (#apt-get install initramfs-tools)
Ahora toca editar el gestor de arranque, por mi parte GRUB:
#gedit /boot/grub/menu.lst
Y después de “End Defaults Options”, creamos otra entrada para el nuevo kernel:
title Título que saldrá cuando cargue el grub, pon el que quieras
root (hd0,4) //Disco duro donde se encuentra Linux
kernel /boot/linux-xx root=/dev/hda5 ro //Donde esta la imagen bzImage, y el directorio / (raíz)
initrd /boot/initrd.img-2.6.24 //Donde esta el initrd
savedefault
Reiniciamos y debería ir todo bien, sino siempre podemos tirar de un livecd o de otros kernels instalados.

