Recompilando kernel 2.6 no Debian Lenny

Este trabalho tem como objetivo mostrar aos usuários como é simples recompilar um kernel, graças à grande evolução dos sistemas Linux e ao grande esforço da comunidade. Espero que este artigo ajude quem ainda não recompilou um kernel e acha que é um bicho de sete cabeças.

[ Hits: 17.551 ]

Por: Carlos em 05/08/2009 | Blog: http://lattes.cnpq.br/2631598131280012


Configurando e compilando



Dentro do diretório /usr/src/linux-2.6.x devemos selecionar o que será incluído no kernel e o que será adicionado como módulo, essa é uma tarefa demorada e que exige um pouco de paciência, além do conhecimento do hardware utilizado.

Para a configuração podemos usar a ferramenta "xconfig", que exibe uma interface gráfica:

# make xconfig

Existe também a ferramenta "menuconfig", que oferece as mesmas opções, porém com uma interface em modo texto:

# make menuconfig

Após a configuração, iniciaremos a compilação.

Caso você tenha realizado alguma compilação anterior, é aconselhável que se execute um comando para limpar restos de compilações ou módulos desnecessários, o comando é:

# make clean

e para iniciar a compilação, execute:

# make-kpkg --initrd kernel_image

A compilação gera um arquivo ".deb" no diretório /usr/src, neste arquivo está tudo o que precisamos os arquivos "vmlinuz" e o "initrd" que vão no diretório /boot, o novo kernel e um script de instalação. A compilação demora algum tempo, pra vocês terem ideia a minha máquina com um processador "Core 2 Duo" levou em torno de uma 1 hora.

Agora realizaremos a instalação do novo kernel, como no exemplo abaixo:

# dpkg -i linux-image-2.6.30.4_2.6.30.4-10.00.Custom_i386.deb

IMPORTANTE: Não remova o kernel antigo, pois é necessário testar o novo kernel antes.

Pronto, seu novo kernel está instalado. Agora é só reiniciar e testar o novo kernel. Neste momento você deve estar pensando, no quanto é simples compilar um kernel, bastando praticamente conhecimento do hardware utilizado.

Espero ter ajudado com este material, qualquer dúvida pode postar, tentarei esclarecer o mais rápido possível.

Página anterior    

Páginas do artigo
   1. Comandos úteis para a verificação do hardware
   2. Configurando e compilando
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Compilando kernel no Debian Squeeze

Mascarando conexões PPTP de clientes

Compile e empacote o kernel com processadores ociosos em sua rede utilizando distcc, ccache e kernel-package no Debian

Experimento com Linux: Misturando Sabayon com Gentoo

Compilar o kernel no Debian

  
Comentários
[1] Comentário enviado por removido em 05/08/2009 - 14:46h

# make-kpkg --append-to-version "-apelido" --initrd --us --uc kernel_image kernel_source

--append-to-version "-apelido" : Colocarã ao final do pacote, um nome que vc especificar dentro das aspas duplas. Pode botar seu nome aqui..hehehehhehehehe
--initrd : Diz que vc quer um initial ramdisk, junto da compilação do Kernel
--us --uc : Não cria changelog nem assinatura, para este pacote

kernel_image = Gerar .deb do Kernel
kernel_source = Gerar .deb com o Source do Kernel

http://www.forum-invaders.com.br/phpBB/viewtopic.php?f=3&t=8551783

[2] Comentário enviado por pardalz em 05/08/2009 - 15:50h

isso é recomendavel fazer em que situação?

[3] Comentário enviado por removido em 05/08/2009 - 16:13h

>>> isso é recomendavel fazer em que situação?

Hardware não suportado(por exemplo, a minha webcam só teve suporte completo na 2.6.22), alteração do kernel para "real time" ou "low-latency", para aquela sensação de maior performance ;), e até mesmo para ter um pacote de Kernel mais "enxuto".

o .config, por exemplo do meu Kernel(específico para meu notebook), eu arranquei suporte a quase todas as placas wireless(deixando apenas a 3945 da intel), a NIC deixei apenas a e1000e, compilei para a minha família de processador específica(Core 2 e não pentium genérico). Tudo isso dá um aumento de performance, e o pacote .deb do kernel que era de 22Mb caiu para 16Mb =)

[4] Comentário enviado por carlinhojunior em 06/08/2009 - 11:03h

obrigado pelo comentário, muito interessante...

[5] Comentário enviado por pardalz em 12/08/2009 - 21:00h

ah.. o meu nao deu certo aqui nao =(

[6] Comentário enviado por carlinhojunior em 14/08/2009 - 12:33h

pardalz

o que aconteceu?

posta aí que tento te ajudar...

[7] Comentário enviado por (xinelo) em 06/10/2009 - 21:34h

Estou usando o Debian Lenny, segui o passo a passo que vc recomendou mas deu um erro aqui:

make[1]: Saindo do diretório `/usr/src/linux-2.6.30.8'
/usr/bin/make ARCH=i386 \
-C Documentation/lguest
make[1]: Entrando no diretório `/usr/src/linux-2.6.30.8/Documentation/lguest'
cc -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -lz -o lguest
lguest.c:34:18: error: zlib.h: Arquivo ou diretório não encontrado
make[1]: ** [lguest] Erro 1
make[1]: Saindo do diretório `/usr/src/linux-2.6.30.8/Documentation/lguest'
make: ** [debian/stamp/build/kernel] Erro 2

[8] Comentário enviado por (xinelo) em 07/10/2009 - 22:07h

Já deu certo .. foi só instalar o pacote zlib1g-dev.

http://www.vivaolinux.com.br/topico/Debian/Erro-ao-compilar-o-Kernel-1

Bom artigo, parabéns!

[9] Comentário enviado por carlinhojunior em 10/10/2009 - 09:47h

Obrigado

e me desculpa faz dias que não acesso o VOL por falta de tempo...mais que bom que deu certo...

qualquer coisa posta aí...

[10] Comentário enviado por GustavinhoO em 28/09/2011 - 17:12h

consegui executar make menuselect make clean...

mas quando executei make-kpkg --initrd kernel_image

deu esse erro aki:


from arch/i386/kernel/process.c:17:
include/asm/mpspec_def.h:78: warning: âpackedâ attribute ignored for field of ty pe âunsigned char[6]â
arch/i386/kernel/process.c: In function âshow_regsâ:
arch/i386/kernel/process.c:252: warning: pointer targets in passing argument 2 o f âshow_traceâ differ in signedness
include/asm/processor.h:498: note: expected âlong unsigned int *â but argument i s of type âlong int *â
arch/i386/kernel/process.c: Assembler messages:
arch/i386/kernel/process.c:378: Error: operand type mismatch for `mov'
arch/i386/kernel/process.c:379: Error: operand type mismatch for `mov'
arch/i386/kernel/process.c:455: Error: operand type mismatch for `mov'
arch/i386/kernel/process.c:456: Error: operand type mismatch for `mov'
include/linux/elfcore.h:92: Error: operand type mismatch for `mov'
include/linux/elfcore.h:92: Error: operand type mismatch for `mov'
arch/i386/kernel/process.c:577: Error: operand type mismatch for `mov'
arch/i386/kernel/process.c:578: Error: operand type mismatch for `mov'
arch/i386/kernel/process.c:585: Error: operand type mismatch for `mov'
arch/i386/kernel/process.c:586: Error: operand type mismatch for `mov'
make[2]: *** [arch/i386/kernel/process.o] Error 1
make[1]: *** [arch/i386/kernel] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.9'
make: *** [debian/stamp/build/kernel] Error 2

alguem pode me ajudar....


Contribuir com comentário