Índice das dicas

Instalando o Kernel do Sidux no Kurumin 7

Por Carlos E. Morimoto em 14 de março de 2008 às 16h07

0

O Kurumin 7 utiliza por padrão o Kernel 2.6.18.1-kanotix-1, uma versão relativamente antiga, que já apresenta problemas ao rodar em máquinas com hardware mais atual. Atualizar o Kernel permite dar um novo fôlego ao sistema, permitindo que você se beneficie de todas as melhorias e novos drivers incluídos nas versões recentes.

É possível atualizar o Kernel do sistema diretamente via apt-get, utilizando os próprios Kernels disponibilizados nos repositórios Debian, via apt-get, como em:

# apt-get install linux-image-2.6.22-4-486

Mas, se você deseja uma atualização direta do Kernel incluído no Kurumin, incluindo patches e drivers adicionais, pode instalar a versão atualizada, disponibilizada pela equipe do Sidux. O Sidux sugiu da divisão da equipe do Kanotix, onde, devido a divergências internas, o SLH (responsável pelo desenvolvimento do Kernel) e outros desenvolvedores decidiram criar uma nova distribuição, continuando o trabalho anterior: http://sidux.com

Como o Sidux é baseado no Debian Unstable, é necessário fazer algumas modificações no sistema para utilizar o novo Kernel. Graças ao apt-get, a atualização é quase sempre feita sem problemas, mas, de qualquer forma, a atualização é sempre um processo delicado, que deve ser feito com cautela.

Para instalar o Kernel do Sidux no Kurumin 7, o primeiro passo é editar o arquivo "/etc/apt-sources.list", adicionando o repositório do Sidux e o repositório do Debian Unstable, sem alterar as linhas anteriores:

deb http://debian.tu-bs.de/project/sidux/debian/ sid main contrib non-free firmware fix.main fix.contrib fix.non-free
deb http://ftp.br.debian.org/debian unstable main contrib non-free

(note que apesar da largura da página não permitir preservar a formatação original, são apenas duas linhas, começadas com "deb")

Em seguida, rode o apt-get update para que o apt baixe a lista dos pacotes disponíveis nos novos repositórios:

# apt-get update

Acesse agora a pasta do repositório do Sidux onde ficam os pacotes do Kernel para escolher qual versão usar:

http://debian.tu-bs.de/project/sidux/debian/pool/main/l/linux-sidux-2.6/

Você precisa de três pacotes, linux-headers-common, linux-headers-sidux e linux-image, como em:

linux-headers-2.6.24-2.6.24.3.slh.6-common_2.6.24-17_i386.deb
linux-headers-2.6.24-2.6.24.3.slh.6-sidux-686_2.6.24-17_i386.deb
linux-image-2.6.24-2.6.24.3.slh.6-sidux-686_2.6.24-17_i386.deb

Naturalmente, a versão dos pacotes pode variar de acordo com o momento em que estiver lendo essa dica, mas os passos gerais continuam os mesmos. Utilize sempre as versões terminadas com "i386", que são os pacotes "genéricos", que funcionam em qualquer processador.

Os pacotes com a extensão "amd64" são compilados para processadores de 64 bits, e não rodam no Kurumin 7, que utiliza pacotes compilados para processadores de 32 bits.

Comece instalando os pacotes linux-headers-common e linux-headers-sidux, que contêm os headers do Kernel:

# apt-get install linux-headers-2.6.24-2.6.24.3.slh.6-common
# apt-get install linux-headers-2.6.24-2.6.24.3.slh.6-sidux-686

(veja que os nomes são os mesmos dos pacotes disponíveis no repositório e a versão pode variar)

O próximo passo é rodar o "apt-get -f install" e deixar que o apt-get atualize o gcc as bibliotecas necessárias a partir da árvore instável do Debian. Este é justamente o ponto mais problemático da instalação:

# apt-get -f install

Isso vai atualizar diversos pacotes do sistema em relação ao Debian Unstable, incluindo a versão do compilador gcc instalada. Depois da atualização, recrie o link "/usr/bin/gcc" apontando para a nova versão. Isso previne problemas ao instalar programas que geram módulos para o Kernel, como o VMware:

# cd /usr/bin
# ln -sf gcc-4.2 gcc

Depois de tudo isso, podemos finalmente instalar o pacote principal do Kernel:

# apt-get install linux-image-2.6.24-2.6.24.3.slh.6-sidux-686

Durante a instalação do novo Kernel, é exibido um aviso perguntando (em Inglês) se você deseja abortar a instalação. O default é 'yes', ou seja, abortar. Isso existe para evitar que leigos executem o processo de instalação sem informação suficiente e acabem danificando o sistema.

Para realmente atualizar o Kernel, é necessário que você preste atenção na pergunta e responda 'no' para que a instalação continue.

O próximo passo é editar o arquivo "/boot/grub/menu.lst", adicionando a entrada referente ao novo Kernel. Cheque o conteúdo da pasta /boot para ver os nomes corretos dos arquivos da imagem do Kernel e do initrd:

title 2.6.24-sidux
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-2.6.24.3.slh.6-sidux-686 ro nomce quiet apm=power-off vga=791
initrd /boot/initrd.img-2.6.24-2.6.24.3.slh.6-sidux-686

Note que a linha "root" inclui a partição onde o sistema está instalado, seguindo a nomemclatura do Grub, onde os HDs e as partições são números a partir do zero. O "(hd0,0)" corresponde à primeira partição do primeiro HD. Se o sistema está instalado na segunda partição do primeiro HD, a entrada seria "(hd0,1)", e assim por diante.

Para mais detalhes, leia minha dica sobre a configuração do Grub:

folder_crystal Configurando o grub
O lilo foi um dos primeiros gerenciadores de boot usados no Linux. Ele foi o mais usado durante muito tempo, mas tem sido gradualmente substituído pelo grub, que oferece mais recursos. O principal motivo é que o lilo utiliza uma configuração mais simples e muito mais simples de entender. Apesar disso, o grub também faz bem seu trabalho e permite que o sistema utilize agora um sistema muito mais robusto de detecção de outros sistemas instalados. Embora seja mais "enjoado", o grub não é tão complicado como pode parecer à primeira vista. Vamos aproveitar a deixa para aprender um pouco mais sobre ele.

Aqui temos um exemplo do arquivo de configuração completo, onde o Kernel novo passa a ser usado por padrão, mas é mantida a entrada para o Kernel antigo:

default 1
timeout 9
color cyan/blue white/blue
gfxmenu (hd0,0)/boot/message

title Kurumin Linux
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-slh-up-2 ro nomce quiet apm=power-off vga=791
initrd /boot/initrd.img-2.6.18.1-slh-up-2

title 2.6.24-Sidux
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-2.6.24.3.slh.6-sidux-686 ro quiet vga=791
initrd /boot/initrd.img-2.6.24-2.6.24.3.slh.6-sidux-686

Se você reiniciar o micro nesse ponto, muito provavelmente o sistema vai parar durante o boot, exibindo repetidamente a mensagem:

/bin/cat: /sys/block/hda/dev: No such file or directory
Waiting 1 seconds for /sys/block/hda/dev to show up

Este erro acontece por causa de uma falha na geração do initrd, que contém os módulos usados pelo Kernel na fase inicial do boot. Para resolver o problema, comece atualizando o yaird via apt-get:

# apt-get install yaird

Em seguida, edite o arquivo "/etc/yaird/Default.cfg" e adicione as duas linhas abaixo, dentro da seção onde estão outras linhas "MODULE:

MODULE ide-generic
MODULE ide-disk

Veja o trecho do arquivo depois de incluídas as novas linhas:

# evdev implements /dev/input/eventX, devices that present
# keyboard and mouse input in a manner independent from
# the console. It also helps yaird to detect what kind of
# keyboard is connected to the system. This module is not
# necessary to boot the system.
MODULE mousedev
MODULE evdev
MODULE ide-generic
MODULE ide-disk

Depois das alterações, remova o arquivo initrd antigo e gere o novo. Veja que a variável "$VER" deve conter a versão do novo Kernel:

# VER="2.6.24-2.6.24.3.slh.6-sidux-686"
# rm -f /boot/initrd.img-$VER
# mkinitrd.yaird -o /boot/initrd.img-$VER $VER

Com isso, a configuração está completa. Verifique mais uma vez a configuração no arquivo /boot/grub/menu.lst e reinicie o micro para testar. Se algo der errado, você pode voltar a usar o Kernel antigo.

Nessa versão, não é necessário alterar as entradas "/dev/hda" por "/dev/sda" no fstab como em outras versões anteriores do Kernel, nem alterar a lista dos dispositivos no arquivo "/boot/grub/device.map", mas isso pode voltar a mudar no futuro, por isso é sempre interessante dar uma olhada nos change-logs antes de instalar atualizações futuras.

Uma observação importante é que, ao atualizar o Kernel, você perde a instalação de qualquer driver extra instalado manualmente, como o driver da nVidia ou softmodems, pois os módulos são amarrados à versão do Kernel para a qual foram gerados. O mesmo se aplica a programas como o VMware, que dependem de módulos de Kernel gerados durante a instalação.

Depois de atualizar o Kernel, é necessário que você reinstale todos eles, aproveitando para atualizar para as novas versões.



Sem comentáriosPor Carlos E. Morimoto. Revisado 14 de março de 2008 às 16h07

Comentários