Al limite se vuoi ricompilare il kernel puoi partire dalla configurazione di uno già esistente. Ti scarichi un kernel Vanilla (www.kernel.org), lo decomprimi in /usr/src/linux-<versione>, dai make xconfig (server la libreria libqt3-mt-dev, per una configurazione grafica) e da lì scegli di caricare una configurazione già esistente di un kernel funzionante (il file di configurazione si chiama .config e si trova nella directory principale del kernel). Al limite te la personalizzi come vuoi, salvi, dai make modules, make bzImage (occhio alla i che va maiuscola), make modules_install e hai finito la compilazione
Adesso devi copiare l'immagine del kernel da /usr/src/linux-<versione>/arch/<tua-architettura>/boot/bzImage --> /boot/vmlinuz-<versione> (il nome vmlinuz è arbitrario, ma dato che tutte le immagini si chiamano così, perchè andare contro corrente?)
Non ti resta che configurare il /boot/grub/menu.list (se usi grub, se usi Lilo non sò) per caricare il nuovo kernel...esempio:
Codice PHP:
title  Linux 2.6.20
root 
(hd0,0)
kernel /boot/vmlinuz-2.6.20 root=/dev/hda1 ro quiet splash vga=792
initrd 
/boot/initrd.img-2.6.20
boot 
dove vmlinux-2.6.20 è l'immagine del kernel, /dev/hda1 è la partizione di root, e l'initrd.img è l'initial ramdisk, che a volte serve per poter caricare i moduli necessari per far bootare il sistema operativo (come i moduli per montare il file system di root). Per crearla devi dare il comando:

#mkinitrd -o <nome-initrd.img> <versione-kernel>