8.4. Compilando um Novo Kernel

Porque é que alguém irá querer compilar um novo kernel? Na grande maioria das vezes não é necessário uma vez que o kernel que vem por omissão com Debian funciona com a maioria das configurações. Além disso, normalmente Debian oferece vários kernels alternativos. Por isso poderá querer verificar se existe um pacote com uma imagem de kernel alternativa que melhor corresponda ao seu hardware. No entanto, poderá ser útil compilar um novo kernel, para:

8.4.1. Gestão das Imagens dos Kernel

Não tenha medo de tentar compilar o kernel. É divertido e lucrativo.

Para compilar um kernel à maneira Debian, necessita de alguns pacotes: fakeroot, kernel-package, kernel-source-2.4.27 (a versão mais recente na altura em que isto foi escrito) e mais alguns que provavelmente já estarão instalados (veja /usr/share/doc/kernel-package/README.gz para a lista completa).

Este método irá fazer um .deb da fonte do seu kernel, e, se tiver módulos não-standard, fazer igualmente um .deb dependente sincronizado. É a melhor maneira de gerir as imagens dos kernel; /boot irá guardar o kernel, o System.map e um log do ficheiro de configuração activo para a build.

Note que você não tem que compilar o seu kernel “à maneira Debian”; mas nós achamos que usar o sistema de pacotes para gerir o seu kernel é na verdade mais seguro e fácil. De facto, pode obter a fonte do kernel directamente de Linus, em vez de kernel-source-2.4.27, ainda assim use o método de compilação kernel-package.

Note que irá encontrar documentação completa utilizando kernel-package sob /usr/share/doc/kernel-package. Esta secção apenas contém um breve tutorial.

A partir de aqui, iremos assumir que tem as rédeas da sua máquina, e irá extrair o seu código-fonte do kernel para algum local dentro da sua directoria home[7]. Iremos também assumir que a sua versão do kernel é 2.4.27. Assegure-se que está na directoria para onde deseja descompactar as fontes do kernel, extraia-as com tar xjf /usr/src/linux-source-2.4.27.tar.bz2 e mude-se para o directório kernel-source-2.4.27 que terá sido criado.

Agora, pode configurar o seu kernel. Corra make xconfig se o seu X11 está instalado, configurado e a correr; corra make menuconfig caso contrário (irá necessitar da libncurses5-dev instalada). Dispense tempo para ler a ajuda online e escolher cuidadosamente as opções. Quando em dúvida, a melhor opção será incluir o gestor de periféricos (o software responsável por gerir os periféricos de hardware, tais como placas de rede - Ethernet -, controladores SCSI e mais) sobre o que está em dúvida. Tenha cuidado: outras opções, não relacionadas com hardware específico, devem ser deixadas com os valores pré-definidos se não compreender o que significam. Não se esqueça de seleccionar o “Kernel module loader” em “Loadable module support” (não está seleccionado de origem). Se não for incluído, a sua instalação Debian poderá vir a ter problemas.

Limpe a árvore da origem (source tree) e faça reset aos parâmetros do kernel-package . Para fazer isso, faça make-kpkg clean.

Agora, compile o kernel: fakeroot make-kpkg --revision=custom.1.0 kernel_image. O número da versão de “1.0” pode ser mudada à vontade; isto é apenas um número de versão que irá usar para manter registo das suas compilações. Da mesma forma, pode colocar qualquer palavra que deseje no lugar de “custom” (e.g., um host name). A compilação do kernel poderá demorar um pouco, dependendo da capacidade da sua máquina.

Quando a compilação estiver completa, poderá instalar o seu kernel personalizado como qualquer pacote. Como root, faça dpkg -i ../kernel-image-2.4.27-subarchitecture_custom.1.0_mips.deb. A parte subarchitecture é uma sub-arquitectura opcional, dependendo das opções de kernel que colocou. dpkg -i kernel-image... irá instalar o kernel, juntamente com alguns outros ficheiros de suporte. Por exemplo, o System.map irá ser instalado correctamente (ajuda a fazer debug de problemas no kernel), e /boot/config-2.4.27 irá ser instalado, contendo a sua configuração actual. O seu novo pacote kernel-image-2.4.27 é também suficiente esperto para automaticamente usar o gestor de arranque correcto para a sua plataforma, para realizar uma actualização no arranque, permitindo-o arrancar sem voltar a executar o gestor de arranque. Se criou um pacote de módulos, e.g., se tem PCMCIA, irá igualmente necessitar de instalar esse pacote.

É altura de re-iniciar o sistema; leia cuidadosamente qualquer aviso que o passo acima possa ter produzido, e de seguida faça shutdown -r now.

Para mais informação acerca de kernel-package, leia ocumentação em /usr/share/doc/kernel-package.



[7] Existem outras localizações para onde pode extrair as fontes dos kernel e construir o seu kernel personalizado, mas esta é a mais simples, uma vez que não requer permissões especiais.