Compilação comentada do kernel

Este artigo traz uma abordagem bem detalhada sobre a compilação do kernel do Linux. Um enfoque maior foi dado à etapa de escolha dos módulos do kernel, onde a maioria dos itens foi detalhada.

[ Hits: 200.167 ]

Por: José Lopes em 27/10/2005 | Blog: https://lopes.id


Pré-configuração



Antes de começar, faço as seguintes considerações: todo o processo descrito neste artigo foi feito como usuário root e no Slackware 10.1 com kernel 2.4.29. Agora vamos ao que interessa.

O primeiro passo pra se compilar o kernel, é baixar o código-fonte dele. Sugiro o site oficial www.kernel.org. Lá você encontrará várias versões para download. Sugiro a mais nova e estável existente. A versão que foi usada neste guia foi a 2.6.12.3.

Após baixar a sua versão do kernel, descompacte-a no diretório /usr/src e renomeie o diretório criado pela descompactação para um nome mais sugestivo como "linux-suaversão". Ajuste o link simbólico contido neste diretório chamado linux para que ele aponte para o diretório do novo kernel que você acabou de baixar.

Entre no diretório do seu novo kernel. Agora entra a parte que eu considero a mais complexa e complicada desse processo: a configuração. Aqui você deverá escolher quais módulos estarão presentes no seu kernel e como eles serão "acoplados" ao kernel. Existem três formas de se acoplar um módulo ao kernel: através da opção Y, ele estará acoplado diretamente ao kernel, inflando o tamanho do mesmo; com a opção M, ele será acoplado como um módulo do kernel (bom para drivers de som, vídeo e etc); ou N, onde o módulo não estará presente no kernel.

Para que seja feita esta escolha, existem três interfaces disponíveis: config onde serão feitas perguntas e você irá respondendo qual ação tomar (como Y, M, N ou ? - para uma ajuda); menuconfig onde você escolherá os módulos via menu no modo texto; ou xconfig onde você escolherá os módulos via menu no modo gráfico. Sempre sugiro que as compilações sejam feitas totalmente em modo texto para se economizar memória e evitar problemas, por isso sugiro que você use a opção menuconfig. Para acessar qualquer uma das opções, estando dentro do diretório do kernel, digite:

make <sua_opção>

Exemplo:

# make menuconfig

Você será levado a uma tela onde poderá fazer as escolhas necessárias ao seu driver. Sugiro que tenha as informações sobre o seu hardware em mãos como processador, placa-mãe, placa de vídeo, placa de som, placa de rede, placa de fax-modem, teclado, mouse e etc. Lembre-se também que a qualquer momento você poderá pedir ajuda sobre determinada opção pressionando a tecla ?. Tenha bastante atenção ao selecionar as opções aqui, mas lembre de que se você se esquecer de alguma, poderá voltar depois para adicioná-la e compilar novamente o kernel.

Lembre-se de que após configurar o seu kernel, você deve sair do menu de configuração e salvar as alterações que foram feitas. Elas serão gravadas num arquivo no mesmo diretório do kernel chamado ".config". As próximas seções nos trarão uma visão da maioria das opções de configuração que você encontrará neste menu. Lembre-se que apesar de ajudar, isto não substituirá a ajuda do kernel (tecla ?).

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Pré-configuração
   3. Code maturity level options
   4. General setup
   5. Loadable module support
   6. Processor type and features
   7. Power management options (ACPI, APM)
   8. Bus options (PCI, PCMCIA, EISA, MCA, ISA)
   9. Executable file formats
   10. Device drivers
   11. File systems
   12. Compilando
   13. Conclusão
Outros artigos deste autor

Instalação e configuração do MySQL 4.0.26, Apache 2.0.54, PHP 5.0.4 e PHP-Nuke 7.8 no Slackware 10.1

Execução automática de comandos na inicialização do modo gráfico

Permissões no Linux

Usando temas aleatórios no GDM

Instalação e configuração do J2SE

Leitura recomendada

Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux

ReactOS: O irmão open-source do Microsoft Windows NT 4.0

Kernel 2.6.9 em 20 passos

Compilando um kernel Linux

Placas NVIDIA com kernel 2.6.8

  
Comentários
[1] Comentário enviado por fernoliv em 27/10/2005 - 03:25h

Caro José, obrigado pelo excelente artigo e por sua dedicação em nos passar de forma minunciosa um tema que deixa muitos usuários com receio de alterar em suas distros padrão. É sempre bom utilizar um kernel mais novo pois há suporte a hardwares mais novos, além da correção de bugs encontrados em versões anteriores. É isso aí, agradeço pelo empenho, seu artigo está de parabéns!

Abraço, Fernando.

[2] Comentário enviado por Herr_Filip em 27/10/2005 - 08:42h

Ótimo trabalho! Parabéns!
Vai me ajudar muito teu texto!!

[3] Comentário enviado por astdarkness em 27/10/2005 - 13:16h

Eu estava procurando um guia com essa qualidade!
Obrigado e continue explorando ao máximo o kernel e escreva mais :-)

[4] Comentário enviado por ric.araujo em 27/10/2005 - 15:34h

Gostei muito do artigo, inclusive adicionei aos meus favoritos.
[]'s

[5] Comentário enviado por fenix_ap em 27/10/2005 - 17:38h

Rapaz vc esta de parabens!!!!!!!!!
Tenho certeza q esse artigo vai ajudar muita gente, incluse eu :)


[6] Comentário enviado por a.fernando em 28/10/2005 - 11:02h

Parabens pelo artigo

Conciso e completo.

Já compilei o kernel da minha distro algumas vezes, mas muitas coisas eram feitas as cegas, principalmente com relação a parte de módulos, mas com esse artigo posso afirmar que uma luz foi lançada sobre o assunto.

Valeu!

[7] Comentário enviado por PCMasterPB em 29/10/2005 - 15:50h

Um artigo bem completo e será muito útil aos que estão querendo entender algumas opções de configuração do kernel. Apenas queria lhe atentar para duas opções em especial:

Symmetric multi-processing support => Caso alguém use Pentium IV com HT (Hyper-Threading) e este estiver ativado é bom marcar isso com Y. Foi o meu caso.

High Memory Support (4GB) => aqui vc falou pra se marcar Y, porém não disse aonde, aqui tem três opções (off, 4G e 64G) e resumindo em miúdos, se vc tiver menos de 1G coloque off, entre 1G e 4G coloque 4G e se vc tiver mais de 4G (nossa!!!) coloque 64G.

PCMasterPB

[8] Comentário enviado por U-Neeks em 16/02/2006 - 20:38h

exelente artigo, parabens

[9] Comentário enviado por jbalestrim em 02/05/2007 - 19:49h

Parabens por esse excelente explicação se possivel se voce pudesse colocar mais detalhes ainda pra que ele fique ainda mais completo ainda e se torne um excelente referencia acima de todos ficariamos muito grato, isso nao significa que ja nao seja bom o suficiente, sao profissionais como voce que falta em nossa area pessoas que realmente tem o conhecimento e ajudam o melhor que pode nessa area so existe gratificações quando encontramos pessoas que nem voce e é um prazer em lhe dizer voce esta de parabens mas se puder complementar ainda mais deixar com mais riqueza no detalhes nossa seria mais fantastico do que é foi um prazer deixar esse elogio que isso sirva de exemplos a todos que se empenham ao maximo em ajudar os demais.

[10] Comentário enviado por forkd em 03/05/2007 - 14:16h

Primeiramente, obrigado pelos comentários à todos. Mais de 35000 hits nesse artigo eu, sinceramente, não esperava...
Ao amigo jbalestrim, adoraria continuar com este artigo, citando mais opções de compilação, atualizando-o para uma versão mais nova do Kernel ou até mesmo criando uma versão traduzida do Kernel (imagina poder ter todas as opções em português? Seria bom para muitos!). Infelizmente (ou felizmente) sou novo no meu emprego e estou concluindo minha pós-graduação (coincidências à parte, estou pra começar a estudar a disciplina KERNEL). Além disso tenho minha monografia para concluir, além de outros projetos pessoais... Por isso, estou sem tempo pra escrever artigos.
Contudo, há muitas pessoas nessa comunidade tão ou mais qualificadas do que eu para levar adiante este assunto. Fica a sugestão e o voto de incentivo.
Mais uma vez, obrigado por tudo!
Um grande abraço!

[11] Comentário enviado por kenshisk em 01/06/2007 - 01:15h

cara parabéns mesmo, esse concerteza vai para os meus favoritos, muito bem explicado, sou novo na comunidade linux e se tiver mais artigos como esse acho que vou acabar aprendendo alguma coisa. :-)
Abraços.

[12] Comentário enviado por GilsonDeElt em 30/12/2007 - 12:16h

Cara, esse artigo tá de +!!!
Há tempos procuro material assim
(é sério, tem quase um ano que tento achar algo assim, e como não achava, compilava o kernel meio às cegas mesmo)
Ainda não li tudo, pq tô arrumando uns trem aqui no meu PC
Mas pelo que já li, vi que tá tudo muito bem detalhado.
Vlww!!!

[13] Comentário enviado por dfreitas em 16/09/2008 - 15:20h

O artigo eh muito bom. Quais os módulos que tenho que habilitar para carregar a raiz no pendrive?

[14] Comentário enviado por juninho (rh.com) em 11/02/2009 - 12:37h

Parabéns, faltava mesmo algo assim na ajuda por compilar o Kernel.

[15] Comentário enviado por rômega em 11/03/2009 - 15:33h

Ótimo artigo, muito bom mesmo, parabéns =D

[16] Comentário enviado por smoldermox em 07/10/2009 - 15:04h

muito obrigado pelo artigo estava googlando estava ficando doido aki q nao achava nada sobre essas opçao ^^

[17] Comentário enviado por venito em 28/01/2010 - 14:09h

Parabéns!!! Muito bom mesmo seu artigo...

[18] Comentário enviado por thebestbr em 08/12/2010 - 14:45h

ola, sou novo na area

estou compilando mas segui um outro tutorial, que é parecido com o seu, ao compilar rodei o seguinte comando

rpmbuild -bb --without xen, smp, up, pae, kdump, debug --target=`uname -m` kernel.spec

utilizei este without pra compilar mais rapido, porem parece q ele esta tora hora repetindo a compilacao, qto tempo -+ demora uma compilacao? oq vc acha q estou fazendo d errado?

estou compilando somente para aprender e tentar colocar um driver q eu alterei, o evdev,

o site q eu segui o modo d compilacao eh este:
http://fedoraproject.org/wiki/Docs/CustomKernel#Get_the_Source

vlw

[19] Comentário enviado por removido em 30/12/2010 - 21:51h

muito mas muito bom parabens cara esta nos favoritos, valeu.

[20] Comentário enviado por dendriel em 20/08/2011 - 15:04h

Uma coisa que senti falta logo no começo (na verdade estou escrevendo o comentário enquanto avanço no tutorial) foi referências de pacotes que auxiliam na instalação do kernel. Tenho que interromper o tutorial e buscar soluções para estas faltas. ^^

Uma delas é a ncurses. #sudo apt-get install ncurses-dev (coloque assim, aqui instalou automaticamente o ncurses5-dev, acho eu). Ah, claro, acabei de formatar a máquina, então faltam umas coisas mesmo.

Deixo meus agradecimentos pelo post. Muito legal e tudo funcionou. Mesmo entendo no máximo 10% das opções que estava configurando, achei bastante interessante todo o processo. Obrigado por seu esforço!

Peace!

[21] Comentário enviado por nandow em 03/12/2011 - 13:38h

Exatamente o que eu estava procurando.

Parabéns.

Tá nos 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