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/