(Estas instruções consideram que estejamos instalando a versão 2.6.0 do kernel, considere trocar a versão - onde for citada - pela versão que você estiver tentando compilar. As instruções aqui elencadas são também específicas da arquitetura x86, o processo de construção/compilação de um kernel em outras arquiteturas podem variar).
-
Descarregue o código fonte a partir do índice da página http://kernel.org, que irá elencar as últimas versões. Caso esteja usando FTP, vá até ftp.kernel.org/pub/linux/kernel/[versão desejada] -- estes subdiretórios contém um arquivo vazio chamado LATEST_IS[versão] para te ajudar a encontrar a última versão. No sitio Kernel.org existe quase toda a coleção de fontes desde a versão 0.99 - caso você realmente seja um aventureiro.
-
Desempacote o código fonte em seu diretório pessoal. Caso você queira realizar muitas compilações e instalações de kernel(e outros coisas legais) você pode querer dar uma lida em "Uma Nota sobre /usr/src" no final desta página.
tar xivf linux-2.6.0.tar.bz2
(troque xivf por xzvf caso tenha descarregado o .gz)
-
cd dentro do diretório linux. Agora você precisará configurar o kernel para selecionar as características que você queira/precise. Existem várias maneiras de fazê-lo:
-
a. make config
Questões em linha de comando;
-
b. make oldconfig
(Útil somente caso você tenha mantido um .config de uma compilação anterior). Como o mais recente kernel, o .config do kernel em execução é usado por padrão caso esteja disponível, então você normalmente não precisará desta característica).
-
c. make menuconfig
(Inteface baseada em ncurses)
-
d. make gconfig
(Interface gráfica baseada em GTK+)
-
e. make xconfig
(Interface gráfica baseada em QT)
-
Agora podemos construir/compilar o kernel(para kernels mais antigos como 2.4.x é necessário construir as dependências com "make dep").
-
Espere. Quando terminado, terá construído tanto o kernel(bzImage) quanto os módulos(para kernels mais antigos como 2.4.x, você precisará executar "make bzImage; make modules")
-
Assuma o usuário root para instalar os módulos e o kernel. Tudo até este ponto pode e deve ser feito com um usuário comum, não existe qualquer necessidade de assumir o usuário root para compilar um kernel. Na verdade não é uma boa idéia fazer tudo como o usuário root porque o usuário root é muito poderoso, um único erro é suficiente para arruinar o seu sistema completamente.
-
Instale os módulos.
-
Instale o novo kernel
-
Configure o bootloader:
-
Caso a sua distribuição use lilo:
-
Edite /etc/lilo.conf e adicione as seguintes linhas:
image = /boot/vmlinuz-2.6.0
label = 2.6.0
Copie também a sua linha root=/dev/??? aqui também.
-
+ Execute /sbin/lilo, reinicie, e aproveite.
-
Caso a sua distribuição use grub:
-
Edite arquivo de configuração em /boot/grub/grub.conf ou /boot/grub/menu.lst:
title=Linux 2.6.0
root (hd0,1) # troque pelo seu root atual
kernel /boot/vmlinuz-2.6.0 root=/dev/hda1
-
-
A maioria das distribuições possuem rotinas de instalação que ligam um novo /boot/vmlinuz-[versão] para simplesmente vmlinuz, então você pode querer adicionar uma stanza como esta ao arquivo de configuração do grub:
title=My very latest kernel install
root (hd0,1) # troque pelo seu root atual
kernel /boot/vmlinuz root=/dev/hda1
Isto te possibilitará iniciar o sistema com kernels novinhos para teste sem ter que constantemente editar as configurações do grub.
Nota: Isto irá funcionar para o lilo também, mas você ainda terá que executar /sbin/lilo após cada instalação.
Caso ocorra algum problema relacionado ao modversion(Símbolos terminado em _Rxxxxxxxx) dê uma olhada nesta questão(ainda sem tradução para o português) no FAQ da lista de discussão linux-kernel para resolver o problema.
Ainda não entendeu como compilar o seu kernel? Tente este tutorial mais detalhado(em inglês).