Para a compilação do kernel você precisará basicamente do
ncurses (geralmente um pacote chamado
libncurses-dev ou
ncurses-devel) e do
module-init-tools (essas ferramentas são necessárias
para que alguns comandos como o "make modules_install" sejam
executados). Se você estiver sentindo falta destes pacotes,
bastar fazer a download de sua própria fonte, por exemplo:
# apt-get install libncurses-dev
Vou usar como referência o kernel da versão 2.6.11:
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2
Pronto. Depois de ter feito o download do source do kernel você
abre seu terminal/console e copia o arquivo baixado para a pasta
/usr/src, e em seguida descompacta-o:
# cp linux-2.6.11.tar.bz2 /usr/src
# cd /usr/src
# tar jxvf linux-2.6.11.tar.bz2
Agora crie um link simbólico para o diretório que foi criado.
Chame-o de "linux" (se já existir esta pasta, remova e crie novamente).
# ln -s /usr/src/linux-2.6.11 /usr/src/linux
OK, entre no diretório criado /usr/src/linux e em seguida terá
início a configuração do kernel:
# cd /usr/src/linux
# make mrproper
# make menuconfig
É necessário que você selecione todas as opções referentes ao seu
hardware e os sistemas de arquivos que você usa. No menuconfig
um '*' significa que a opção será compilada dentro da imagem do
kernel, um 'M' significa que será compilado como um módulo externo.
O sistema de arquivos que a sua partição
Linux usa deve ser marcado
como '*', bem como suporte a ide (ou SCSI se for o caso).
O restante das opções você pode escolher como módulo se quiser. Se
você selecionar alguma opção como módulo, deve habilitar as seguintes
opções:
Loadable Module Support > Enable loadable module support
Loadable Module Support > Module unloading
Loadable Module Support > Automatic kernel module unloading
Salve e dê inicio a compilação!
A primeira coisa a fazer é criar uma imagem do kernel:
# make bzImage
Após o término deste comando a imagem do kernel gerada é
gravada em /usr/src/linux/arch/i386/boot/bzImage.
O próximo passo é compilar e instalar os módulos selecionados durante a implementação do kernel:
# make modules
# make modules_install
Seu kernel já está compilado e com seus módulos devidamente instalados!
Vamos agora configurar o nosso sistema para poder inicializar com
este novo kernel. Copie os arquivos de imagem, configuração e o
System.map para a pasta /boot, em seus respectivos diretórios. Em
seguida, finalizando o arranjo do kernel crie uma init para seu
sistema (hdaX é a partição que teu Linux está).
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.11
# cp /usr/src/linux/.config /boot/config-2.6.11
# cp /usr/src/linux/System.map /boot/System.map-2.6.11
# mkinitrd -k -o /boot/initrd.img-2.6.11 -r /dev/hdaX
Por fim, basta configurar teu gerenciador de boot para dar acesso
ao sistema startar com o novo kernel! Veja:
GRUB
Edite o arquivo /boot/grub/menu.lst (ou /boot/grub/grub.conf). Veja
qual a partição onde seu Linux está instalado. O GRUB usa uma
configuração do tipo (hdx,y), onde x é a interface ide e o y é o
numero da partição. Neste caso /dev/hda5 = (hd0,4). Vou usar /dev/hda5 como exemplo nesta configuração: