:. Recompilando o Kernel no Kurumin e outros baseados no Debian

 Por Carlos E. Morimoto
 http://www.guiadohardware.net
 05/02/2004


O Debian oferece uma ferramenta chamada kernel-package que facilita bastante a recompilação do Kernel. Ele cuida de todo o processo de compilação e no final do processo gera um arquivo .deb com o novo Kernel, que pode ser rapidamente instalado usando o comando dpkg -i e, inclusive, instalado em outros micros.

No Kurumin você pode baixar o código fonte do Kernel clicando no Iniciar > Instalar Novos Programas > Outros > Instalar Kernel Source.

No Debian você pode baixar o código fonte de várias versões do Kernel usando o apt-get, como em:

# apt-get install kernel-source-2.6

O pacote deb contém um arquivo compactado com o fonte completo do Kernel, que será baixado para a pasta /usr/src. Comece descompactando o arquivo usando o comando tar -jxvf (se estiver compactado em bz2) ou tar -zxvf (se estiver em .tar.gz) como em:

# tar -jxvf /usr/src/kernel-source-2.4.22-xfs.tar.bz2

Isso criará uma pasta com o mesmo nome do arquivo. Todo o trabalho de compilação será feito dentro desta pasta então vamo começar acessando-a:

$ cd /usr/src/kernel-source-2.4.22-xfs/

Depois abra o configurador do Kernel com um:

# make xconfig

Geralmente você encontrará um arquivo de configuração do Kernel dentro da pasta /boot ou /usr/src. No Kurumin 2.13 por exemplo, o arquivo é o /boot/config-2.4.22-xfs. Este é um arquivo de texto com a configuração do Kernel atual, o que está ativado, o que está desativado, o que está compilado como módulo, etc.

É uma boa idéia começar usando esta configuração ao invés de tentar configurar o Kernel do zero. A idéia é que você possa ativar recursos que vem desativados por padrão, instalar novos drivers que exigem a instalação de patches no Kernel e assim por diante, sem ter muito trabalho.

Usando como base a configuração atual do Kernel, o processo é razoavelmente seguro: se você não alterar nada, será gerado um Kernel exatamente igual ao anterior. As possibilidades de problemas se restringem às opções que você alterar.

Para carregar o arquivo de configuração, clique no "Load Configuration" e aponte o arquivo.

Cada componente pode ser compilado como módulo (m), compilado diretamente no executável do Kernel (y) ou desativado (n). A recomendação geral é compilar os componentes como módulos, assim você pode ativá-los ou desativá-los conforme necessário usando o comando modprobe. Lembre-se que alguns componentes essenciais devem ser compilados diretamente. Se você instalou o sistema numa partição ReiserFS, deixe o "ReiserFS" como "Y".

Depois de terminar a configuração clique no "Store Configuration" e em seguida no "Save and Exit"

O próximo passo é executar o comando:

# make dep

É agora que o processo de compilação no Debian se diferencia do processo padrão. Ao invés do make clean, make bzImage, make modules e make modules_install, todo o restante do processo é automatizado por dois comandos:

# make-kpkg clean

# make-kpkg kernel_image

No final do processo será gerado um arquivo kernel-image dentro da pasta /usr/src com o novo Kernel, como em:

/usr/src/kernel-image-2.4.22-xfs_10.00.Custom_i386.deb

Este pacote contém a imagem completa, incluindo o arquivo vmlinuz que vai na pasta /boot , módulos e um script de instalação (executado ao instalar o pacote) que automatiza a instalação.

O processo de compilação demora em média uma hora e meia num Celeron 800, por isso tenha paciência. Você pode ir fazendo outras coisas no micro enquanto isso. Os Kernels da série 2.6 são maiores, por isso demoram mais que os da série 2.4 para compilar.

Caso a compilação termine em uma mensagem de erro, experimente começar novamente, desativando o módulo que deu problemas. Erros de compilação também podem ser causados por erros de hardware, rode o stresstest (encontrado no Kurumin em Iniciar > Sistema) ou outro teste de hardware para verificar se a sua máquina está estável.

Você poderá instalar o pacote gerado rodando o dpkg -i, como em:

# dpkg -i /usr/src/kernel-image-2.4.22-xfs_10.00.Custom_i386.deb

Durante a instalação existe uma pegadinha. O instalador pergunta *Do You Whant to stop Now? (Y/n)*. O *Y* é o default, então se você simplesmente pressionar Enter sem ler, a instalação será abortada. Para continuar você precisa digitar *n* e dar Enter. Leia as outras perguntas com atenção.

Patches


Os patches são muitas vezes o principal motivo para recompilar o Kernel. Muitos novos recursos demoram para serem incluídos no Kernel oficial e enquanto isso (muitas vezes durante vários anos), ficam disponíveis apenas através de patches.

Como exemplo podemos citar o Freeswan (VPN), o Bootsplash (boot gráfico) e o OpenMosix (Cluster) entre muitos outros. Lendo muitos howtos você verá a necessidade de instalar patches diversos no Kernel para utilizar várias soluções.

Em muitos casos, recursos incluídos em novas versões do Kernel, como por exemplo o lowlatency e o preempt, adicionados no Kernel 2.6 para melhorar as respostas do sistema são disponibilizados também para versões anteriores do Kernel, novamente na forma de patches.

Para aplicar um patch, comece descompactando o arquivo baixado. Geralmente os patches possuem a extensão .patch mas isso não é uma regra.

Muitos patches podem ser baixados diretamente pelo apt-get. Digite "apt-get install kernel-patch" e pressione a tecla TAB duas vezes para ver todas as opções disponíveis.

Como exemplo vou mostrar como instalar os patches preempt, lowlatency e debianlogo. Este último altera o pinguin que aparece durante o boot pelo logo do Debian, apenas para você ter certeza que o novo Kernel foi realmente compilado com os patches. Para instalar os três pelo apt-get use os comandos:

# apt-get install kernel-patch-debianlogo

# apt-get install kernel-patch-preempt-2.4

# apt-get install kernel-patch-lowlatency-2.4

Todos os patches instalados pelo apt-get vão para a pasta /usr/src/kernel-paches. Em geral são instalados vários arquivos compactados, com versões específicas do patch para várias versões do Kernel. Descompacte apenas o arquivo que mais se aproxima da versão do Kernel que você está compilando, como em:

# gunzip cd /usr/src/kernel-patches/diffs/debianlogo/debian-logo-2.4.x.gz

Para aplicar o patch descompactado, acesse a pasta onde estão os sources do Kernel, como em:

$ cd /usr/src/kernel-source-2.4.22-xfs/

O próximo passo é aplicar o patch usando o comando patch -p1 < localização_do_patch, como em:

# patch -p1 < /usr/src/kernel-patches/diffs/debianlogo/debian-logo-2.4.x.patch

Lembre-se que este comando deve ser usado apenas dentro da pasta com os sources do Kernel.

Depois de aplicar todos os patches, siga o procedimento normal para gerar o novo Kernel:

# make xconfig
# make dep
# make-kpkg clean
# make-kpkg kernel_image


Um bom lugar para se manter informado sobre as novidades relacionadas ao desenvolvimento do Kernel, novos patches, etc. é o http://kerneltrap.org





Copyright 2003 Carlos E. Morimoto, http://www.guiadohardware.net - Todos os direitos reservados