Os passos seguidos pelo tutorial foram realizados na distribuição
Conectiva
Linux 9.0, mas servem como base para todas as outras
distribuições.
Nos exemplos abaixo usarei o diretório /root para guardar meus
downloads.
Não esqueça de instalar os pacotes
task-kernel-compiling e
task-c++-devel.
Faça o download do kernel no site
www.kernel.org (na data deste artigo o kernel já está em sua versão 2.6.4).
Faça também o download do pacote
module-init-tools, ele é
necessário para fazer seu kernel novo funcionar:
Compilando o module-init-tools
Descompacte o arquivo module-init-tools no diretório de sua preferência,
entre no diretório criado e execute o script de configuração do mesmo:
# ./configure --prefix=/
Em seguida:
# make moveold
Isto irá renomear os comandos para trabalhar com módulos para *.old,
por exemplo,
lsmod passa para
lsmod.old.
Execute:
# apt-get install glibc-devel-static
Isso irá instalar o pacote glibc-devel-static, necessário para compilar
o module-init-tools.
E então:
# make install
Para converter seu
/etc/modules.conf no novo arquivo
/etc/modprobe.conf, execute:
# ./generate-modprobe.conf /etc/modprobe.conf
Para maiores informações sobre a instalação do module-init-tools, acesse
a documentação presente no diretório em que você está, como a FAQ,
README, etc.
Compilando e instalando o kernel 2.6.4
Descompacte o arquivo do kernel 2.6.4 para dentro do diretório
/usr/src:
# tar xvjf linux-2.6.4.tar.bz2 -C /usr/src
Vá para o diretório
/usr/src e verifique se existe um link chamado
"linux" apontando para uma versão antiga de kernel e apague, então crie
outro link apontando para o novo kernel:
# ln -sf linux-2.6.4 linux
Entre no diretório
linux (link que acabou de criar) e execute:
# make menuconfig
Serão exibidos os menus com as opções de configuração do seu kernel.
Lembre-se que a maioria das coisas no Conectiva Linux funcionam através
de módulos.
Execute:
# make
# make modules_install
Copie o arquivo
/usr/src/linux/System.map para o
/boot:
# cp /usr/src/linux/System.map /boot
Copie o arquivo
/usr/src/linux/arch/i386/boot/bzImage (este é o
seu kernel compilado) para o
/boot
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel-2.6.4
NOTA: neste exemplo já copiei e renomeei o kernel para kernel-2.6.4.
Baixe o pacote
mkinitrd-3.5.14-1.i386.rpm em:
http://www.las.ic.unicamp.br/pub/.../mkinitrd-3.5.14-1.i386.rpm
Instale-o no sistema com:
# rpm -ivh mkinitrd-3.5.14-1.i386.rpm
Se tiver problemas com a instalação do pacote, tente:
# rpm -ivh mkinitrd-3.5.14-1.i386.rpm --force
Agora já podemos criar nosso arquivo
initrd, que será necessário caso
você esteja utilizando um sistema de arquivos com journaling, como o EXT3
e o ReseirFS por exemplo (man mkinitrd).
Vá para o diretório
/lib/modules e verás que foi gerado um diretório
chamado "2.6.4", que corresponde aos módulos que você compilou para o
kernel 2.6.4, certo ?!!
# cd /lib/modules
# mkinitrd /boot/initrd-2.6.4.img 2.6.4
Neste ponto seu kernel foi compilado e a imagem dele já está no
/boot, assim como o mkinitrd, só falta então configurar o seu
Boot Loader.
No meu caso, uso o GRUB, olha a configuração abaixo que acrescentei no
meu
/boot/grub/menu.lst: