Compilando Kernel 2.6.32.21 - Fórum Debian Wiki
Compilando Kernel 2.6.32.21
Edição feita às 06h07min de 25 de Dezembro de 2010 por Renatov (Discussão | contribs)
3 Download do Kernel 2.6.32.21
4 Aquisição de um arquivo .config
5 Preparação para compilação
5.1 Dicas sobre configuração e seleção dos módulos
5.2 Evitando erro com lguest
8 Configuração do gerenciador de boot
Cada nova versão do Kernel oferece suporte a mais drivers, possui maior estabilidade e contém mais funções personalizáveis. A atualização para uma versão mais recente, portanto, é recomendável nos casos em que se precisa de suporte a hardwares mais recentes e/ou quando se busca maior estabilidade no sistema. Esse artigo tem como objetivo ensinar a compilar o Kernel 2.6.32.21 no Debian Lenny, mas os procedimentos podem ser utilizados, de maneira geral, para a compilação de outras versões também.
Resolva as dependências gerais para compilação:
# aptitude install kernel-package bzip2 module-init-tools initramfs-tools procps fakeroot zlib1g-dev
Além disso, para editar os parâmetros de configuração para compilação é preciso usar menuconfig, gconf ou xconfig.
Para utilizar o menuconfig, é preciso baixar o pacote:
Para utilizar gconfig:
E para utilizar xconfig (recomendável):
Download do Kernel 2.6.32.21
Acesse o diretório /usr/src:
Baixe o kernel 2.6.32.21:
# wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.21.tar.bz2
Descompacte e crie um link simbólico para a pasta /usr/src/linux
# tar xvjf linux-2.6.32.21.tar.bz2 -C /usr/src
# ln -sf linux-2.6.32.21 linux
Aquisição de um arquivo .config
Um arquivo .config contém configurações pré-estabelecidas para a compilação do Kernel. Se você quiser manter o .config utilizado atualmente pelo seu sistema, execute o comando abaixo.
# cp /boot/config-2[pressione TAB] /usr/src/linux/.config
O site Debian Official Kernel Configurations oferece arquivos .config específicos para cada versão disponível do Kernel, personalizados para as diferentes arquiteturas. Caso você não queira manter seu .config atual, é possível fazer download de um novo, com configurações mais específicas para essa nova versão e para sua arquitetura de hardware. Para efeito de exemplo, nesse artigo será utilizado um arquivo .config para a arquitetura i686. Altere o link de download caso seu computador não seja um i686.
# wget -c http://merkel.debian.org/~jurij/2.6.32-21/i386/config-2.6.32-5-686.gz
Descompacte o arquivo, renomeie-o para .config e mova-o para a pasta /usr/src/linux
# gunzip config-2.6.32-5-686.gz
# mv config-2.6.32-5-686 /usr/src/linux/.config
Preparação para compilação
Entre no diretório /usr/src/linux
Limpe as construções de compilações anteriores do Kernel:
E abra uma ferramenta de configuração e seleção dos módulos a serem compilados. Nesse artigo, utilizaremos o xconfig:
Dicas sobre configuração e seleção dos módulos
Para a maioria dos módulos, existem três valores que você pode colocar: Y/M/N (no modo gráfico do xconfig, respectivamente será um check, uma bolinha ou um espaço vazio). Os módulos especificados como Y serão carregados junto com o kernel. Os que forem especificados como M, não serão carregados automaticamente com o kernel, mas poderão ser carregados manualmente pelo usuário (usando modprobe, por exemplo). Já os módulos como N, não serão compilados e, por isso, não serão carregados com o kernel e também não poderão ser carregados pelo usuário.
Uma dica aqui pra ver quais módulos seu sistema precisa é verificar quais módulos estão atualmente carregados, usando o comando lsmod num terminal. Procure esses módulos com a ferramenta de busca do xconfig e verifique se todos estão especificados ao menos como M (bolinha). De maneira geral, vá fuçando, lendo o help e usando o google. Não precisa ter medo de fazer besteira, o máximo que vai acontecer é ter que compilar de novo, com outra configuração.
Recomendo que se especifique um nome para a imagem que você está compilando, para ficar mais organizado. Coloque a data de compilação ou alguma palavra para você saber do que se trata. Para isso, vá em General setup >> Local version e preencha com a data ou qualquer outra coisa.
Se você quiser um Boot Colorido e/ou a imagem de um pinguim (exemplo de boot colorido), é preciso habilitar algumas coisas. Vá em Device Drivers >> Graphics support >> Support for frame buffer devices e habilite VGA 16-color graphics support como M (bolinha) e VESA VGA graphics support como Y (check). Em seguida, vá em Device Drivers >> Graphics support >> Bootup logo e habilite as três opções.
Feitas todas configurações e seleções de módulos, salve seu trabalho e feche o xconfig.
Evitando erro com lguest
Em teoria, está tudo pronto pra compilar, mas se você tentar compilar agora, muito provavelmente vai receber o seguinte erro:
lguest.c:1027: warning: implicit declaration of function 'eventfd'
Para que isso não aconteça (ou para corrigir o erro, caso você já tenha tentado compilar), edite o arquivo:
# gedit /usr/src/linux/Documentation/lguest/Makefile
Altere a entrada all: lguest para apenas all: (ou seja, remova a palavra lguest dessa linha).
Dentro da pasta /usr/src/linux execute o comando abaixo para gerar a imagem com o novo Kernel em um pacote .deb. O procedimento irá demorar alguns minutos.
Opcionalmente, é possível gerar outros pacotes .deb, bastando acrescentar outros parâmetros ao comando acima:
kernel_headers gera pacote contendo os headers do kernel
kernel_manual gera pacote contendo o manual e a documentação
kernel_doc gera pacote contendo apenas a documentação
obs: para mais opções, verifique o manual do make-kpkg
A imagem gerada estará na pasta /usr/src e terá a extensão .deb. Sendo assim, para instalar o novo Kernel, basta utilizar o dpkg como se você estivesse instalando um pacote qualquer:
# dpkg -i linux-image-2.6.32.21_2.6.32.21-10.00.Custom_i386.deb
obs: a imagem gerada poderá ter um nome levemente diferente, dependendo do que você especificou em General setup >> Local version.
Se futuramente você quiser desinstalar esse Kernel, remova-o utilizando o dpkg, como se fosse um pacote qualquer:
# aptitude purge linux-image-2.6.32.21_2.6.32.21-10.00.Custom_i386
Se você usa lilo, adicione a entrada para o novo kernel manualmente. Se você usa grub, não precisa fazer absolutamente nada, na próxima vez que você ligar o computador vai haver uma nova entrada para o Kernel que você acabou de instalar. Caso você tenha habilitado a opção Boot logo, pro pinguim aparecer é preciso especificar um modo vga nos parâmetros de inicialização do Kernel, em seu boot loader. Veja maiores detalhes aqui.