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.
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.
[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
[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.
[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!
[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....
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!
[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
[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 ?
[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!
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
[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
[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.