Recompilando o kernel na distribuição Debian

Este artigo aborda a recompilação do kernel utilizando as ferramentas exclusivas de auxílio à tarefa presentes no Debian. Nunca foi tão fácil recompilar um kernel.

[ Hits: 34.916 ]

Por: Alberto Viana em 13/06/2003


Introdução



O passos a seguir são uma forma simplificada de recompilar seu Kernel na distribuição Debian (alguns passos são idênticos a outras distribuições).

É necessário ter os seguintes pacotes instalados no sistema:
  • kernel-package
  • expectk
  • source do novo kernel que deseja instalar (no exemplo abaixo iremos presumir que o kernel seja o 2.4.18)

Instalação dos pacotes


1. Digite o seguinte comando para instalar os pacotes:

apt-get install kernel-package kernel-source-2.4.18 expectk

2. Agora entre no diretório /usr/src, que é onde o source do novo kernel deverá estar.
Nota: caso o kernel não esteja no diretório, mova-o para lá.

3. Deszipe e descompacte o arquivo e crie o link simbólico necessário para a compilação com os seguintes comandos:

bunzip2 kernel-source-2.4.18.tar.bz2
tar xvf kernel-source-2.4.18.tar
ln -sf /usr/src/kernel-source-2.4.18 /usr/src/linux


4. Entre no diretório /usr/src/linux que agora iremos começar a compilação em si (uhuuuu!!). Digite os seguintes comandos:
  • make xconfig - (também pode ser usado "make menuconfig", caso você não esteja em um ambiente gráfico).

    Em seguida abrirá uma interface gráfica para selecionar os módulos que você deseja ter no seu kernel. Infelizmente essa parte não dá para se dar muitas dicas, pois os módulos variam de acordo com a necessidade de cada usuário, então fica a seu critério a seleção dos mesmos. Feche o menu salvando as configurações.

  • make-kpkg -rev Custom.1 kernel_image - o nome custom pode ser mudando para um de sua preferência. Ex: kernel.1 ou albertoc.1)

    O make-kpkg irá gerar um arquivo com extensão .deb no diretório /usr/src.

  • dpkg -i kernel-image-2.4.18_Custom.1_i386.deb - este comando irá instalar a nova versão do seu kernel. O nome do pacote .deb irá variar de acordo com a versão e sua escolha no feita no comando make-kpkg.
Pronto, seu Kernel está recompilado! A instalação do pacote automaticamente renova seu lilo para que no próximo boot você já possa utilizar seu novo kernel. (:

Caso seu gerenciador de boot seja outro (Ex.: Grub), dê um restart no mesmo.

Nota: mesmo com a renovação automática do lilo, aconselho a execução manual do comando lilo -v, só por segurança.

5. Por fim, reinicie sua máquina.

Nota final: caso algo dê errado ou você esqueceu de acrescentar algum módulo, rode o comando make-kpkg clean e recomece o processo a partir do passo 4.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

UZIX - O Linux do MSX (Z80)

Kernel atualizado no Debian - Parte I

Compilando kernel 2.6.11 no Slackware 10

Como acelerar o GNU-Linux

Kernel Hacking (RootKits)

  
Comentários
[1] Comentário enviado por obake em 20/02/2004 - 14:39h

Vale lembrar q vc pode pegar os sources do kernel em www.kernel.org (Eh util pois os sources oficiais do debian quase sempre estao desatualizados) E compilar do mesmo jeito

[2] Comentário enviado por andrericardo em 15/03/2004 - 12:21h

Fantástico Alberto, d+ mesmo, me ajudou muito esse dica, só uma pergunta para o kernel 2.6.3, mantém os mesmos comando e sequência, ou muda alguma coisa devido a ser uma versão muito recente do kernel?

[3] Comentário enviado por helizonaldo em 25/03/2004 - 15:20h

apos esta linha:
dpkg -i kernel-image-2.4.18_Custom.1_i386.deb

deu esse error no final e ele nao criou o pacote deb
*** [_modinst_post] Error 1
*** [real_stamp_image] Error 2

uso a distribuicao debian 3.0r1 kernek 2.2.20 qual o problema?

[4] Comentário enviado por fftrebor em 11/05/2004 - 12:18h

Estou com um problema. Seguí os passos descritos no artigo e estou recebendo dois erros.

Erro 1:

libretto:/usr/src/linux# make xconfig
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
make -C scripts kconfig.tk
make[1]: Entering directory `/usr/src/kernel-source-2.4.18/scripts'
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o tkparse.o tkparse.c
tkparse.c:48: stdio.h: No such file or directory
tkparse.c:49: stdlib.h: No such file or directory
tkparse.c:50: string.h: No such file or directory
make[1]: *** [tkparse.o] Error 1
make[1]: Leaving directory `/usr/src/kernel-source-2.4.18/scripts'
make: *** [xconfig] Error 2


Tentei então a alternativa mencionada também no script e me deparei com outro.

Erro 2:

libretto:/usr/src/linux# make menuconfig
rm -f include/asm
( cd include ; ln -sf asm-i386 asm)
make -C scripts/lxdialog all
make[1]: Entering directory `/usr/src/kernel-source-2.4.18/scripts/lxdialog'
/usr/bin/ld: cannot open crt1.o: No such file or directory
collect2: ld returned 1 exit status

>> Unable to find the Ncurses libraries.
>>
>> You must have Ncurses installed in order
>> to use 'make menuconfig'

make[1]: *** [ncurses] Error 1
make[1]: Leaving directory `/usr/src/kernel-source-2.4.18/scripts/lxdialog'
make: *** [menuconfig] Error 2


meu debian é este:

Linux libretto 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i586 unknown


Desde jé meu obrigado.

[5] Comentário enviado por fftrebor em 13/05/2004 - 16:19h

Alberto

Consegui acertar um pouco as coisas aqui, tava faltando umas bibliotecas aqui.

Porém no passo 4, o "make xconfig" não funcionou ... tive que fazer pelo "make menuconfig".

Até aí tudo bem. Depois o "make-kpkg ..." levou quase 3 horas (minha máquina é um pentium 75 com 16MB RAM).

Ao final, fiz o "dpkg -i kernel-image-2.4.18_......deg" e não deu nenhum erro.

Rebootei o computador e aí sim começou meu problema ... o Debian começa a carregar e fica rebootando direto ... sem parar.

O que posso fazer agora?

Obrigado.

Robert

[6] Comentário enviado por albertoc em 13/05/2004 - 16:47h

Na hora do boot vc fica pressionando ctrl+shift, irá aparecer a janela do lilo pra vc, umas das opções será linuxold (que é seu kernel antigo), escolha-o e dê enter que tudo voltará ao normal.
Já vi problemas parecido com o seu (já passei por alguns tb), e foi devido aos modulos que eu escolhi, algumas vezes modulos que vc escolhe e nao serao usados efetivamente podem causar problemas, reveja esta parte se possível.

[7] Comentário enviado por Doubt em 20/07/2004 - 09:01h

Caro amigo, eu posso utilzar este artigo para compilar o kernel 2.6 no debian? ou teria algo a mais para fazer?????
A qual seria o repositorio para eu colocar no source.list para este processo??

Grato

[8] Comentário enviado por albertoc em 20/07/2004 - 09:55h

Voce utiliza da mesma maneira para qualquer kernel. A source list da versao stable do debian já tem os pacotes necessários para os passos da compilação (só não tenho certeza se vc vai conseguir baixar a versao mais nova do kernel via apt, mas qualquer coisa é só baixar de www.kernel.org).
Qualquer dúvida me escreve
:)

[9] Comentário enviado por temor em 17/11/2004 - 19:07h

Parabens , gostei muito de seu artigo !!!

[10] Comentário enviado por fabio.freak em 08/04/2005 - 02:56h

tentei fazer conforme assim explicado, mas deu este erro:
*
* Unable to find the QT installation. Please make sure that the
* QT development package is correctly installed and the QTDIR
* environment variable is set to the correct location.
*
make[1]: ** [scripts/kconfig/.tmp_qtcheck] Erro 1
make: ** [xconfig] Erro 2

[11] Comentário enviado por albertoc em 13/04/2005 - 09:38h

isto ocorre ou poque vc nao tem tem o QT instalado em sua maquina (e é necessário para abrir o modo grafico) ou porque ele não está declaro em seu PATH.
Digita no shell: env (isto irá listar seu PATH) e verifica se tem algo assim:
QTDIR=/dironde/tao/qt

Caso voce realmente não tenha o QT existem 2 formar para tentar adiquiri-lo
1. No debian vc pode dar um apt-get install libqt3-mt (se eu nao me engano este pacote atende as necessidades)
2.Vai em http://www.trolltech.com/, faz o download do QT e compila na mao mesmo (a compilação demora bastante tempo, falo isso por experiencia propria pq ja fiz isto algumas vezes)

[12] Comentário enviado por pinrusty em 02/06/2005 - 18:44h

aeee! baita artigo cara! valeu!

[13] Comentário enviado por sombra em 09/11/2005 - 00:26h

Bem bacana o artigo, to seguindo ele, só que deu um probleminha aqui, tentei fazer o comando do passo 4:

make-kpkg -rev Custom.1 kernel_image,

porém deu o seguinte erro:

bash: make-kpkg: command not found
debian:/usr/src/kernel-headers-2.6.8-2-686#

O que poderia ser isso?
A distribuição que eu estou usando é a Debian 3.1

[14] Comentário enviado por albertoc em 09/11/2005 - 10:24h

o make-kpkg vem no pacote kernel-package, portando da um apt-get install kernel-package, tem isso no começo do artigo la em cima hehehehe

[]s

[15] Comentário enviado por rick001_7 em 14/12/2005 - 16:21h

Massa esse Artigo , mas no meu Debian deu erro e tive que dar um apt-get install qt3-apps-dev para funcionar , mas he massa, valew!!!!!!!!!!

[16] Comentário enviado por alexffox em 01/07/2006 - 15:04h

não consigo criar o link ?!
ln -sf /usr/src/kernel-source-2.6.18 /usr/src/linux

o q pode ser? já aconteceu com alguem??

[17] Comentário enviado por kabalido em 30/11/2007 - 16:21h

Provavelmente vc n baixou o source do kernel dentro de /usr/src ou vc n criou o diretório linux dentro do /usr/src/

Deve ser isso.

Abraços

[18] Comentário enviado por removido em 06/04/2010 - 03:48h

albertoc,

É isso mesmo, cada vez que eu precisar recompilar meu kernel, eu preciso executar um "make-kpkg clean"???

Tipo, compilei o kernel e já foi gerados os pacotes *.deb. Mudo alguma opção com o "make menuconfig" e executo "make-kpkg clean" fazendo eu compilar tudo do zero, pois ele apaga toda a compilação anterior, certo! Não exite alguma opção que permita fazer somente a recompilação e atualizar o pacote gerado no final?

Obrigado desde de já!

[19] Comentário enviado por marcelovegano em 07/05/2012 - 15:37h

Instalem esses pacotes ...

build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts