Te dejo mi "receta" para hacerlo paso a paso:
su
{Te haces root}
cd /usr/src
{Te sitúas en el directorio del kernel}
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2
{Te baja de kernel.org la última versión del kernel}
tar -xjf linux-2.6.9.tar.bz2
{Descomprime las fuentes}
rm linux
{Borra el enlace simbólico al anterior kernel}
ln -s linux-2.6.9 linux
{Genera un nuevo enlace simbólico para el nuevo kernel}
cd linux
{Nos situamos en el directorio actual del kernel que hemos bajado}
make menuconfig
{Entramos en el menú de configuración del kernel. Alternativamente puedes hacer cp ../TU_KERNEL_ANTERIOR/.config ./ para copiar la configuración de tu kernel anterior y "ahorrarte" configurar el nuevo... aunque yo siempre recomiendo configurar el nuevo}
make clean
{Limpia el código y el árbol de directorios para preparar la compilación}
make bzImage
{Genera una imagen con el nuevo kernel}
make modules
{Compila los módulos del kernel}
make modules_install
{Instala los módulos}
cp arch/i386/boot/bzImage /boot/linux-2.6.9
{Copia la imagen del kernel al directorio donde las guardemos (mejor si es el de arranque)}
cp System.map /boot/System.map
{Copia el archivo de mapa al directorio de arranque}
vi /etc/lilo.conf
{Editamos la configuración del lilo para añadir una nueva entrada para el kernel... tendrá un aspecto similar a este:
image=/boot/linux-2.6.9
label=Linux(2.6.9)
read-only
Y guardamos (:wq)}
lilo
{Ejecuta lilo y sobreescribe la nueva configuración al LBA (si tenemos ahí el gestor de arranque)}
reboot
{Reinicia la máquina}
Et voilà! C'est fait!