Os passos seguidos pelo tutorial foram realizados na distribuição
Conectiva 
Linux 9.0, mas servem como base para todas as outras 
distribuições.
Nos exemplos abaixo usarei o diretório /root para guardar meus 
downloads. 
Não esqueça de instalar os pacotes 
task-kernel-compiling e 
task-c++-devel.
Faça o download do kernel no site 
www.kernel.org (na data deste artigo o kernel já está em sua versão 2.6.4).
Faça também o download do pacote 
module-init-tools, ele é 
necessário para fazer seu kernel novo funcionar:
Compilando o module-init-tools
Descompacte o arquivo module-init-tools no diretório de sua preferência, 
entre no diretório criado e execute o script de configuração do mesmo:
# ./configure --prefix=/
Em seguida:
# make moveold 
Isto irá renomear os comandos para trabalhar com módulos para *.old, 
por exemplo, 
lsmod passa para 
lsmod.old.
Execute: 
# apt-get install glibc-devel-static 
Isso irá instalar o pacote glibc-devel-static, necessário para compilar 
o module-init-tools.
E então:
# make install 
Para converter seu 
/etc/modules.conf no novo arquivo 
/etc/modprobe.conf, execute:
# ./generate-modprobe.conf /etc/modprobe.conf
Para maiores informações sobre a instalação do module-init-tools, acesse 
a documentação presente no diretório em que você está, como a FAQ, 
README, etc.
Compilando e instalando o kernel 2.6.4
Descompacte o arquivo do kernel 2.6.4  para dentro do diretório
/usr/src:
# tar xvjf linux-2.6.4.tar.bz2 -C /usr/src
Vá para o diretório 
/usr/src e verifique se existe um link chamado 
"linux" apontando para uma versão antiga de kernel e apague, então crie 
outro link apontando para o novo kernel: 
# ln -sf linux-2.6.4 linux
Entre no diretório 
linux (link que acabou de criar) e execute:
# make menuconfig 
Serão exibidos os menus com as opções de configuração do seu kernel.
Lembre-se que a maioria das coisas no Conectiva Linux funcionam através 
de módulos.
Execute:
# make
# make modules_install
Copie o arquivo 
/usr/src/linux/System.map para o 
/boot:
# cp /usr/src/linux/System.map /boot
Copie o arquivo 
/usr/src/linux/arch/i386/boot/bzImage (este é o 
seu kernel compilado) para o 
/boot
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel-2.6.4
NOTA: neste exemplo já copiei e renomeei o kernel para kernel-2.6.4.
Baixe o pacote 
mkinitrd-3.5.14-1.i386.rpm em:
http://www.las.ic.unicamp.br/pub/.../mkinitrd-3.5.14-1.i386.rpm 
Instale-o no sistema com:
# rpm -ivh mkinitrd-3.5.14-1.i386.rpm
Se tiver problemas com a instalação do pacote, tente: 
# rpm -ivh mkinitrd-3.5.14-1.i386.rpm --force
Agora já podemos criar nosso arquivo 
initrd, que será necessário caso
você esteja utilizando um sistema de arquivos com journaling, como o EXT3 
e o ReseirFS por exemplo (man mkinitrd).
Vá para o diretório 
/lib/modules e verás que foi gerado um diretório 
chamado "2.6.4", que corresponde aos módulos que você compilou para o 
kernel 2.6.4, certo ?!!
# cd /lib/modules
# mkinitrd /boot/initrd-2.6.4.img 2.6.4
Neste ponto seu kernel foi compilado e a imagem dele já está no 
/boot, assim como o mkinitrd, só falta então configurar o seu 
Boot Loader.
No meu caso, uso o GRUB, olha a configuração abaixo que acrescentei no 
meu 
/boot/grub/menu.lst: