Sei sulla pagina 1di 4

Compilando o kernel no Debian

Kernel o nome que se d ao ncleo de um sistema operacional, o responsvel por


praticamente tudo dentro do sistema, desde o reconhecimento e gerenciamento de itens de
hardware at a execuo de programas e dele depende muito o desempenho do sistema. No
Windows ele costuma ser meio "inchado" (mais de 300MB no XP e mais de 2GB no Vista; no
Seven ento nem se fala), mas no Linux ele costuma ter apenas at uns 150MB de tamanho.
Normalmente cada distribuio de Linux tem uma verso do kernel especfica, otimizada
para funcionar com essa distribuio e que, se colocada em outra, pode (ou no) deixar o
sistema terrivelmente lento; h tambm a opo do prprio usurio compilar o kernel para a
sua mquina, conseguindo ento um sistema bem azeitado, coisa que no se consegue com
um kernel - digamos - genrico para uma distro qualquer. O problema que compilar kernel
no uma tarefas das mais fceis e, por enquanto, no vou mostrar aqui como fazer, mesmo
porque estou fazendo testes de compilao antes de escrever como fazer, hehehehe...
Como estamos instalando o Debian, vamos agora ver como compilar um kernel mais novo
para
o
mesmo.
Como j mostrei aqui como atualizarmos o sistema, podemos agora passar para um kernel
mais moderno e funcional; no que o original no funcione, mas podemos conseguir mais
desempenho e acesso a outros dispositivos usando um kernel mais novo. Como j falei, no
Lenny o kernel est na verso 2.6.26.2 e a original do sistema, ento vamos atualizar o
mesmo para a verso 2.6.28.10 - note que isso um exemplo apenas, pois o kernel mais
atual est mais ou menos na verso 2.6.37; vamos ento nos focar nesse kernel que
funciona redondinho e, caso voc queira e se sinta capaz, pode sozinho compilar o kernel da
sua preferncia. Vamos ento baixar o kernel 2.6.28.10, abra o Terminal (sempre estando
como root) e digite:
wget -i http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.10.tar.gz
Isso vai fazer com que o cdigo-fonte seja baixado na pasta /usr/src/; depois de baixado,
volte ao Terminal e digite:
apt-get install build-essential libncurses5-dev
Isso vai preparar a sua mquina para fazer compilaes de programas e tal. Ou basta abrir
o Synaptic e mandar procurar por build-essential e libncurses5-dev, escolhendo-os para
instalao; basta escolher um mtodo ou outro. Aceite as dependncias mostradas e siga em
frente, esperando o fim do processo. Ento, no Terminal e depois de ter baixado o cdigofonte, digite " cd /usr/src/ " para entrar na pasta source e depois o comando abaixo para
descompactar o cdigo-fonte:
tar jxvf linux-2.6.28.10.tar.gz
Isso vai descompactar o arquivo para a pasta linux-2.6.28.10/ dentro da pasta /usr/src/;
agora entre nessa pasta digitando "cd linux-2.6.28.10/ ". Uma coisa que precisamos fazer
pegar um arquivo de configurao que est na pasta/boot/ do kernel que voc estiver

utilizando. No Terminal digite:


cp /boot/config-2.6.26-2-686 .config
Isso vai copiar o arquivo config-2.6.26-2-686 para a pasta /usr/src/linux2.6.28.10/ renomeado para o nome .config. Agora estamos prontos para comear a
compilao. No Terminal (dentro da pasta /usr/src/linux-2.6.28.10/) digite:
make menuconfig
Isso vai criar um arquivo de configurao a partir do arquivo .config que foi copiado para a
pasta do cdigo-fonte. Logo depois ir aparecer uma janela de configurao onde voc
poder escolher certos parmetros para o seu kernel:

Eu aconselho a deixar tudo do jeito que est caso voc no saiba o que est fazendo. Mas
se voc no vai usar outro processador na sua instalao, voc pode entrar no
item Processor type end features e escolher ali qual processador o kernel vai ser
compilado. Lembre-se que, no caso de uma eventual troca de mquina cujo processador
seja diferente do anterior (por exemplo, se voc tiver um AMD e passar a usar um Intel) a
mquina pode no trabalhar direito, ento pese a sua deciso de 'personalizar' o kernel. Uma
vez terminada a configurao do arquivo, selecione Exitpara sair do programa (diga SIM ou
YES para a pergunta que vai aparecer de salvar o arquivo de configurao) e depois digite
no Terminal:
make && make modules && make modules_install && make install

Isso far a compilao do kernel, a compilao dos mdulos do kernel, a instalao dos
mdulos do kernel j compilados e por fim a instalao do kernel compilado. Isso vai demorar
um pouco, cerca de duas ou trs horas, ento vai dar um passeio ou v fazer outra coisa na
mquina, como navegar na internet ou qq outra coisa que no demande muito recurso pois a
compilao quase que leva o processador ao seu mximo de uso, dependendo do
processador, claro. Uma vez terminado o processo, ainda no Terminal, voc precisa gerar a
imagem initrd e depois atualizar o grub para listar o novo kernel. Para isso tudo, basta ir
digitando os comandos abaixo:
cd
mkinitramfs

-o

initrd.img-2.6.28.2

/boot
2.6.28.2
depois:

update-grub
Pronto, kernel compilado, instalado e listado no Grub; para utilizar o novo kernel, reinicie a
mquina e escolha no boot o kernel mais novo que, por padro, o que vai estar
selecionado para dar boot. Note que voc dever instalar os drivers para placa de vdeo
como nVidia e ATI para esse novo kernel, ou mesmo de outro dispositivo qualquer que tenha
que ser instalado "na mo". Depois s reiniciar a mquina e usar a opo de boot com o
kernel
mais
novo.
Como j falei, talvez voc precise reinstalar o driver de vdeo (se voc tiver uma placa de
vdeo nVidia ou ATI) com a mudana do kernel mas, mesmo se tudo estiver funcionando, no
desinstale as outras entradas do kernel que no vo estar em uso para recuper espao em
disco, sempre prefervel de, em caso de pane no kernel principal, voc pode usar o kernel
anterior e continuar a usar a mquina ou consertar o que deu erro. Outra coisa, no use os
kernels marcados como RC (Release Candidate) pois so verses ainda em testes e no
muito
"confiveis".
Mas teste tudo antes de ficar com o kernel novo, ok?
Note que, no Debian Squeeze, o kernel "oficial" dele o 2.6.32.5, ento pode ser
interessante voc compilar um kernel mais novo, como o 2.6.34.8; o processo o mesmo e
os kernels podem ser encontrados no site kernel.org.

Outra coisa, sempre mantenha na sua mquina no mnimo o kernel mais antigo (ou original)
e o mais novo. Se voc daqueles que vivem compilando o kernel ou passou a fazer isso,
sempre teste bastante o kernel novo compilado antes de se livrar o anterior mas, repito, NO
desinstale o kernel original, pois ele que pode "salvar a sua vida" no caso de alguma pane
no kernel mais novo que vc est usando.