1)Descargar el kernel, yo utilicé el 2.6.21.5
2) Copiar el kernel al directorio de fuentes:
sudo mv linux-2.6.21.5.tar.gz /usr/src
3) Descomprimir las fuentes del kernel:
cd /usr/src
sudo tar xzvf linux-2.6.21.5.tar.gz
4) Crear un directorio aparte para poner el código compilado(se recomienda):
mkdir /home/diego/build
mkdir /home/diego/build/kernel
5) Elegir las opciones de configuración del kernel:
make O=/home/diego/build/kernel menuconfig
6) Compilar el kernel, paciencia, este proceso lleva mucho tiempo(4 hs en mi caso):
make O=/home/diego/build/kernel
7) Instalar los módulos del kernel:
sudo make O=/home/diego/build/kernel modules_install install
8) Modificando la configuración del gestor de arranque:
sudo mkinitrd -o initrd.img-2.6.21.5 2.6.21.5
sudo gedit grub/menu.lst
Agregar lo siguiente luego de
## ## End Default Options ##
:title Ubuntu, kernel 2.6.21.5
root (hd0,1)
kernel /boot/vmlinuz-2.6.21.5 root=/dev/hda2 ro quiet splash
initrd /boot/initrd.img-2.6.21.5
savedefault
boot
title Ubuntu, kernel 2.6.21.5 (recovery mode)
root (hd0,1)
kernel /boot/vmlinuz-2.6.21.5 root=/dev/hda2 ro single
initrd /boot/initrd.img-2.6.21.5
boot
9) Reiniciar para probar el nuevo kernel. Nada más me tiró unos errores(warnings más bien), pero funciona todo bien.
Donde dice /home/diego debe reemplazarse diego por el nombre de usuario real.
Más info:
Compilando el kernel
Otro tutorial