Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Linux    

Recompilando o kernel do Linux


Comentários  9
Visualizações  
25,196

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.


Comentários  9
Visualizações  
25,196


TagsLeia também

Apaixonado por Linux e administração de sistemas. Viciado em Internet, servidores, e em passar conhecimento. Idealizador do Devin, tem como meta aprender e ensinar muito Linux, o que ele vem fazendo desde 1997 :-)


Leia também



Comentários

9 respostas para “Recompilando o kernel do Linux”

  1. weleington disse:

    Olá pessoal tem como me dar uma ajuda com a instalação do kernel, não sei como fazer, sou leigo em linux mas tenho um pouco de conhecimento, acho que posso tentar !!!!!!!!

  2. ddddo disse:

    olá kernel é apenas um componente de trabalho em um sistema Linux.

  3. ddddo disse:

    apt-get install

  4. hkt disse:

    tem como instalar o kernel atraes de um apt-get ????

  5. Neto disse:

    Do que vc esta falando "ddddo" o kernel num é só um componente sistema linux ele é o sistema linux em si. O que vc axa que todas as distros tem em comun ? Isso mesmo o kernel, o linux é só o kernel, mas as distros é que englobam o kernel, mais um interpretador, um gerencador de janelas e outra coisas que jugamos necessário. Se o kernel fosse só um componente poderimos inicia o sistema sem ele, assim como fazemos com um drive, coisa que não é possivel.

    Ele pode ser instalado via apt-get por que vc cria uma nova iagem do kernel, mas mesmo assim num significa que ele é só um componente. Obs: O obetivo foi eclarecimento. :-)

  6. rdf disse:

    Não entendi nada do que ele falou!

  7. amigo achei muinto bom todas essas esplicações , imprimi todo o material , mas a questão é ?

    QUAIS SÃO AS DISTRIBUIÇÕES LINUX PARA TODA ESSAS EXPLICAÇÕES, É SÓ UMA DISTRIBUIÇÃO OU E PRA VARIAS, POIS POR EX: TENTAR FAZER A ESTALÃÇÃO DE PACOTES CPT GET STALL -IRÁ FUNCIONAR EM QUAL DISTRIBUIÇÃO?

  8. anonimo disse:

    Seria bom atualizar isso aqui né? 2003, nossa?

  9. Robson disse:

    "Seria bom atualizar isso aqui né? 2003, nossa?"

    O importante é que ainda funciona!

Deixe uma resposta