Professional Documents
Culture Documents
EDIGLEISON DA SILVA BARBOSA FRANCISCO DE ASSIS DA SILVA MATHEUS MEDEIROS DA CRUZ OTVIO SILVA PIRES PAULO TARSO JUNIOR
QUIXAD 2012
1 Primeiros passos
sero necessrio privilgios de super usurio: $ su # apt-get install wget tar bzip2 build-essential libncurses5-dev kernel-package Primeiramente voc deve conseguir a verso do kernel que mais se encaixe as suas necessidades, para descobrir qual verso voc est usando use um dos comandos: # uname -r # cat proc/version # dmesg | grep Linux version Normalmente recomendado baixar a verso estvel mais atual, que no nosso caso a 3.4.2. Voc pode encontra-l no site http://kernel.org/, que organizado pela Linux Kernel Organization, baix-lo diretamento no browser por HTTP, FTP ou atrves do comando: # wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.2.tar.bz2 Dica: Caso no queira manter o arquivo do kernel compactado aps a compilao, mude para a pasta /tmp antes de baixar o arquivo. Com o arquivo no disco o prximo passo descompact-lo # tar -xjvf linux-3.4.2.tar.bz2 -C /usr/src
O arquivo deve ser descompactado no diretrio /usr/src pois este armazena o cdigo-fonte do kernel com seus arquivos de cabealho. A descompactao cria automaticamente um diretrio homnimo ao arquivo, o recomendvel renome-lo para linux-suaverso no nosso caso: linux-3.4.2 Entre no diretrio do seu novo kernel. # cd /usr/src e logo em seguida criar um link simblico para esse diretrio # ln -s linux-3.4.2/ linux
2 Configurao
Agora entra a parte mais complexa desse processo: a configurao. Aqui voc dever escolher quais mdulos estaro presentes no seu kernel e como eles sero "acoplados". Existem trs formas de se acoplar um mdulo ao kernel: atravs da opo Y, ele estar acoplado diretamento, inflando o seu tamanho; com a opo M, ele ser acoplado como um mdulo do kernel (bom para drivers de som, vdeo e etc); ou N, onde o mdulo no estar presente no kernel. Para que seja feita esta escolha, existem trs interfaces disponveis: config - Sero feitas perguntas e voc ir respondendo qual ao tomar (como Y, M, N ou ? para uma ajuda); menuconfig - Seleo dos mdulos via menu baseado em texto, radiolists e dilogo; xconfig - Seleo dos mdulos via menu no modo grfico. indicado que as compilaes sejam feitas totalmente em modo texto para se economizar memria e evitar problemas, por isso sugiro que voc use a opo menuconfig. Para acessar qualquer uma das opes, estando dentro do diretrio do kernel, digite: # make <opo> ex.: # make menuconfig Voc tem que selecionar as opes de acordo com seu hardware, seguem um explicao sobre cada um dos menus General Setup: Trata de caractersticas especficas de configurao do kernel Enable loadable module support: Habilita o uso de mdulos pelo kernel. Processor type and features:- configuraes relativas a processadores, como: o tipo do processador, a famlia, etc.
Power management and ACPI options: Trata de recursos de gerenciamentos de energia; Bus options (PCI, PCMCIA, EISA, MCA, ISA): Opes de suporte aos barramentos; Executable file formats / Emulations: Formatos de arquivo executveis e emuladores, como por exemplo o binrio MISC, no caso que voc tenha programas que precisam de interpretador como Java, Python, .Net ou emuladores DOS. Netwoking support: Habilita ferramenta de Rede, mesmo que sua mquina no esteja conectada a uma rede algumas aplicaes podem exigir suporte rede. Firmware Drivers: Possibilita a comunicao entre o sistema e firmwares de uma determinada empresa. File systems: As opes aqui dizem respeito ao sistema de arquivos que voc usar e ao qual o seu kernel ter suporte. Device drivers: Aqui onde sero habilitados os controladores de dispositivos dependendo da caracterstica do hardware.
Se quiser manter sua configurao atual guardada caso tenha algum problemas execute o comando abaixo: $ sudo make oldconfig
3 Compilao
A partir de agora teremos duas opes: usar o kernel-package para criar um pacote que pode ser executado em qualquer outra distribuio baseada em Debian ou fazer o passo a passo manualmente.
Pronto! agora que j compilamos e instalamos os mdulos podemos finalmente instalar a nova verso do kernel # make install Isso ir instalar trs arquivos no diretrio /boot assim como modificar seu arquivo de configurao do grub. System.map-3.4.2 config-3.4.2 vmlinuz-3.4.2 initrd.img-3.4.2
# ls /boot Imagens initrd contm controladores de dispositivos que so necessrios para carregar o resto do sistema operacional mais tarde. caso o instalao do kernel no tenho criado o diretrio initrd.img-3.4.2 diretamente seguro cri-lo: # mkinitrd -o initrd.img-3.4.2 3.4.2 ou # sudo update-initramfs -u -k 3.4.2 para atualizar. Caso na d certo: # sudo update-initramfs -c -k 3.4.2 para cri-lo. Por precauo crie o arquivo: # vim /boot/grub/menu.lst Cole o texto: title root kernel initrd savedefault boot Debian GNU/Linux, kernel Default (hd0,0) root=/dev/sda ro /boot/initrd.img-3.4.2 2.6.25
/boot/vmlinuz
# update-grub # reboot
4 Bibliografia
Vivet Gite. (2005). How to: Compile Linux kernel 2.6. Available: http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html. Last accessed 14th Jun 2012. Jos Lopes de Oliveira Jnior. (2005). Compilao comentada do kernel. Available: http://www.vivaolinux.com.br/artigo/Compilacao-comentada-do-kernel?pagina=1. Last accessed 14th Jun 2012. Gleydson Mazioli da Silva . (2010). Guia Foca GNU/Linux - Intermedirio+Iniciante. Available: http://www.guiafoca.org/?page_id=326. Last accessed 14th Jun 2012. Wiki. (2012). Kernel/Compile. Available: https://help.ubuntu.com/community/Kernel/Compile. Last accessed 14th Jun 2012. KernelTeam/GitKernelBuild. (2011). GitKernelBuild. Available: https://wiki.ubuntu.com/KernelTeam/GitKernelBuild. Last accessed 14th Jun 2012. Adrian Marius. (2012). Compiling Linux Kernel 3.4.x Vanilla Final - Ubuntu/Debian way . Available: http://mapopa.blogspot.com.br/2009/01/compiling-2.html. Last accessed 10th jun 2012.
Ferreira, Rubem E. (2008). Linux: guia do administrador do sistema. 2nd ed. So Paulo: Novatec Editora. p314-330.