Compilando o kernel no Ubuntu -- Parte 1
June 13th, 2008 | by Gustavo Lichti |Na maioria da vezes a compilação de um novo kernel, não é necessária, Um mistério para quem esta entrando no mundo linux é a (re)compilação do kernel, muitas vezes este ato de compilar um kernel é mais uma realização pessoal do que uma necessidade, nas distribuições baseadas no debian, sempre há duas formas e se fazer a compilação, uma delas é da forma tradicional, fazendo tudo na mão, e a outra é gerando um package(.deb) e instalar o novo kernel.
A forma que irei demostrar neste post é a forma tradicional, deixarei para um proximo post a segunda forma de se fazer a compilação.
Ates de começar é necessário instalar alguns pacotes.
apt-get install libncurses-dev
O Primeiro passo é fazer o download do código fonte e descompactar em /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.6.tar.bz2
sudo tar -xjvf linux-2.6.25.6.tar.bz2 -C /usr/src/
O segundo passo é entrar dentro do diretório /usr/src e criar um link do diretório que contém o código fonte da versão que acabamos de descompactar para um diretório linux.
cd /usr/src/
sudo ln -s linux-2.6.25.6/ linux
Agora temos que entrar no diretório /usr/src/linux, editar o arquivo Makefile e alterar a variavel extraversion.
cd /usr/src/linux
sudo nano Makefile
Caso seja a primeira vez que esta compilando este código fonte que acabamos de baixar este passo não é necessário, mas se executado, não trará problemas, este comando só limpa a sujeira de compilações anteriores
sudo make mrproper
Quando vamos compilar um kernel, temos que ter um ponto de partida, este ponto, é um arquivo de configuração, temos duas opções, uma delas é um arquivo de configuração padrão, que exige de quem esta compilando o kernel um bom conhecimento do sistema e do hardware, a segunda opção, é o arquivo de configuração do kernel que estamos utilizando no momento, essa é a melhor opção para a gente neste momento.
sudo cp /boot/`uname -r` /usr/src/linux/.config
Agora é a hora que iremos carregar o arquivo de configuração e se necessario, fazer alterações. No nosso caso, só iremos carregar o arquivo sem fazer alterações.
sudo make menuconfig
Feito isso, va até a penultima opção 'Load an Alternate Configuration File' e carrege o arquivo .config enseguida saia ('exit') salvando.
Agora vamos ao passo mais importante, a compilação, este passo pode demorar de varios minutos a varias horas, depende sempre do hardware da maquina.
sudo make
sudo make modules_install
Agora só falta copiar o kernel e os seus arquivos de configuração para o diretório /boot
sudo cp .config /boot/config-2.6.25.6-lichti
sudp cp System.map /boot/System.map-2.6.25.6-lichti
sudo cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.25.6-lichti
Agora temos que criar o initrd, o responsável por carregar nossos módulos na inicialização do sistema. Aqui tem uma curiosidade, no debian ainda usamos o utilitario mkinitrd, no ubuntu esse utilitario não é mais utilizado por estar defasado, o utilitario usado agora é o mkinitramfs
mkinitramfs -o /boot/initrd.img-2.6.25.6-lichti 2.6.25.6-lichti
Agora só falta editar o arquivo menu.lst do grub e adicionar algumas linhas ao final dele
sudo nano /boot/grub/menu.lst
Agora adicione essas linhas ao final
title Ubuntu 8.04, kernel 2.6.25.6-lichti
root (hd0,1)
kernel /boot/vmlinuz-2.6.25.6-lichti root=UUID=46f5f474-a4b6-48c7-ba4c-1f7ad207361e ro quiet splash locale=pt_PT
initrd /boot/initrd.img-2.6.25.6-lichti
quiettitle Ubuntu 8.04, kernel 2.6.25.6-lichti (recovery mode)
root (hd0,1)
kernel /boot/vmlinuz-2.6.25.6-lichti root=UUID=46f5f474-a4b6-48c7-ba4c-1f7ad207361e ro single
initrd /boot/initrd.img-2.6.25.6-lichti
Pronto, agora é só reiniciar, e lá no gerenciador de boot, selecionar o seu novo kernel.
Tags: compilação, kernel, Linux, recompilação, ubuntu






