Compilando ou atualizando um kernel Linux

Nesse artigo, você irá aprender a customizar um kernel, ou apenas, atualizá-lo de forma manual.

[ Hits: 16.568 ]

Por: Luiz Casali em 07/08/2012


Personalizando/compilando o kernel - Módulos



Personalizando e compilando o kernel

Chegamos à segunda etapa.

Nesse momento, você irá aprender a personalizar e compilar um kernel.

2. Assuntos desta segunda etapa:
  • Resolvendo dependências;
  • Criar o arquivo .config;
  • Editando o nome da distribuição;
  • Criando o bzImage.

2.1. Para iniciar, iremos rodar um comando rápido e verificar nossas dependências.

Primeiro, entre na pasta onde foi descompactado o kernel (no meu caso: /usr/src/linux-2.6.28):

# cd /usr/src/linux-2.6.28

Depois:

# make dep

Obs.: Caso você receba uma mensagem que não é necessário executar esta tarefa, está tudo OK.

2.2. Agora, iremos começar a personalizar de verdade nosso kernel, com o comando:

# make menuconfig

Com este comando, iremos entrar no modo de edição do kernel.

Aqui você irá ver todas as opções do kernel. Use as opções para navegar nos menus, adicione ou remova conforme desejado, porém, tome cuidado, pois toda modificação sem o conhecimento devido, pode causas erros.

É extremamente recomendável testar este método em uma máquina virtual, antes de por em prática no seu GNU/Linux.

Navegação:
  • [ENTER] - Entra num submenu
  • [N] ou [ESPAÇO] - Desmarca a opção onde está o cursor
  • [SETAS] - Navegação

Após terminadas as modificações desejadas, vá em: SAVE AN ALTERNATE CONFIGURATION FILE

E salve como: .config

2.3. Coloque agora, o seu nome no kernel

Você pode editar o arquivo Makefile para adicionar o seu nome a esta compilação do kernel.

# vim Makefile

Na linha: "EXTRAVERSION ="

Você pode acrescentar ".seunome" e a versão do kernel. Irá aparecer da seguinte forma (no meu exemplo): 2.6.28.luiz

2.4. Agora, precisamos criar a imagem do kernel.

Este processo pode levar algum tempo. Tudo depende do seu hardware:

# make bzImage

Obs.: Fique atento à sintaxe. No GNU/Linux, "bzImage" não é o mesmo que "bzimage".

Nessa fase, você aprendeu a personalizar um kernel e a criar a sua imagem.

Adiante, vamos criar os módulos.

Criando os módulos

Terceira etapa, vamos criar os módulos.

3.1. Esta etapa é provavelmente a mais demorada. Criar os módulos podem levar horas dependendo do seu equipamento.

Basta digitar o seguinte comando e aguardar:

# make modules

3.2. Agora, vamos à próxima etapa. Mais um comando simples, porém que pode levar um tempinho:

# make modules_install

3.3. Agora iremos copiar a imagem do kernel que criamos para o diretório /boot:

# cp -p arch/x86/boot/bzImage /boot/vmlinuz-2.6.28.luiz

3.4. Na próxima etapa, precisamos criar o sistema ramfs e atualizar o GRUB.

Precisamos criar o sistema ramfs para carregamento de módulos no boot, e fazemos isso com o seguintes comandos:

- Para entrar na pasta /lib/modules:

# cd /lib/modules

-Para criar o sistema:

# mkinitramfs -o /boot/initrd.img-2.6.28.luiz 2.6.28.luiz

E enfim, rodar o update-grub:

# udpate-grub

Neste artigo, você aprendeu a personalizar um kernel.

Lembre-se que, toda modificação no kernel é perigosa.

Recomenda-se fazer backup antes de qualquer modificação, e testar este método em uma máquina virtual, caso você esteja inseguro.

Obrigado, e estou à disposição para dúvidas e sugestões.

Luiz Eduardo N. Casali
CCNA / LPIC
educasali[at]hotmail.com

Página anterior    

Páginas do artigo
   1. Antes de Compilar
   2. Personalizando/compilando o kernel - Módulos
Outros artigos deste autor

Servidor de logs para Routers e Switches Cisco

Leitura recomendada

Novidades do Kernel 2.6.35

Controle de tráfego utilizando HTB no Debian Sarge

Kernel 2.6.9 em 20 passos

Gerência e criação de módulos do kernel

UZIX - O Linux do MSX (Z80)

  
Comentários
[1] Comentário enviado por dalveson em 07/08/2012 - 10:46h

otimo artigo Luiz Casali, esta de facil entendimento, sem contar que pode ser utilizado como base para inumeras outras tarefas que exijam recompilação de kernel como modulos extrar (layer7, ipp2p e etc..).

[2] Comentário enviado por removido em 08/08/2012 - 03:34h

Olá.

Eu tive problemas para compilar kernel de configuração zerada e gostaria de saber se há documentação/tabela prá comparar aqueles códigos hexadecimais que saem do lspci, lsusb etc. com o que há disponível no kernel, se há suporte etc., inclusive de repente até com a libusb.

*** ADD ***

Encontrei algo:

http://pci-ids.ucw.cz/read/PC/
http://kmuto.jp/debian/hcl/

[3] Comentário enviado por fabregas em 09/08/2012 - 14:17h

Quando fui extrair esse arquivo com o tar ele me retornou uma erro. File doesn't exist. Tar exiting now. ??? Oque será que pode ter ocorrido ?

[4] Comentário enviado por luizcasali em 10/08/2012 - 09:05h

Fabregas,

Como foi a sintaxe que você usou?

Você apontou pro arquivo no caminho certo do arquivo?
em que dir você estava quando deu o comando e qual foi a sintaxe?




[5] Comentário enviado por paulloal em 13/08/2012 - 14:20h

no comando

# make modules_install

ocorre o seguinte

make: *** Sem regra para processar o alvo ´modules_ install'. Pare

o que seria?

[6] Comentário enviado por aristidesbneto em 18/08/2012 - 15:57h

Meu note não aguenta o tranco para compilação... o processador fica rugindo aqui.
Quando chego no comando make modules ele fica um tempo e desliga!!!

Já aconteceu isso em outras tentativas, ele sempre desliga nessas horas...

Na verdade gostaria de saber o que significa cada comando que a gente usa, já vi outros que usa make -j4, etc...

Mas está de parabens pelo artigo... favoritado!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts