Recompilando o kernel do Linux

Publicado por Daniel Romero em 13/12/2006

[ Hits: 9.874 ]

Blog: https://infoslack.com

 


Recompilando o kernel do Linux



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!
=)

Outras dicas deste autor

Implementando um cluster Linux com OpenMosix e Slackware

Customizando o Terminator com Solarized Color Scheme

Instalando kernel 2.6.x no Slackware 10.2

Introdução ao Slackware Linux 13 - Instalação

Instalando o Linux num pen drive

Leitura recomendada

Slackware - Como atualizar o kernel sem compilar

Ativando e desativando CPUs sob demanda

Resolvendo erro: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY

VirtualBox - Erro: Kernel driver not installed (rc=-1908) [Resolvido]

O último driver nVIDIA não funciona em seu kernel 2.6.x?

  

Comentários
[1] Comentário enviado por EdDeAlmeida em 14/12/2006 - 10:07h

Valeu cara! Simples e direto. Sempre aparecem perguntas aqui sobre compilação do kernel. A partir de agora vou indicar a sua dica para quem perguntar. Já marquei-a nos meus favoritos.




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts