Introdução
A compilação de um novo kernel pode ser estimulada por diferentes razões. Talvez a maior delas seja em relação ao aumento de compatibilidade de dispositivos de hardware; ou talvez seja a busca por um kernel mais enxuto e rápido; enfim, algo nesse sentido o motivou a ler este artigo. No fundo o processo de compilação de um kernel é o mesmo, independentemente da distribuição preferida do usuário. Mas como sou mero iniciante e encontrei dificuldades para fazê-lo em RPM-like (por exemplo, em Mandriva, CentOS ou PCLinuxOS não tem o build-essential nem o kernel-package como no Debian), talvez alguém com pouco conhecimento como eu tenha tido a mesma dificuldade, então resolvi descrever o processo.
Ferramentas de construção
Basicamente você precisará instalar os seguintes pacotes (se sua distribuição já não os trouxer por padrão): gcc, make, glibc-devel, binutils, util-linux, module-init-tools, e2fsprogs, xfsprogs, reiserfsprogs, quota, mount, coreutils, udev, mkinitrd, bison, ncurses-devel, autoconf, automake, rpm-build e
glibc-headers-dev.
Obs.: esse último pacote, aliás, foi motivo de várias tentativas frustradas de compilação. Tente dar o "make" sem esse pacotezinho e tire a prova... Vai surgir um problema com o arquivo limits.h dentro do GNU C. E NÃO adianta copiar ele pra dentro do diretório, vai continuar acusando que o arquivo não existe!
Obs. 2: Talvez alguns desses pacotes nem sejam estritamente necessários para você. Por exemplo, se você não trabalha com sistemas XFS ou ReiserFS não precisaria dos pacotes xfsprogs e reiserfsprogs, respectivamente. Os mais importantes mesmo são o make, gcc, binutils, coreutils, ncurses-devel e rpm-build (caso queira criar um RPM do seu kernel personalizado).
Obs. 3: Suponho que você esteja habituado a lidar com instalação de pacotes pelos repositórios de sua distribuição. Portanto, não irei abordar... Em caso de dúvida, utilize os excelentes artigos:
Obs. 4: uma dica para atestar se seu sistema possui todas as dependências satisfeitas é ir em /usr/src/linux-2.6.versao_escolhida e rodar o seguinte script:
# sh scripts/ver_linux
Caso haja algum problema ele vai te mostrar os pacotes que estão faltando. Caso contrário, vai apenas listar algumas coisas, significando que você está apto a virar a página!