Um passo a passo para a recompilação do kernel, bem simples, para quem quer começar a entrar na aventura que é personalizar o Linux.
Introduçã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 firwall 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 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-fontes do kernel em suas várias versões podem ser todos encontrados através do endereço ftp://ftp.kernel.org (é 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. Tem muitas e muitas opções que você poderá não saber… Você 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.