Ai galera resolvi hoje escrever um breve artigo de compilação de kernel, lembrando que, como nem todos tem o mesmo pc vamos abordar a compilação de uma forma generica, ficando a seu cargo escolher as opções que melhor se adaptam ao seu pc, então vamos deixar de conversa mole e partir para compilação;
Antes de começar:
Para se compilar é necessarios ter o build-essentials e o kernel-package que pode ser instalado assim
diego@rocha:~$ sudo apt-get install build-essentials kernel-package
1° o primeiro passo é baixar o codigo fonte do kernel, isso pode ser feito em
www.kernel.org,
2° depois de baixado o codigo fonte iremos descomprimir, se você baixou em formato tar.bz2 use o seguinte comando
diego@rocha:~$ sudo tar -jxvf linux-XXXXX.tar.bz2 -C /usr/src
se baixou o codigo fonte com o formato .tar.gz use esse comando
diego@rocha:~$ sudo tar -zxvf linux-XXXXX.tar.gz -C /usr/src
3° pronto já descompactamos e ja poderemos começar a compilação,
3.1 - vá ate a pasta /usr/src e crei um link do seu kernel que acabamos de descompactar para a pasta linux isso pode ser feito assim,
diego@rocha:~$ cd /usr/src
diego@rocha:/usr/src$ sudo rm linux obs: esse comando caso voce ja tenha uma pasta antiga com nome de linux
diego@rocha:/usr/src$ sudo ln -s linux-XXXXX linux
obs: lembrando sempre que o XXXXX do linux-XXXXX é a versão do kernel que você baixou3.2 - agora vamos vamos copiar o .config generico do seu kernel atual para podermos ter uma base, e não esquecer de selecionar alguma opção fundamental, é sempre bom usar um config ja existente de um kernel que esteja funcionando bem, para não corrermos o risco de esquecer de alguma opção e ver a tão temida mensagem de kernel-panic, então vamos fazer isso, geralmente os "configs" que ficam na pasta /boot vem com o numero da versão do kernel no final exemplo config-2.6.18, então vamos copiar ele para o /usr/src/linux com o seguinte comando
diego@rocha:/usr/src$ cd linux
diego@rocha:/usr/src/linux$ cp /boot/config-XXXX .config
obs: Pegue sempre o config do kernel mais recente para uma melhor compatibilidade Pronto kernel descopactado, config copiado vamos agora para a proxima etapa;
4° A próxima e mais dolorida etapa é a configuração, é o momento crucial da compilação, que exige que voce tenha bom conhecimento do hardware que possui, deslizes não são aceitos em uma compilação de kernel por isso usamos o config do seu kernel que esta funcionando, imagine que seu sistema de arquivos é ext3 e voce compila o kernel com a opção ext3 desativada ou como modulo, nem carregaria seu sistema, por isso é bom conhecer o que voce tem no seu pc e o que é fundamental para o funcionamento dele, lembre-se sempre que o
www.google.com.br/linux esta ai para te ajudar então se voce acha que deve ativar uma opção pesquise antes sobre ela no google ele com certeza vai te explicar melhor o que fazer; a escolha entre modulo( carregado quando necessario) e build-in( carregado no boot) tambem é fundamental para um bom desempenho do sistema, por isso não va com pressa, tenha calma e va devagar na hora da escolha,
4.1° então vamos lá, se você foi esperto e leu o README que vem com o kernel você viu que temos varias opções a respeito de como fazer a configuração, podemos usar o make menuconfig, o oldconfig, o xconfig e o gconfig, se voce usa kde o xconfig é mais aconselhado pq usa a biblioteca Qt, se usa o gnome é mais aconselhado o gconfig que usa a Gtk+, se você prefere uma opção mais simples pode usar o menuconfig, que usa o dialogs para a escolha das opções, o oldconfig eu não aconselho, mais fica a seu criterio experimentar ele ou não, quando se decidir entra qual usar pode chamar ele no terminal
diego@rocha:/usr/src/linux$ make menuconfig ***se escolheu menuconfig
diego@rocha:/usr/src/linux$ make xconfig ***se escolheu xconfig
diego@rocha:/usr/src/linux$ make gconfig ***se escolheu gconfig
diego@rocha:/usr/src/linux$ make oldconfig ***se escolheu oldconfig
4.2° depois de escolhida a opção de configuração, você só terá que carregar o .config que copiamos para a pasta /usr/src/linux lembra, então vai na opção load ou abrir, e carregue o arquivo .config q esta no mesmo diretorio do linux em /usr/src/linux/.config, agora é com você escolher o que lhe convém,
5° depois de escolhido tudo que queria e tendo certeza que não se esqueceu de nada, vamos compilar, com o seguinte comando
diego@rocha:/usr/src/linux$ sudo make
diego@rocha:/usr/src/linux$ sudo make modules_install
Isso pode demorar horas e ate dias dependendo da sua maquina e da quantidade de opções escolhida, então nessa hora é bom ir tomar um cafezinho assistir um filme sei la XDD, se tudo ocorreu bem ja podemos partir para a etapa final,
6° agora vamos copiar o bzImage para a pasta boot com o seguinte comando
diego@rocha:/usr/src/linux$ sudo cp arch/i386/boot/bzImage /boot/vmlinuz-XXXXX
obs: relebrando o XXXXX é a sua versão do kernel7° vamos copiar o System.map
diego@rocha:/usr/src/linux$ cp System.map /boot/System.map-XXXXX
7.1° E vamos linkar o System.map-XXXXX para o System.map
diego@rocha:/usr/src/linux$ ln -s /boot/System.map-XXXXX /boot/System.map
8° e pro ultimo copiar o .config para o /boot para usarmos como base em uma proxima compilação
diego@rocha:/usr/src/linux$ cp .config /boot/config-XXXXX
8.1° se voce compilou seu kernel com o necessario para uma inicialização em build-in pule essa parte se não sabe nem do que to falando faça isso
se usa ext3
diego@rocha:/usr/src/linux$ cd /boot
diego@rocha:/boot$ mkinitrd -c -k XXXXX -m jbd:ext3 -f ext3 -r /dev/hdXX
se usa reiserfs
diego@rocha:/usr/src/linux$ cd /boot
diego@rocha:/boot$ mkinitrd -c -k XXXXX -m reiserfs
obs: Sempre lembrando que o XXXXX é o numero da versão do seu kernelse usa outro tipo de Sistema de Arquivos faça isso
www.google.com.br/linux e pesquise sobre como fazer o initrd do seu FS
9° agora adicione no grub o novo kernel,
diego@rocha:/boot$ gedit /boot/grub/menu.lst
e acrescente
#kernel-XXXX
title Kernel-XXXXX
root (hd0, 0) **** aqui voce coloca sua partição
kernel /boot/vmlinuz-XXXXX ***** se lembra de mudar o XXXXX para seu kernel
root = /dev/hda1 ro vga=773 **** aqui tbm suas opções
initrd = /boot/initrd.gz
10° bom pessoal é isso, se funcionou blza parabens, se não funcionou blza, tenta denovo só que dessa vez com mais atenção e sempre usando nosso grande amigo google, peço desculpas pelos erros de ortografia e qualquer sugestão sera muito bem vinda, é isso ai espero ter ajudado t+++