Você está na página 1de 17

Compilao de

Kernel
Introduo
O Kernel o corao do sistema, o Linux em s. Todos os
demais programas, incluindo o shell, so softwares que rodam
sobre o Kernel. A funo principal dele ser o ponto de ligao
entre os programas e o hardware.
Para manter a compatibilidade com o maior nmero possvel
de dispositivos de hardware, as distribuies devem incluir
tambm todos ou quase todos os drivers de dispositivos
disponveis para o Linux. Para evitar que isto torne o Kernel muito
grande, criado um kernel bsico, com os drivers mais
importantes, incluindo assim os demais drivers como mdulos.
Durante a instalao, os mdulos necessrios so carregados no
kernel. E como vimos anteriormente, podemos carregar ou
descarregar os mdulos da memria, de acordo com o seu uso
ou no.
Compilando o Kernel

Mas, voltando ao tema principal, recompilar o Kernel do Linux


lhe d a chance de criar um kernel adaptado s suas
necessidades, ao contrrio do tamanho nico includo nas
distribuies. Alm disso, voc vai precisar recompilar o Kernel,
caso precise adicionar o suporte a algum dispositivo, cujo driver
s est disponvel na verso mais recente. Por exemplo, se o
kernel que voc instalou no suportar o seu disco SATA, ou
sua placa de rede, ou seu dispositivo bluetooth, ento voc
precisar compilar um novo kernel para adicionar esse novo
suporte.
Adquirindo um novo Kernel

O primeiro passo naturalmente obter o cdigo-fonte do


Kernel, que iremos compilar. Se voc quer apenas criar um
kernel personalizado, pode usar como base o prprio kernel
includo na sua distribuio. Ou ento, voc pode baixar a
verso mais recente no site http://www.kernel.org, onde poder
encontrar tanto a verso de desenvolvimento (sendo mpar o 2
nmero da verso, como em 2.5.x), quanto a verso estvel
(sendo par o 2 nmero da verso, como em 2.6.x).
Preparando a Compilao

Para realizar a compilao, voc precisar instalar no seu


sistema os seguintes pacotes:

# apt-get install gcc make ncurses-bin ncurses-base


libncurses5 libncurses5-dev

OBS: Para verificar se os pacotes esto instalados, podemos


usar o seguinte comando:

# dpkg -l | grep <nome do pacote>


Descompactando o Kernel

Feito o download do cdigo-fonte do Kernel, salve o arquivo


no diretrio /usr/src, onde por padro ficam armazenados os
fontes do Kernel (o arquivo com o fonte do Kernel muito
grande, com mais de 30 MB nas verses recentes! Porm,
depois de compilado, ele ficar bem menor).
Depois de baixar o pacote, voc dever descompact-lo no
diretrio onde voc salvou o cdigo-fonte (o /usr/src):

# cd /usr/src
# tar -xvjf linux-2.x.x.tar.bz2

OBS: ser gerado um sub-diretrio com o mesmo nome da


verso, no padro /usr/src/linux-2.x.x
Iniciando a Compilao

Acesse agora o diretrio /usr/src/, onde os fontes da verso


do Kernel que ser recompilada est armazenada:

# cd /usr/src/linux-2.x.x

Com o cdigo em mos, o prximo passo definir os


componentes que sero includos no novo Kernel. Para isto,
temos trs opes:

# make config configurao via texto


# make menuconfig configurao via interface ncurses
# make xconfig configurao via interface grfica
O comando make menuconfig

Usaremos no curso o estilo do menuconfig, pois o mesmo


em modo console (texto), porm possui uma janela interativa em
uma interface da biblioteca ncurses, para que possamos
recompilar o Kernel.
OBS: Essa opo necessita obrigatoriamente que o ncurses
esteja instalado na mquina, como verificamos anteriormente.
Para executar o menuconfig, basta digit-lo no shell:

# make menuconfig
O comando make menuconfig
(cont.)

Os componentes disponveis esto organizados em


categorias. A maior parte se relaciona justamente ao suporte a
dispositivos:
O comando make menuconfig
(cont.)
Para cada mdulo, existem trs opes padres: Built-in (*), No
( ) ou Module (M), que permite carregar o componente na forma de
um mdulo, sem inchar o Kernel. Esta a opo ideal para todos
aqueles componentes que quiser manter, porm no tem certeza se
sero usados freqentemente:
O comando make menuconfig
(cont.)

Depois de terminar, clique na opo Exit no Menu Principal


e escolha a opo para salvar todas as alteraes.
Compilando o Kernel
Depois de configurar o novo kernel, basta compil-lo com os
comando abaixo:

# make

Ele ir verificar a cadeia de interdependncias do kernel,


assegurando que todos os componentes necessrios faro parte
da compilao. Este o comando que realmente compila o
Kernel, ou seja, o mais importante de todos, que ir gerar o novo
kernel.

OBS: o procedimento anterior utilizado para kernels 2.6.x,


em kernels 2.4.x seriam dois comandos: make dep e make
bzImage.
Compilando o Kernel (cont.)

O prximo comando, aps termos o kernel compilado, seria:

# make modules ; make modules_install

Este ltimo comando conclui o trabalho, gerando os


componentes que sero adicionados como mdulos e criando a
estrutura dos mdulos do novo kernel.
Alm disso, precisamos gerar o arquivo initrd do novo kernel,
que ser carregado na inicializao:

# mkinitrd -o /boot/initrd-2.x.x.img /lib/modules/<verso


do novo kernel
Instalando o Kernel
Aps a compilao, o novo kernel ser gravado no arquivo
/usr/src/linux-2.x.x/arch/i386/boot/bzImage.
Ento deveremos copi-lo para o diretrio /boot e em seguida
configurar o gerenciador de boot (LILO ou GRUB) para
inicializar o novo kernel, a fim de termos a possibilidade de
trabalhar com o novo kernel e o antigo, caso ocorra algum erro
com o novo kernel:

# cp /urs/src/linux-2.x.x/arch/i386/boot/bzImage
/boot/novo_kernel

Onde em novo_kernel pode ser o nome que voc queira


colocar.
Configurando o boot-loader (LILO)
Para carregar o novo kernel, edite o arquivo /etc/lilo.conf:

# vi /etc/lilo.conf

Nesse arquivo ficam as opes de inicializao que so


dadas durante o boot. Precisamos apenas adicionar nossa nova
imagem do kernel, acrescentando essas linhas no final do
arquivo:

image=/boot/novo_kernel
initrd=/boot/initrd-2.x.x.img
label=Novo Kernel
read-only

Para validar as novas configuraes do arquivo, basta digitar:

# lilo
Configurando o boot-loader
(GRUB)
Para carregar o novo kernel, edite o arquivo
/boot/grub/menu.lst, com as seguintes linhas:

title Novo Kernel


root (hd0,1)
kernel /novo_kernel root=/dev/hda3 ro
initrd /initrd.img-2.x.x
savedefault
boot

Para validar as novas configuraes do arquivo, basta digitar:

# grub-install /dev/hda
Referncias Bibliogrficas

LinuxGuiadoAdministradordoSistema
Autor:RubemE.Pereira
Editora:Novatec

ManualCompletodoLinux(Guiado
Administrador)
Autor:EviNemeth,GarthSnyder,TrentR.Hein
Editora:PearsonBooks

GuiaFocaGNU/Linux
http://focalinux.cipsga.org.br/

Você também pode gostar