Compilar kernel em distros baseadas em Debian

Você está calmo hoje? Não se estressou? Então você poderá compilar seu kernel, pois requer muita paciência... Nesse artigo veremos o modo correto e mais prático de compilar em distribuições baseadas em Debian.

[ Hits: 35.738 ]

Por: Rafael Henrique da Silva Correia em 03/09/2007 | Blog: http://abraseucodigo.com.br


Considerações finais



Como disse, meu objetivo neste artigo não era explicar o que usar e o que desabilitar em seu kernel, mais pra frente criarei outro artigo contendo essas explicações, por enquanto só compilem, abram a janelinha de opções (make menuconfig), dêem uma olhada e fechem, se não se sentirem seguros, pois vocês podem até pular este passo porque já temos um .config que já era nosso, que estava no /boot como citei anteriormente.

Bom gente, é isso aí, para mais opções do make-kpkg entrem no man dele:

$ man make-kpkg

Este realmente é um comando bem interessante, fucem-no hahaha...

Abraço galera, qualquer dúvida estarei disposto a responder.

Página anterior    

Páginas do artigo
   1. Não ta contente com o seu PC? Compile seu KERNEL!
   2. Considerações finais
Outros artigos deste autor

Configurando cliente na rede wireless com criptografia WPA - Debian

Usando HTTP autenticado no Apache

Problema resolvido: VMware Server 1.0.7 rodando no Debian Lenny Linux

Leitura recomendada

Debian Linux: Atualizando o kernel 2.6.24 para 2.6.26.3 (versão estável)

Desmistificando a instalação do Dazuko

Blu-ray: Reproduzindo, copiando, ripando e assistindo no GNU/Linux

O Processo de Boot no Linux

OpenVZ - Instalando no Debian Squeeze AMD64

  
Comentários
[1] Comentário enviado por tjpp em 03/09/2007 - 09:12h

Legal o artigo. Eu tenho algumas pequenas considerações a fazer:

Acho que faltou o exemplo no passo 5 (Por exemplo:)

Não entendi porque editar o Makefile, se o make-kpkg já tem as opções --revision e --append-to-version que fazem isto para você.

Como você disse que vai comentar em próximo artigo, o que retirar e o que manter, então só nos resta aguardar :-) , mas há muito tempo que não compilo o kernel (no máximo uso o module-assistant para webcam). O kernel Debian tem atualizações de segurança e mantendo módulos, mesmo que você não use, é legal pois você pode adicionar hardware sem precisar se preocupar com o mesmo.

[2] Comentário enviado por mautech em 03/09/2007 - 11:03h

kra muito bom artigo foi o que eu fiquei quebrando a kbca a madrugada de sabado td!! se voce puder me enviar um e-mail com seu icq ou msn para trocar-mos umas ideias agradeco muito!!! mau_root@yahoo.com.br

[3] Comentário enviado por adrianoturbo em 03/09/2007 - 12:24h

Compilando Kernel na mão que beleza e parabéns pelo excelente artigo.

[4] Comentário enviado por dzamin em 03/09/2007 - 13:22h

Aproveitando o assunto, gostaria de discutir com os colegas sobre a melhor forma de saber o que é ou não necessário na hora de compilar o Kernel. Na semana passada compilei o Kernel para o meu notebook porém, mesmo após eliminar uma série de parâmetros que eu não precisava, percebi que o tempo de boot continuou praticamente o mesmo (na verdade, uns 10 segundos mais demorado), e o meu objetivo principal, era deixar o Kernel enxuto e ganhar velocidade no boot da máquina. Passei horas verificando parâmetro por parâmetro, lendo a descrição de cada um deles, e no final não consegui alcançar o objetivo esperado. Gostaria de saber os comentários dos colegas sobre este fato e, se existe alguma documentação específica sobre o que tirar e/ou manter compilado no Kernel para ganhar performance. Também gostaria de saber se existe algum lugar onde é possível encontrar arquivos .config prontos para diferentes modelos de hardware, como notebooks por exemplo.

[5] Comentário enviado por carlogray em 03/09/2007 - 13:36h

Quando se compila o Kernel nao precisa adiciona-lo no grub ou lilo?

[6] Comentário enviado por dzamin em 03/09/2007 - 14:27h

O pacote .deb gerado pelo make-kpkg inclui os parâmetros necessários no gerenciador de boot!

[7] Comentário enviado por fernandoiury em 03/09/2007 - 16:06h

Bom artigo, bem explicado. Realmente o debian facilita muito a vida na hora de compilar o kernel.

Fernando Costa
Administrador de Sistemas
www.fernandocosta.eti.br

[8] Comentário enviado por rafaelhenrique em 04/09/2007 - 05:46h

tjpp o exemplo do passo 5 foi só pra ilustrar como os módulos do seu kenrle compilado ficariam organizados, poderia ser visto o "comentário" acrescido ao seu nome pelo comando "uname -r" também sem problemas, e eu preferi editar o Makefile justamente pelo que você falou todo mundo conhece os parâmetros do make-kpkg, e quem não conhece tem n tutoriais que compilam kernel com make-kpkg na internet ;) , mas obrigado pelas críticas muito bem pensado! Até mais! Abraço!

[9] Comentário enviado por rafaelhenrique em 04/09/2007 - 05:47h

mautech envie sua dúvida pra mim :) rafaelhenriqu@gmail.com

[10] Comentário enviado por rafaelhenrique em 04/09/2007 - 05:48h

dzamin o que você acha de criarmos um tutorial 2.0 pra este tópico? Eu também estou buscando melhores formas de compilar meu kernel!

[11] Comentário enviado por rafaelhenrique em 04/09/2007 - 05:50h

carlogray o dzamin respondeu corretamente :) qualquer dúvida conta comigo .... rafaelhenriqu@gmail.com

[12] Comentário enviado por marcosandre em 04/09/2007 - 11:08h

Muito bom o artigo, só tenho uma dúvida, pois não sou nenhum "expert": o que devo colocar no lugar do que está escrito "(uname -r)", e é assim mesmo com os parênteses? Valeu e obrigado..

[13] Comentário enviado por rafaelhenrique em 04/09/2007 - 13:22h

Oi marcosandre é o seguinte o comando:

#uname -r

Quando executado em um terminal retorna sua versão do kernel (ou seja o kernel que você está usando), ai quando queremos usar a saída de um comando pra outro comando executamos este comando desta forma $(uname -r) ou então entre crases `uname -r` ! :) blzinha?

Só dando um exemplo....

Ex: Eu quero remover todos os arquivos em formato txt (texto) da minha home...

# rm -rf $(ls -a *.txt)

Executados separadamente os comandos fazem as seguintes ações:

# ls -a *.txt
-Lista todos (ocultos ou não) os arquivos com final .txt
-Sua saída no meu pc é:

debian-etch-r1.txt foomatic.txt permissoes.txt

Agora é o seguinte o rm -rf exclui! Isso todos sabem, ai no caso ele excluirá a saída do ls -a sendo assim....

#rm -rf debian-etch-r1.txt foomatic.txt permissoes.txt

Desta forma! Só que usamos o ls -a pra não precisar ficar digitando o nome dos arquivos, por que tempo é dinheiro heheheh! Com o uname -r é a mesma coisa, jah pensou c toda vez que eu Rafael quando tivesse que falar minha versão do kernel tivesse que lembrar de 2.6.22.1-486 ? Daria trabalho né? Então eu uso o uname -r pra não precisar ficar digitando essa bagatela de números quando for precisar fazer referência ao meu kernel!

;) Entendido?

Qualquer dúvida pode perguntar !
Abraço!

[14] Comentário enviado por lipecys em 05/09/2007 - 13:07h

Kra, nunca compilei o kernel do meu PC, depois dessa vo até tentar.
valew.

[15] Comentário enviado por rafaelhenrique em 05/09/2007 - 14:28h

lipecys compila sim é legal :), desde que você tenha paciência por que o processo é demorado....

flw

[16] Comentário enviado por MorbiD em 06/09/2007 - 18:20h

um amigo meu teve problemas ao instalar o drive da nvidia no novo kernel (2.6.22.6) qndo ele compilou.
o novo kernel foi compilado e tals... mas o drive da nvidia não estava instalado nesse novo kernel. ele foi instalar o drive (do site da nvidia - onde este é compilado pra dentro do kernel) e nada... e dando boot no kernel antigo a tela fica branco.. não entra.

a solução dele foi reinstalar o ubuntu... sem instalar nada da nvidia... instalou o novo kernel... compilou o drive da nvidia e tudo funciona normalmente.

alguém tem alguma solução pra instalar o drive da nvidia no novo kernel sem q esse altera as configurações de outros kernel?

[17] Comentário enviado por rafaelhenrique em 08/09/2007 - 08:51h

MorbiD bom se fosse eu que estivesse nessa situação, eu primeiro removeria o conteúdo dos pacotes da nvidia por completo ( com apt-get remove --purge <pacote>) e depois tentaria compilar, por que pode ser que o drive pré-compilado esteja tomando o lugar do drive que você iria compilar, bom eu tentaria isso, mas é como digo tentaria, não sei se daria certo, porém acho mais viável

[18] Comentário enviado por Tilzao em 05/10/2007 - 09:46h

Este tutorial é 10, mas a demora é grande e o resultado final no meu caso foi quase imperceptível.
Valeu !

[19] Comentário enviado por rafaelhenriqu em 05/10/2007 - 21:39h

Tilzao é o seguinte esse tutorial é mais pra aprender a criar os pacotes na compilação e pra os iniciantes verem que compilação de kernel não é bicho de 7 cabeças, mas se você procura performance modifique o seu kernel de acordo com suas necessidades com o comando make menuconfig dentro da pasta /usr/src/linux ;) ai se você deixar ele realmente enxuto a performance melhora :), eu tenho um notebook pentium II que ficou show depois de uma compilação :)

Flww! E logo mais eu to pensando em criar um tutorial 2.0 deste mesmo, ensinando a adaptá-lo as suas necessidades!

[20] Comentário enviado por Tilzao em 18/10/2007 - 14:52h

Rafael o seu tutorial é muito bom e me ajudou bastante. Tive de recompilar o meu kernel por causa do Bootflash e aproveitei e dei uma enxugada nele e ai realmente melhorou.
Abaixo segue um link onde o autor dá varias dicas sobre o menuconfig, quem sabe ele não pode servir de fonte de inspiração para o seu tutorial 2.0 ?

http://br-linux.org/tutoriais/001804.html

Valeww

[21] Comentário enviado por Izavos em 06/12/2007 - 22:02h

Muito bom seu artigo!
Esclareceu minha duvida sobre como e se era possível compilar o kernel no ubuntu. Mas devo lhe dizer que não executei o passo "4º" até porque não entendi o mesmo. E tudo funciono muito bem, após algumas horas.O kernel que baixei foi o "2.6.23.9".O uso da memoria subio muito para uns 200MB (-+) mas não afectou o desempenho. E todo o hardware esta funcionando muito bem!
AT a próxima!

[22] Comentário enviado por rafaelhenrique em 07/12/2007 - 12:11h

Passo 4.
# cp /boot/config-$(uname -r) .
# mv config-$(uname -r) .config

O passo 4 funciona da seguinte forma...

O make-kpkg busca um arquivo chamado .config dentro do diretório /usr/src/linux e nas distros baseadas em Debian o sistema copia este arquivo .config pra dentro do /boot com o seguinte nome...

config-<nome do kernel>

Ou seja ele fica dentro do /boot com o nome config seguido da numeração do kernel atual, o que eu fiz no passo 4 foi copiar a configuração default do seu sistema e colá-la no lugar que você irá compilar, para que a compilação não altere seu sistema, deixe-o como ele está! Mas se preferir criar uma nova configuração (um novo .config) você poderá usar o make menuconfig dentro da pasta /usr/src/linux como exemplifiquei abaixo...

# cd /usr/src/linux
# make menuconfig

Aí é só começar a editar as configurações que você quer q seu kernel tenha, mas você TEM que saber o que está fazendo, não brinque com isso se não souber... qualquer coisa se quiser fazer isso e precisar de ajuda me manda email...

Até +


*obs: o comando uname -r mostra sua versão atual do kernel, eu o usei para que não fosse preciso ficar digitando o nome dele todo o tempo

[23] Comentário enviado por diegoppt em 20/03/2008 - 11:32h

muito bom seu tutorial cara!!
shalom

[24] Comentário enviado por edersg em 19/11/2008 - 23:02h

Muito boa noite Rafael e demais membros do portal Viva o Linux.

Rafael, gostaria de PARABENIZÁ-LO por disponibilizar o tutorial
de como compilar o kernel linux na maneira do Debian GNU/Linux.
Foi a primeira vez que utilizei esta forma de compilar o kernel linux.
Muito obrigado!

[root@jordan ~]# uname -a
Linux jordan 2.6.27-2008-11-19-c6 #1 SMP Wed Nov 19 21:21:32 BRST 2008 i686 GNU/Linux

Desejo-lhes uma
E X C E L E N T E
quinta-feira!

FÉ, SAÚDE e PAZ!

[25] Comentário enviado por rafaelhenrique em 23/11/2008 - 21:38h

Valew ederjordan fico feliz em poder ajudar :)
Abraço

[26] Comentário enviado por Rômega em 12/03/2009 - 18:41h

Muito bom o artigo, principalmente a parte dos "30 litros de café" iauhaiuhaaiu...

[27] Comentário enviado por caradepastel em 03/12/2009 - 14:34h

root@tavares-desktop:/usr/src/linux# make-kpkg -initrd kernel_image kernel_headers
exec debian/rules DEBIAN_REVISION=2.6.24organizado-10.00.Custom INITRD=YES kernel_image kernel_headers
====== making target debian/stamp/build/kernel [new prereqs: conf.vars]======
This is kernel package version 11.015.
test ! -f scripts/package/builddeb.kpkg-dist || mv -f scripts/package/builddeb.kpkg-dist scripts/package/builddeb
test ! -f scripts/package/Makefile.kpkg-dist || mv -f scripts/package/Makefile.kpkg-dist scripts/package/Makefile
/usr/bin/make ARCH=i386 \
bzImage
make[1]: Entrando no diretório `/usr/src/linux-headers-2.6.24-25-rt'
CHK include/linux/version.h
CHK include/linux/utsrelease.h
make[2]: *** Sem regra para processar o alvo `arch/x86/kernel/asm-offsets.c', necessário por `arch/x86/kernel/asm-offsets.s'. Pare.
make[1]: ** [prepare0] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-headers-2.6.24-25-rt'
make: ** [debian/stamp/build/kernel] Erro 2
root@tavares-desktop:/usr/src/linux#

[28] Comentário enviado por rafaelhenrique em 04/12/2009 - 08:01h

caradepastel o kernel que você está usando é o 2.6.24-25 quando escrevi este artigo o kernel mais novo era o 2.6.22.1. Tenho que criar outro artigo mais atualizado, não testei este tutorial com o kernel que você está querendo compilar.

Até+

[29] Comentário enviado por Carlos_Cunha em 17/04/2013 - 21:45h

opa!
Se alguém estiver tendo dificuldade na hora de executar esse comando

make-kpkg -initrd kernel_image kernel_headers

que é o responsavel por gerar o ".deb", ele dizer que não conhece as opçõa -i -n etc..., isso ocorre pq falta um "-" ficando assim:

make-kpkg --initrd kernel_image kernel_headers

Pronto:

:-D

Apesar de antigo o tópico me foi muito util, obrigado

PS: nesse momento a compilação do kernel esta torando meu note hehehe

Abraço

[30] Comentário enviado por rafaelhenrique em 18/04/2013 - 08:06h

Obrigado pelo comentário PretooOO, esse tutorial está meio velhinho mesmo, talvez tenha mudado muita coisa.

Abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts