Sei sulla pagina 1di 8

SERVIO NACIONAL DE APRENDIZAGEM COMERCIAL SENAC

Disciplina: Administrao de Servidores Linux Prof. Mrcio Luciano Donada

COMPILANDO O KERNEL NO DEBIAN

ADILSON MARCOS PAGLIARINI EDUARDO RATKIEWICZ FERNANDA MACHADO DA SILVA MARCOS VINICIUS MOCELIN WALDIRENE ZAMONER

CHAPEC - SC, 201

2. O que um Kernel? O Kernel no o centro do sistema operacional. Ele o sistema operacional Linux todo, o resto parte da distribuio Linux. Dentre suas responsabilidades incluem a gesto de recursos do sistema, ou seja, a comunicao entre os componentes de hardware e software dentro desse sistema operacional. Ele comea a funcionar assim que o computador ligado, nesse momento ele inicia a deteco de todo o hardware indispensvel ao funcionamento da mquina (monitor, placa de vdeo dentre outros...). O Sistema Operacional carregado e assim que o usurio fizer o login, o Kernel passa a administrar as principais funes dentro do sistema operacional, isso inclui o gerenciamento da memria, dos processos, dos arquivos e de todos os dispositivos e perifricos. 2.1 Por que compilar um Kernel? Existem muitos motivos para a compilao de um Kernel Debian ou qualquer outro, dentre eles para otimizar o Kernel removendo drivers inteis para diminuir o tempo de arranque e suportar todos os dispositivos, ou ento voc pode querer atualizar o sistema, obtendo suporte a novos recursos e dispositivos de hardware e at mesmo para se livrar de Bugs. Enfim, no faltam motivos ou razes para a compilao ou recompilao de um Kernel.

3. Compilando um Kernel Debian Primeiramente voc deve ver se sua mquina tem o hardware necessrio para o mesmo, no mnimo para se fazer a compilao sua mquina tem que dispor de:

16MB de RAM (memria fsica) 100MHz de clock de processamento 100MB de espao em disco (memria virtual)

Alm disso, voc tem que saber qual o processador que sua mquina possui e o clock de processamento dele. Feito essa checagem pode se iniciar a compilao. Para esse artigo usamos uma mquina virtual com as seguintes configuraes:

384MB de RAM;

Processador Intel(R) Pentium(R) 4 CPU 3.00GHZ; 10GB de Disco Rgido.

Depois disso instalamos os seguintes pacotes e bibliotecas com os seguintes comandos # apt-get update gcc # apt-get install gcc Make # apt-get install make Kernel-package # apt-get install kernel-package libncurses5-dev # apt-get install libncurses5-dev libqt3-mt-dev # apt-get install libqt3-mt-dev Baixar o pacote que contm o cdigo-fonte mais atualizado do Kernel Linux, para esse artigo utilizamos a ltima verso estvel que a 2.6.39.2. Pode se fazer o download pelo navegador atravs do seguinte link http://www.kernel.org/ ou ento pelo comando # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.2.tar.bz2 Logo aps termos baixado o pacote, foi necessrio mover e descompactar o arquivo como usurio root com os comandos # mv linux-2.6.39.2.tar.bz2 /usr/src # tar -xjvpf linux-2.6.39.2.tar.bz2 Feito isso ento criamos um link simblico do /usr/src/linux apontando para /usr/src/linux-2.6.39.2.6 com o comando # ln -sf /usr/src/linux-2.6.39.2 /usr/src/linux Depois necessrio acessar o diretrio /usr/src/linux # cd /usr/src/Linux Nesse momento editamos o arquivo Makefile com o editor vim para personalizar a verso de nossa compilao. Alteramos a varivel EXTRAVERSION para o nmero de nossa arquitetura. Para os testes desse artigo foi usada a arquitetura i386.

Fonte: OS AUTORES. necessrio que na mquina esteja instalado corretamente o mnimo de softwares necessrios para fazer a compilao. Conseguimos uma lista com os softwares necessrios para a compilao de um Kernel da srie 2.6.
o o o o o o o o o o o o o o o o Gnu C Gnu make binutils 4inu-linux module-init-tools e2fsprogs jfsutils reiserfsprogs xfsprogs pcmcia-cs quota-tools PPP isdn4k-utils nfs-utils procps oprofile 2.95.3 3.79.1 2.12 2.10 0.9.10 1.29 1.1.3 3.6.3 2.6.0 3.1.21 3.09 2.4.0 3.1pre1 1.0.5 3.2.0 0.5.3 # # # # # # # # # # # # # # # # gcc v make version ld v fdformat version depmod V tune2fs fsck.jfs V reiserfsck V xfs_db V cardmgr V quota V pppd version isdnctrl showmount version ps version oprofiled version

Nem tudo na lista acima obrigatrio. Ser obrigatrio ter os itens instalados da lista acima apenas aqueles que o Kernel que estamos configurando suportar. O arquivo /usr/src/linux/.config armazena a configurao do Kernel. Este arquivo descreve o que dever ser incorporado ao Kernel e o que dever ser criado como mdulo (m). Incorporemos ao Kernel apenas o necessrio. O restante necessrio configuramos como mdulo. O que no foi necessrio retiramos. Isto

possibilita

um

maior

desempenho

por

parte

do

sistema.

O Kernel Linux pode ser modular, ou seja, o suporte bsico fica incorporado ao Kernel constantemente e o suporte a outros dispositivos, como por exemplo, uma placa de som, pode ser configurada como mdulo. Assim sendo, este mdulo da placa de som carregado na memria e plugado ao Kernel apenas quando o usurio estiver utilizando som no sistema. Isto otimiza o sistema, utilizando seus recursos sabiamente. Existe uma configurao padro para cada tipo de arquitetura de hardware no diretrio /usr/src/linux/arch. O nome do arquivo defconfig. preciso fazer uma cpia do arquivo defconfig para o diretrio raiz de compilao com o nome .config com o comando # cp f /usr/src/linux/arch/i386/defconfig /usr/src/linux/.config Sendo assim, ao iniciar a ferramenta de configurao, j ter alguns itens marcados. No ser necessrio iniciar do zero uma configurao. Devido verso a qual utilizamos para a compilao desse artigo no foi necessrio fazer essa etapa, porm, achamos interessante mostrar o que necessrio tambm para a compilao de um Kernel de uma verso mais antiga. Nesse momento necessrio que seja executado a ferramenta de configurao, j existe uma configurao pr-definida, isto se deve ao fato de termos copiado o arquivo defconfig para o diretrio raiz de compilao com o nome de .config. # make menuconfig ou ento pelo modo grfico # make xconfig Uma sugesto de que se marque com * os itens que sero incorporados ao arquivo do Kernel como, por exemplo, sistemas de arquivos que iremos utilizar em nossas parties. Marcar com m itens que sero criados como mdulo, ou seja, sero plugados ao Kernel apenas quando houver necessidade de uso. Para a realizao de nosso artigo utilizamos o comando # make menuconfig.

Fonte: OS AUTORES. Depois de feita toda a configurao necessria pr-compilao iremos colocar o Kernel para compilar com o comando # make-kpkg --initrd kernel_image OBS: nesta opo o "-- initrd", j adiciona no GRU o Kernel novo. Talvez aqui ele d um "warning" dizendo que melhor compilar deste jeito s se o Kernel foi homologado para o Debian. Ou ento # make bzImage Em nosso caso, utilizamos o make-kpkg --initrd kernel_image, se tivssemos utilizado o comando make bzlmage teramos que fazer o umas configuraes a mais para gravar as informaes no GRUB. Aps a compilao necessrio que se instale os mdulos com o comando # make modules_install Nesse momento deve-se copiar o Kernel (bzImage) para o diretrio /boot. O arquivo est no diretrio de acordo com a arquitetura que utilizamos. O comando # cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.39.2-i386-pc1 Nesse momento copiamos o arquivo System.map para o /boot com o comando

#cp /usr/src/linux/System.map /boot/System.map-2.6.39.2-i386-pc1 Agora criamos um link simblico para System.map com o comando # ln sf /boot/System.map-2.6.39.3-i386-pc1 /boot/system.map E ento copiaremos o diretrio .config para o /boot com o comando # cp /usr/src/linux/.config /boot/config-2.6.39.2-i386-pc1 Depois de feito isso foi necessrio criar um arquivo initrd com o comando # mkinitrd -o /boot/initrd-2.6.39.2-i386-c1.img 2.6.39.2-i386-pc1 Agora preciso configurar o GRUB, no foi necessrio regravar o GRUB no MBR ou partio especfica depois de feitas as alteraes. Feito todos esses passos a compilao esta pronta e para ver o resultado s reiniciar a mquina.

Referncias Bibliogrficas
http://www.tecmundo.com.br/1636-o-que-e-kernel-.htm; 2011 http://www.vivaolinux.com.br/dica/Compilar-kernel-no-Debian-Mamao-comacucar; 2011 http://www.vivaolinux.com.br/artigo/Compilando-um-kernel-Linux;2011 http://www.vivaolinux.com.br/dica/Compilando-kernel-no-Debian-com-apenasdois-comandos;2011