A vezes cercado de mito. Visto como um tarefa complexa. Mas, devemos concordar, o processo de compilação exige de fato conhecimento sobre o hardware da maquina, para que ocorra uma melhora no real no desempenho do equipamento. Porém não se assustem é uma ótima oportunidade para apreender sobre o hardware de sua maquina. No entanto no Debian squeeze o procedimento é relativamente simples.
Neste tutorial não abordaremos como coletar informações do hardware, ou configurar repositórios da maquina. Presumiremos que você já tenha um desktop previamente configurado com todas as informações do hardware da sua maquina.
Prometo em breve postar sobre o assunto.
Agora é só seguir alguns passos:
Primeira etapa instalar os pacotes necessários para compilação no Debian
Primeiro vamos logar como usuário root no prompt de comando aparecera o caracter # o comando é:
1ª Passo instalar pacotes necessários para compilação:
# apt-get install build-essential libncurses5-dev
2º Passo baixar o kernel do site: http://www.kernel.org no diretório /usr/src/ com o comando:
# wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.7.tar.bz2
Neste site encontraremos a ultima imagem do kernel no nosso caso a versão 3.2.7
3º passo: Descompactamos o kernel baixado em /usr/src/ com o comando:
# tar -jxvf linux-3.2.7.tar.bz2
Dica: " Recomendo quando descompactar o kernel dar uma olhada dentro dos diretórios
lá você encontra diretórios como o /usr/src/linux/Documentation que contém muita documentação sobre o kernel parâmetros de compilação, nomes de livros para referência
bem como links para diversos sites sobre o assunto assim como alguns how-tos "
4º passo: Criar um link simbólico com o nome de linux dentro de /usr/src/ para o diretório criado pelo arquivo descompactado no caso linux-3.2.7/ com o comando:
# ln -s linux-3.2.7 linux
5º Passo: Com o comando cd mudamos para a pasta do arquivo do kernel descompactado
# cd linux
6º Passo utilizar o comando:
# make menuconfig
Após digitar o comando acima você entrara no menu de configuração do kernel
em outra oportunidade comentaremos suas opções a fundo.
No menu de configuração do kernel você habilita o suporte do seu kernel a determinados tipos de hardware ou recursos.
o comando make menuconfig gera o arquivo .config o qual fornece os parâmetros para compilação do kernel.
Dica: "Uma medida que adianta tempo para futuras compilações é salvar o arquivo .config para futuras compilações, ou usar um arquivo .config, do kernel que roda atualmente em sua maquina. Assim, quando você abrir o menu de configuração com o comando: make menuconfig as opções básicas de seu hardware já estarão selecionadas. um bom local para guardar seu arquivo .config é o diretório /boot com o nome de: config.sua_versão_de Kernel."
7º passo editar o arquivo Makefile com o editor de texto de sua preferência no meu caso o editor vi
# vi /usr/src/linux/Makefile
VERSION = 3
PATCHLEVEL = 2
SUBLEVEL = 7
EXTRAVERSION = C01
Vamos editar o arquivo Makefile nas 04 primeiras linhas desse arquivo encontraremos as 04 variáveis que armazenam o nome do kernel
Vamos editar a linha que contém a variável " EXTRAVERSION = " nela colocaremos a versão de
de nossa compilação indicando a personalização do kernel.
Em nosso exemplo para fins didáticos, colocamos C01 de primeira compilação. Note que você pode por
o valor que achar melhor.
Obs: O arquivo Makefile é enorme com diversos parâmetros mas hoje, vamos nos concentrar nas 4 primeiras linhas.
8º Passo gerar a imagem do kernel propriamente dita com o o comando :
# make bzImage
o comando acima gera um arquivo de imagem de kernel com o nome de bzImage do diretório:
/usr/src/linux/arch/x86/boot/bzImage
O diretório pode variar de x86 para x86_64 ou outro dependendo da arquitetura de sua maquina.
Esse processo dependendo da maquina costuma demorar um pouco, sabe aquele café ? melhor ir tomar ele agora :-)
9º passo compilar os módulos usando o comando:
# make modules
Isso também pode demorar um pouco...
Esse comando costuma demorar um pouco também, dependendo da sua maquina.
O comando acima, compila os módulos dos dispositivos do seu kernel.
Obs: Para maquinas com mais de um processador pode ser usado o comando:
# make -j4 modules (Opcional)
Acelerando o processo de compilação realizando em 04 processos simultâneos
10 º passo instalar os módulos compilados com o comando:
# make modules_install
O comando acima instala os módulos criando o diretório /lib/modules/sua_versão_de _kernel
em nosso caso o diretório:
/lib/modules/3.2.3C01
11º passo: instalar o kernel com o comando:
# make install
12º passo: agora vamos para o diretório /boot com o comando:
# cd /boot/
Dentro deste diretório geraremos a imagem inicial do kernel initrd (de initial ram disk)
13º passo: gerar a imagem inicial do kernel com o comando:
# mkinitramfs -o initrd.img-3.2.7C01 3.2.7C01
Atenção na parte sublinhada pois nome deve ser igual o da pasta gerada em /lib/modules/
pois é daqui que o comando mkinitramfs linka e extrai o módulos necessários para inicializar
a maquina. Se não, na hora de iniciar a maquina o kernel não carregara completamente.
Apresentando o clássico erro : "Kernel Panic"
Bom a boa notícia é que se você seguiu todos os passos e não teve erros até aqui você já compilou seu kernel. A notícia ruim é que ainda não da para usa-lo. Devemos adiciona-lo no seu gestor de inicialização no caso de quem usa Debian o gestor padrão é o grub então vamos lá:
Peguei você no Debian squeeze esse processo é muito simples é só digitar o comando:
# update-grub
Depois e só reiniciar a maquina selecionar o kernel compilado e partir para o abraço:
Nos próximos posts comentarei mais detalhes sobre a compilação como opções do comando make, compilação de módulos de terceiros e etc...
Qualquer duvida é só postar aqui .