quinta-feira, 23 de abril de 2009

Atualizando o Kernel

O Slackware em versão 11, vem com 3 Kernels diferentes, prontos para o usuário escolher. As opções são o default, com suas variantes (bare, bareacpi, oldcd, mca e cia), 2.4.33, o kernel huge26, versão 2.6.17.13 e o kernel test26, versão 2.6.18. Claro, se ele não escolher cai automaticamente no bare.i do 2.4.33.

Vamos agora instalar a versão 2.6.17.13

1) A primeira coisa a fazer é remover os pacotes do kernel atualmente em uso. Digite pkgtool, procure a opção remove e aguarde a listagem. Selecione os pacotes (pressionando a barra de espaço em cima deles) kernel-modules-2.4.33-i486-1, kernel-headers-2.4.33 e kernel-source-2.4.3. Aperte OK para fazer a remoção. Sem medo!

2) Depois, monte o dvd do Slackware (ou o cd2). Com o dvd montado, acessar o diretório /extras/linux-2.6.17.13. Lá você vai encontrar os arquivos: kernel-generic-2.6.17.13-i486-1.tgz, kernel-modules-2.6.17.13-i486-1.tgz, kernel-headers-2.6.17.13-i386-1.tgz e kernel-source-2.6.17.13-noarch-1.tgz.Instale-os com o comando installpkg *.tgz. Demora mais no kernel sources, mas uns 2 minutos e estará instalado.

3) Acesse o diretório /boot. Ao aplicar o comando ls, haverá um arquivo vmlinuz-generic-2.6.17.13. É a imagem do kernel, o que faremos bootar. Porém, essa é uma imagem genérica. E nela, infelizmente, não há suporte aos sistemas de arquivo! :D Sim, não estou brincando. Para não resultar num belo de um “Panic! At the Kernel”, devemos fazer um initrd.gz para que o módulo do reiserfs (ou sistema de arquivos utilizado) seja chamado pelo Lilo ao bootar o kernel. Os comandos necessários para isso são:

cd /bootmkinitrd -c -k 2.6.17.13 -m reiserfs

Alguns segundos depois, poderá verificar no comando ls que foi gerado um arquivo /boot/initrd.gz. Precisaremos dele agora!

4) Depois do initrd estar pronto, devemos agora fazer a atualização no rc.modules. O arquivo /etc/rc.d/rc.modules um link simbólico apontando para o arquivo /etc/rc.d/rc.modules-2.4.33. Como isntalamos o kernel modules, foi criado um novo arquivo chamado /etc/rc.d/rc.modules-2.6.17.13. Devemos atualizar o link para ele. Segue os comandos.

cd /etc/rc.d
rm rc.modules
ln -s /etc/rc.d/rc.modules-2.6.17.13 /etc/rc.d/rc.modules

5) Após instalarmos o source, modules, headers, imagem e gerarmos o initrd, está quase tudo pronto! Falta apenas atualizar o Lilo! Com seu editor predileto, abra o arquivo /etc/lilo.conf.

pico /etc/lilo.conf

Procure pela sessão Linux. Altere-a da seguinte maneira:

image = /boot/vmlinuz-generic-2.6.17.13
root = /dev/hda2 # <– mantenha a linha como a original. A minha partição é hda2.
label = Linuxinitrd = /boot/initrd.gz # <— inclua isso!! Sem isso é Kernel Panic!
read-only

Nenhum comentário:

Postar um comentário