8.5. Compilando um novo Kernel

Porque alguém desejaria compilar um um novo kernel? É mais provável que não precise fazer isto, pois o kernel da debian padrão trabalha com a maioria das configurações. Além disso, Debian freqüentemente oferece várias alternativas de kernel. Então você pode preferir checar primeiro se há um pacote de imagem do kernel que corresponde melhor ao seu hardware. No entanto, pode ser útil compilar um novo kernel para:

8.5.1. Gerenciamento da imagem do kernel

Não tema tentar compilar um novo kernel. É divertido e proveitoso.

Para compilar um kernel usando o método da Debian, será necessário instalar alguns pacotes: fakeroot, kernel-package, kernel-source-2.6.8 (a versão mais recente quando este documento foi escrito), e alguns outros pacotes que provavelmente já estão instalados (veja /usr/share/doc/kernel-package/README.gz para ver a lista completa).

Este método construirá um .deb do seu fonte do kernel e caso tenha módulos não-padrões, criará um arquivo .deb dependente destes também. É uma ótima maneira de gerenciar imagens do kernel; o kernel será gravado em /boot, incluindo o arquivo System.map e um log do arquivo de configuração ativo da compilação.

Note que não precisará compilar seu kernel usando o “Método da Debian”; mas nós achamos que o uso do sistema de empacotamento para gerenciamento do kernel é seguro e fácil. De fato, você poderá pegar os fontes do kernel do Linus ao invés do kernel-source-2.6.8, e ainda usar o método de compilação do kernel-package.

A documentação completa do kernel-package é encontrada sob o diretório /usr/share/doc/kernel-package. Esta seção contém somente um breve tutorial.

Para mais adiante, nós assumiremos que tem controle completo sobre sua máquina e descompactará seu fonte do kernel em algum lugar dentro do seu diretório de usuário [9]. Nós assumiremos que sua versão do kernel é 2.6.8. Tenha certeza que está no diretório que deseja descompactar os fontes do kernel, descompacte-os usando tar xjf /usr/src/kernel-source-2.6.8.tar.bz2 e mude para o diretório kernel-source-2.6.8 que foi criado.

Agora você poderá configurar seu kernel. Execute o comando make xconfig caso o X11 esteja instalado, configurado e sendo executado, make menuconfig (será necessário o pacote libncurses5-dev instalado). Leve algum tempo lendo as mensagens de ajuda on-line e selecione as opções cuidadosamente. Quando estiver em dúvida, é melhor incluir o controlador de dispositivo (o programa que gerencia periféricos de hardware, tal como placas Ethernet, controladores SCSI e outras). Tenha cuidado: outras opções não relacionadas a hardwares específicos, devem ser deixadas no valor padrão caso não as entenda. Não se esqueça de selecionar a opção “Kernel module loader” em “Loadable module support” (esta opção não é selecionada por padrão). Caso não esteja incluída, as instalações usando a Debian podem apresentar problemas.

Limpe a árvore de fontes e resete os parâmetros do pacote kernel-package. Para fazer isto, execute o comando make-kpkg clean.

Agora, compile o kernel: fakeroot make-kpkg --revision=custom.1.0 kernel_image. O número de versão “1.0” poderá ser modificado se desejar; este é somente um número de versão que usará como controle sobre as construções do seu kernel. De forma parecida, poderá colocar uma palavra no lugar de “custom” (e.g., um nome de máquina). A compilação do Kernel poderá levar um tempo, dependendo do poder de processamento da sua máquina.

Caso precise do suporte a PCMCIA, você também precisará instalar o pacote pcmcia-source. Descompacte o arquivo tar.gz como root no diretório /usr/src (é importante que os módulos sejam encontrados no local onde o programa espere encontrá-los, no caso, o diretório /usr/src/modules). Então, digite como usuário root make-kpkg modules_image.

Assim que a compilação estiver concluída, você poderá instalar o kernel personalizado como qualquer pacote. Como root, execute o comando dpkg -i ../kernel-image-2.6.8-sub-arquitetura _custom.1.0_i386.deb. A parte sub-arquitetura é uma sub-arquitetura opcional, tal como “i586”, dependendo das opções do kernel que escolheu. O comando dpkg -i kernel-image... instalará o kernel, junto com outros arquivos de suporte. Por exemplo, o System.map será instalado (útil para depurar problemas no kernel) assim como o /boot/config-2.6.8 (contendo seu conjunto de configurações do kernel). Seu novo pacote kernel-image-2.6.8 é também inteligente o bastante para usar automaticamente o gerenciador de partida de sua plataforma para executar uma atualização do setor de partida para que a inicialização ocorra sem problemas. Caso tenha criado um pacote PCMCIA, você precisará instalá-lo também.

É hora de reiniciar o sistema: leia cuidadosamente o alerta que o passo acima produziu, então execute o comando shutdown -r now.

Para mais informações sobre o kernel-package, leia a bela documentação em /usr/share/doc/kernel-package.



[9] Existem outras localizações onde pode descompactar os fontes do kernel e construir seu próprio kernel personalizado, mas isto é fácil pois não requer permissões especiais.