Slackware - Como atualizar o kernel sem compilar

Publicado por Renan Rizato em 28/02/2007

[ Hits: 9.855 ]

 


Slackware - Como atualizar o kernel sem compilar



Olá. Fiquei muito animado com meu último artigo e resolvi mandar outro.. Abraços a todos. Então vamos ao que interessa.

Um acontecimento muito comum aos novos usuários Slackware é quando eles acabam instalando com o Kernel padrão, que ainda é da série 2.4. O Kernel 2.4 é extremamente estável, motivo pelo qual o Patrick ainda não o jogou pra escanteio =)

Mas várias aplicações (Bootsplash, controladoras SATA, até o ndiswrapper) simplesmente não compilam no kernel de série 2.4. Por falta de informação, as pessoas as vezes acabam mudando para outra distro ou compilando um Kernel do zero. Claro, nisso elas aprendem, mas é desnecessário na maioria dos casos. Vou lhes explicar.

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.

Assim partiremos do pressuposto que tu instalastes o Slackware 11 com kernel 2.4.33 e vai atualizar para o huge26.s (que tem até versão com multi-processamento). O mais importante nisso tudo é não reinicializar o computador até que todo o processo esteja feito. Isso é coisa séria, não seguindo tu ganha um belo de um Kernel Panic. Vamos prosseguir? :D

1) A primeira coisa a fazer é remover os destroços 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 CD2, do Slackware. Com o cd montado, acessar o diretório /extras/linux-2.6.17.13. Lá tu 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 /boot
# mkinitrd -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 instalamos 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


Após isso, os módulos atualizados subirão. Dê uma olhada no arquivo e descomente as linhas que haviam sido descomentadas no seu rc.modules anterior. Exemplo, /sbin/modprobe 8139too. :^)

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.

# vi /etc/lilo.conf

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

image = /boot/vmlinuz-2.6.17.13
root = /dev/hdXX # mantenha a linha como a original. Usei hdxx pois não sei qual é a sua partição :^) Comigo é /dev/hdb1.
label = Linux
initrd = /boot/initrd.gz # inclua isso!! É importantíssimo!!! Sem isso é Kernel Panic!
read-only

Salve o arquivo, e para fixar as alterações, rode o comando lilo. Respire fundo e pode reinicializar!!!!

Após isso, seu kernel deverá estar atualizado. Ainda deverão ser feitos alguns ajustes, como recompilar o driver da nvidia, é o caso mais comum. Porém depois de tudo isso, o desempenho aumentará e a compatibilidade será bem maior!

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Kernel compilado para o AA1 no UNR

NFtables – O Sucessor do IPtables (já no kernel 3.13)

Fazendo o kernel reconhecer memória acima de 4GB no Debian

Ubuntu 8.04 não instala: Solução

Compilar kernel 2.6.31 no Debian Lenny

  

Comentários
[1] Comentário enviado por tenchi em 28/02/2007 - 13:28h

Boa dica, mas não é necessário remover o kernel antigo.
Você pode ter quantos kernels quiser instalados, sem que um entre em conflito com o outro.
Basta ter uma entrada para cada um destes no arquivo do lilo ou grub.

O que normalmente ocorre é a substituição do link /boot/vmlinuz, mas aí é s´o adicionar o caminho exato da imagem do kernel no lilo, e tudo está blz.

Eu aqui mesmo tenho 3 versões do 2.6, sendo que uma é a que eu uso realmente (2.6.19-Ryo-Ohki), a que eu usava antes, que uso quando há algum driver que ainda não funciona no 2.6.19 (2.6.9-Washu), além de um outro que eu serve para testes.
O 2.4 eu abandonei de vez mesmo, mas mesmo assim, quando usava, compilava um pra minha máquina mesmo. Não sei pq, mas nunca consegui ficar muito tempo com o kernel original do slack... ;-)

Falow.

[2] Comentário enviado por douradoinfo em 30/05/2010 - 13:17h

Esta dica seria boa demais pra mim se ainda não tivesse aparecido a mensagem Kernel Panic. E aí, amigos, alguma sugestão para aqueles que já fizeram a coisa errada, ou seja, não previu o pânico? Junto com a mensagem, ainda aparece algo como root="...". Acho que é pra entrar com algum nome aí, mas não faço idéia. Obrigado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts