Compilando kernel no Debian com apenas dois comandos

Publicado por André em 04/10/2004

[ Hits: 61.690 ]

 


Compilando kernel no Debian com apenas dois comandos



Você é usuário iniciante do Debian GNU/Linux como eu e quer compilar o kernel?

Alguns motivos para querer compilá-lo:
  • Atualização do kernel contra bugs;
  • Otimização do kernel para o seu hardware;
  • Curiosidade e coragem momentânea.

Bom, para compilar o kernel deste modo, você precisa baixar os fontes com o comando apt-get.

Procurando o pacote kernel-source:

$ apt-cache search kernel-source

Este comando trará uma série de versões dos fontes do kernel, baixe a que você desejar, eu instalei a 2.6.8. O comando para baixar e instalar (o source) é este:

# apt-get install kernel-source-2.6.8

Agora na pasta /usr/src haverá um tar.bz2 da versão que você instalou, descompacte-a com "bunzip2" e em seguida "tar xvf".

Crie um link simbólico /usr/src/linux apontando para /usr/src/fontedescompactado com o comando abaixo:

# ln -s /usr/src/kernel-source-2.6.8 /usr/src/linux

Pronto! Agora configure o kernel como deseja entrando na pasta /usr/src/linux e digitando:

$ make menuconfig

Agora vamos compilar efetivamente:

Primeiro comando:

# make-kpkg --initrd kernel_image

OBS: O segredo está na opção "-- initrd", que já adiciona no grub o kernel novo, pra usuário iniciante meeesmo! Talvez aqui ele dê um "warning" dizendo que é melhor compilar deste jeito só se o kernel foi homologado para o Debian. Como baixamos com apt-get, não teremos problema com isso.

Agora vá tomar um café que esse processo demora!

Ao compilar, esse comando cria um pacote que é na verdade uma imagem do kernel na pasta /usr/src.

Hora de instalar o kernel!

Segundo comando:

# dpkg -i kernel-imageX.x.x.x.deb

É isso, compilar o kernel nunca foi tão fácil!

Espero ter acrescentado!

[]s
André
Outras dicas deste autor

Conectando Red Hat 9 usando qualquer tipo de conexão ADSL

Leitura recomendada

Som no Linux (recompilando kernel)

Problema com ALSA após atualização do Debian Lenny 5

Atualizando kernel no Debian 6 - 32 bits

Fazendo o kernel reconhecer memória acima de 4GB no Debian

Atualizar para kernel mais recente no Debian

  

Comentários
[1] Comentário enviado por cvs em 07/10/2004 - 08:26h

é, legal essa dica, mas eu contei 6 comandos :D

[2] Comentário enviado por Czuber em 07/10/2004 - 16:43h

Título: "Compilando o kernel com 2 comandos". Vc está certo! Realmente eu errei!
Deveria ser assim: "Compilando o kernel com 1 comando!"
O outro é pra instalar a imagem! E os outros comandos são para baixar, configurar, criar link... :P

É que na verdade compilar "na mão" mesmo levaria mais comandos como estes que eu peguei deste artigo:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1226

# make bzImage
# make modules_install
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.7-i386-c1
# ln -sf /boot/System.map-2.6.7-i386-c1 /boot/System.map
# mkinitrd -o /boot/initrd-2.6.7-i386-c1.img 2.6.7-i386-c1

alem de ter que reeditar o grub etc.

[]s
Andreh

[3] Comentário enviado por cvs em 08/10/2004 - 12:49h

No meu entender, "compilar kernel" engloba desde baixar o source até na hora de reiniciar o pc pra iniciar a nova imagem. não apenas o make.

[4] Comentário enviado por Czuber em 08/10/2004 - 14:45h

Bom, se vc quisesse acrescentar algo de útil à dica já poderia ter feito, não é meu objetivo ficar retornando alfinetadas de figuras como vc que adora criticar os outros mas ajudar que é bom :( Digo isso pq não é a primeira vez que leio comentários sem sentido seus!
Se só no seu "entender" compilar o kernel engloba td, será que vc é o único diferente? Eu tenho certeza que não, afinal, ngm pensa igual! ou os outros resolveram não perder tempo comentando algo inútil como vc ;)
Depois quando falam que os computeiros são arrogantes eles têm razão!

Tenho certeza que essa dica foi ou será muito útil aos usuários iniciantes como eu que às vezes precisam compilar o kernel com novos drivers, sei lá eu, e querem usar comandos que abstraem complexidades...
Não disse que este comando é uma melhor prática nem que todos deveríam usar, mas que é uma mão na roda, é! Foi mais como forma de curiosidade:

"compilar o kernel nunca foi tão fácil!"

Pena que vc não conseguiu ver utilidade, mas com certeza alguns perceberão!

[]s
Desculpa qq coisa!
Andreh

[5] Comentário enviado por cvs em 13/10/2004 - 11:14h

bom, estou lhe mandando um e-mail agora pra poder esclarecer isso. :-)

[6] Comentário enviado por birilo em 13/10/2004 - 12:17h

Brigas a parte.
Uma coisa que talvez nós deveríamos ter e não temos é uma explicação do makemenuconfig.

Até hoje eu não sei quais módulos carregar quando vou atualizar meu Kernel. O que eu faço, é usar os módulos do Kernel Anterior, em /boot/

[7] Comentário enviado por Czuber em 14/10/2004 - 13:27h

Bom, na configuração que veio no kernel 2.6.8 praticamente todos os drivers estavam setados! A maioria como módulo! Inclusive tive o mesmo problema que uma dica esclareceu pois o driver da Nvidia Riva estava habilitado e tentei instalar o driver da Geforce. Ele dizia que precisava descarregar o módulo antes!
Neste momento é importante conhecer bem seu hardware para otimizar ao máximo o kernel e tem alguns macetes do que deixar como módulo ou não que vc acha no google!

[]s
Andreh

[8] Comentário enviado por elvio.tche em 16/10/2004 - 19:12h

Um detalhe importante a ser adicionado:
para executar "make-kpkg --initrd kernel_image" o usuário dever instalar o pacote. No meu caso não estava instalado.
Comando para instalção do 'kernel package':
apt-get install kernel-package
do contrário, não conseguirão prosseguir com a compilação/instalação do kernel.

[9] Comentário enviado por elvio.tche em 16/10/2004 - 19:29h

Mais um detalhe - Tentei compilar o kernel 2.6.8.1 e, depois daquele cafezinho básico de espera, surgiram algumas linhas finais de erro tipo:
Make[2]: ** [_modinst_post] Erro 1
...
Make[1]: ** [real_stamp_image] Erro 2
...
O que terá ocasionado tais mensagens ?

[10] Comentário enviado por faiper em 23/10/2004 - 10:17h

Cara Parabéns.

Sempre tinha problema para configurar o GRUB na mão ... essa para mim era a pior parte para compilar o kernel.

[11] Comentário enviado por toniati em 11/11/2004 - 08:16h

Caros...na hora do make menuconfig...aparece a seguinte msg

root@01-00697-00:/usr/src/linux# make menuconfig
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
make -C scripts/lxdialog all
make: *** scripts/lxdialog: No such file or directory. Pare.
make: ** [menuconfig] Erro 2

O que eh isso??

[12] Comentário enviado por blood-eyes em 16/11/2004 - 19:56h

cara fiz tudo q vc mandou mas na hr de dar esse comando
:/usr/src/linux$ make menuconfig

deu isso................

-bash: make: command not found
:/
u q eu fiz de erado???

[13] Comentário enviado por Czuber em 18/11/2004 - 08:44h

Ae pessoal,

Tais erros durante a compilação podem ser desde bugs do próprio Kernel a falta de pacotes instalados na sua máquina, como aparentemente é o caso do blood-eyes...

o 'comand not found' é sinal de que ele não encontrou o comando make, vc não fez nada de errado, talvez falte fazer alguma coisa, eu não sei qual o pacote, se é o gcc ou algum outro, vc precisa verificar... Acho difícil, mas se o pacote já estiver instalado de o caminho inteiro do comando...

# whereis make

depois

# /.../...make menuconfig

E não esqueçam de seguir a dica do nosso amigo elvio.tche, e instalem o kernel package

# apt-get install kernel-package

Valeu...
[]s
André

[14] Comentário enviado por leonardzen em 21/01/2005 - 17:51h

e qdo o 'apt-cache search kernel-source' só trazer sources de versões antigas? ou só da sua versão atual do kernel?

[15] Comentário enviado por Czuber em 11/02/2005 - 10:01h

Nesse caso Leonardo:

1.o Verifique se vc está utilizando a versão estável do Debian (Woody), talvez as novas versões do Kernel não estejam disponíveis por não estarem "estáveis"... Precisa ver se vc vai querer atualizar e tornar sua versão não tão estável qto a Woddy... Digo as versões Sarge ou Sid (a que eu utilizo sem problemas atualmente. Obs.: Para uso pessoal)

2.o Verifique o /etc/apt/sources.list se existem os repositórios básicos do Debian - onde vc encontra os sources dos Kernels novos (talvez só para o Sarge e o Sid)

Qualquer dúvida mande outra mensagem...

[]s
André

[16] Comentário enviado por eternal em 18/03/2005 - 20:25h

Amigo, ao dar o make menuconfig aparece uma msg de erro dizendo q para executar esse comando tenho q ter neurse libraries q tem q instalar neurse-devel ou algo assim, e agora?

estou tento instalar o kernel 2.6.8 no debian SID (instalei o estable e depois dei um dist-upgrade para SID) jah instalei o kernel-package tb...

[17] Comentário enviado por Czuber em 30/03/2005 - 17:42h

Fiz exatamente isso qdo instalei o sarge e atualizei, coincidência... Só q no meu não deu erro de falta da biblioteca ncurses... Ncurses é a biblioteca responsável por montar layouts no terminal usando cores e janelas... O menuconfig utiliza essa biblioteca, por isso o erro!

Bom, nesse caso faça o que ele pede
Procure pelo pacote ncurses no apt-get

# apt-get search ncurses

Provavelmente deve ter lá um ncurses-devel, q é o que está faltando...
então vc instala e tenta novamente!

# apt-get install ncurses-devel

[18] Comentário enviado por Renan_ em 06/10/2005 - 18:46h

Tipo, segui todos os passos deste tutorial, porem com duas diferenças: usei um source pego do kernel.org, fiz tudo manualmente, e a outra foi que usei o make bzImage antes da criação do pacote .deb, pois requeria a imagem. Enfim, apos isso foi tudo 100%, soh falhou na instalação..

rnn:/usr/src# dpkg -i kernel-image-2.6.13.3_custom.1.0_i386.deb
Selecionando pacote previamente não selecionado kernel-image-2.6.13.3.
(Lendo banco de dados ... 98101 arquivos e diretórios atualmente instalados.)
Descompactando kernel-image-2.6.13.3 (de kernel-image-2.6.13.3_custom.1.0_i386.deb) ...
Instalando kernel-image-2.6.13.3 (custom.1.0) ...
find: /lib/modules/2.6.13.3/kernel/drivers: Arquivo ou diretório não encontrado

Mas ele instalou.. alguem me diz a solução pra linha acima ae?
porque sempre que tentei instalar este kernel, na inicialização diz:

modprobe: FATAL: Cant load /lib/modules/2.6.13.3/modules.dep: No such file or Directory.

Se alguem puder me ajudar, agradeço!!
[]z

[19] Comentário enviado por nhoj em 19/05/2006 - 13:42h

Sabe me dizer se ele gera a opção de inicialização no LILO na mesma forma que no GRUB???

Grato.

[20] Comentário enviado por wellder em 15/08/2006 - 16:55h

kra ñ tem como pelo DVD do sarge? é q minha net é.... (vc sabe) leeeeennnnnnttttaaaaa pra caramba.

Obrigado.

[21] Comentário enviado por blackmano em 11/11/2006 - 11:56h

ja tentei fazer isso em tres máquinas mas sempre dá o mesmo erro:

debian:/usr/src/linux# make menuconfig
scripts/kconfig/mconf arch/i386/Kconfig
#
# using defaults found in .config
#
Your display is too small to run Menuconfig!
It must be at least 19 lines by 80 columns.
make[1]: ** [menuconfig] Erro 1
make: ** [menuconfig] Erro 2

[22] Comentário enviado por Czuber em 06/12/2006 - 18:06h

nhoj, o Debian que eu instalei escolhi o GRUB, por isso ele atualizou-o, talvez o LILO atualize sozinho também.

blackmano, de alguma forma a configuração do teu vídeo não está de acordo com o mínimo requerido, talvez pelo ncurses presumo eu. Verifique o xorg ou o XFConfig-4 para ajusta-lo de acordo com o teu monitor. Pode ser isso...

[]s
André

[23] Comentário enviado por aprendiz_ce em 13/12/2006 - 11:12h


Vou por esse passo-a-passo na prática assim que possível!

Parabéns pela sua dica.

[24] Comentário enviado por GilsonDeElt em 26/02/2007 - 23:30h

Legal!
Muito útil sua dica.
Pena que não posso colocá-la em prática, pois uso Slackware.
Mesmo assim, tá de parabéns!

[25] Comentário enviado por pontozip em 12/03/2007 - 17:04h

Uma duvida, tenho três máquinas (Debian 3.1r4) com a mesma situação, com a versão do Kernel igual da instalação 2.4.27 os hardwares são diferentes, em uma maquina atualizei com sucesso o Kernel. A minha pergunta é a seguinte posso usar o mesmo arquivo .DEB para as outras ? Ou este arquivo é gerado pra cada máquina ? Aguardo retorno.
Ats.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts