Um passo-a-passo bem simples e prático na hora da recompilação.
A recompilação do
kernel tem de ser extremamente observada. É nela que você poderá colocar suporte a muitos hardwares, habilitar recursos do kernel (como firewall e compartilhamento NAT), entre outras coisas. Muitas distribuições incluem kernels já compilados e prontos para usar, mas é sempre recomendado que você compile o seu kernel para otimizá-lo conforme suas necessidades, e claro, para aprender também! Vou explicar aqui passo-a-passo como se dá o processo de recompilação do kernel. Lembrando que toda operação deverá ser feita com o root.
Passo 1:
# cd /usr/src
# rm -rf linux
# tar zpvfx /diretorio/linux-2.x.x.tar.gz
# ln -s linux-2.x.x linux
# cd linux
O que fizemos aqui foi somente apagar o código do kernel velho para instalar um novo. Isso você só faz se estiver compilando um kernel novo que pegou na internet. Os códigos-fonte do kernel em suas várias versões podem ser todos encontrados através do endereço:
(é preferível que você utilize o mirror deste FTP localizado aqui no Brasil, que é
ftp://ftp.br.kernel.org)
Veja também que eu apaguei o kernel antigo (rm -rf linux), se você quiser pode apenas renomear o diretório para outro nome, assim não perde o código velho.
Pode acontecer de você pegar kernels compactados com .bz2, veja a seção de "Outros comandos" para obter uma ajuda mais ampla para descompactar isto. Alguns arquivos quando descompactados já criam o diretório 'linux', então não é preciso você ter de fazer o link simbólico (comando 'ln -s linux-2.x.x linux').
Passo 2:
# make menuconfig
# make dep
# make clean
# make bzImage
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.x.x
No 'make menuconfig' você vai escolher as opções de suporte. Esta parte é com você, pois você é que vai escolher o que quer. Existem muitas e muitas opções que você poderá não saber, então pode ler o help destas opções ou simplesmente deixá-las como estão. Configuração do kernel é uma coisa que você se acostuma com o tempo, praticando. :)
O 'make menuconfig' gera um menu gráfico no console, você pode substituir este comando por outros, que são: 'make config' (modo terminal, sem gráficos, vai perguntando opção por opção e não é recomendado) e 'make xconfig' (modo gráfico com janelas, só roda no X-Window).
O 'make dep' cria as dependências que a compilação do kernel vai usar. O 'make clean' apaga arquivos que já estão compilados para poder compilá-los de novo.
O 'make bzImage' vai criar uma imagem do kernel compactada com o bzip2 (que é mais eficiente que o gzip). O recomendável é você usar o bzImage, mas você também pode usar o 'make zImage', que cria uma imagem compactada com gzip ou pode usar o 'make zdisk', que faz a imagem e cria um disco de boot, ou pode usar 'make zlilo', que faz a imagem e reinstala o LILO).
O 'cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz-2.x.x' copia a imagem para o diretório /boot, com o nome de vmlinuz-2.x.x. Substitua o .x.x pela versão do seu kernel. Esta informação será útil quando você for configurar o LILO para bootar com essa nova imagem. Veja a configuração do LILO ou do GRUB também.
Passo 3:
# make modules
# make modules_install
# lilo
# reboot
O 'make modules' cria os módulos que você configurou no 'make menuconfig' e o 'make modules_install' instala estes módulos compilados no diretório /lib/modules. O 'lilo' reinstala o LILO, para obter mais detalhes, veja sobre a configuração do LILO, e só utilize este comando se você estive rodando o lilo e não o GRUB (geralmente quando se está usando o GRUB, o arquivo "/etc/lilo.conf" não existe ou está vazio. E por último, o 'reboot', que reseta a máquina para que seu kernel novo funcione.
Se você usa GRUB, não se esqueça de alterar o arquivo "/boot/grub/menu.lst" e adicione na opção 'kernel' o caminho da sua imagem do kernel recém-criada. No caso do GRUB, não é preciso executar nenhum comando, é só salvar o arquivo que as configurações estarão feitas.
A recompilação do kernel é a única coisa no
Linux que necessita reiniciar a máquina!
Passo alternativo:
As instruções acima foram para a compilação de um upgrade do kernel. Se você quiser recompilar o kernel somente para adicionar e/ou retirar coisas, você vai ao diretório '/usr/src/linux' e executa o passo 2.
Espero ter ajudado!
=)