terça-feira, 20 de novembro de 2007

Tempos de Linux V - Atualizar Kernel

Olá pessoal,
os trabalhos no linux estavam bem intensos. Porém, após esgotar minhas tentativas, e acabar perdendo a funcionalidade gráfica do meu gNewSense, decidi formatá-lo para liberar espaço. Atualmente só estou usando o Mandriva One 2008.O, no qual, inclusive, estou escrevendo este texto agora.

Tentativa de Atualizar o Kernel do gNewSense
No gNewSense, eu tentei de todas as formas instalar o kernel certo para poder compilar o driver da minha rt8180, porém, não consegui. Sem escolhas tentei recompilar o Kernel, e foi ainda pior, no final: Kernel Panic: not syncing VFS: Unable to mount Root FS on unknown-block (0,0)

VFS: Cannont open root device "hda7" or unknown-block (0,0)

Pesquisei na net, e alegaram, que era porque eu não tinha habilitado o sistema de arquivos em modo built-in e os drivers da controladora IDE. Na primeira vez, realmente não habilitei, lá fui eu. Porém, o erro se manteve. De útil nessa experiência, foi que embora eu não tenha tido sucesso no meu novo kernel, estava tentando instalar o 2.6.23. Eu aprendi o processo.

Importante: Só estou citando a experiência que tive ao tentar compilar o kernel, como citei no alto, no meu caso não deu certo, porém, estas dicas podem ajudar outras pessoas, no entanto, não encare isso como um guia, e muito menos me culpe por não funcionar, ou ainda mais por danos em sua máquina. Assim como eu fiz aqui, quem se arrisca a atualizar o kernel sem saber, está indo por sua conta e risco.

Basicamente, é baixar o arquivo do www.kernel.org, descompactá-lo. Na pasta /usr/src/linux-versao, onde versão é a versão do kernel, no meu caso 2.6.23. Depois, criei um link simbólico para ele:

cd /usr/src
ln -s /usr/src/linux-2.6.23 linux

Dar um make [x][menu]config, onde o que está entre colchetes são dois comandos distintos. Então, temos:

make config (o que eu usei, embora não seja recomendado, mas os outros não funcionaram)
make xconfig (configurador gráfico, como o x do nome já indica, comigo não funcionou, por falta de uma tal biblioteca que não lembro o nome)
make menuconfig (em modo texto, também não funcionou, acho que por falta de biblioteca QT).

O processo de configuração é o mais importante, você deve ter um bom conhecimento do seu hardware para responder corretamente as perguntas. E habilitar somente o necessário, fato que melhora bastante o desempenho da máquina. Você pode configurar tudo, ou tentar usar, o arquivo atual de configuração. Para isto bastaria copiá-lo da pasta /boot.

cp /boot/config-atual /usr/src/linux/.config

Nesse caso, durante a configuração você seria perguntado sobre possíveis incompatibilidades. Mas vindo de um arquivo de configuração funcional, as chances de compilação funcionar seriam maiores. (eu não tive tempo de testar essa opção)

Se tudo correr certo, você monta uma imagem compactada do Kernel. Aqui, eu dei um make antes. E na hora de montar a imagem foi bem rápido. O comando para montar a imagem é (/usr/src/linux):

make bzImage

Este comando cria uma imagem compactada do kernel em arch/i386/boot com o nome bzImage. Esse arquivo deve ser copiado para a pasta /boot e referenciado no /boot/grub/menu.lst e depois dar um update-grub.

Depois, você usa na pasta /usr/src/linux:

make modules

Esse comando vai criar os módulos que você determinou na configuração.

make modules_install

Esse comando instala os módulos.

Depois é dar um reboot e testar. Se quiser criar uma nova entrada ou atualização.

make install

Bem, comigo não funcionou, mas quem sabe vocês tenham melhor sorte. ;)
Existem ótimos tutoriais sobre isso na net, tentarei trazer alguns links e atualizar este artigo.

LINKs:

http://br.kernelnewbies.org/docs/howto/kernel-new/x101.html

http://br.kernelnewbies.org/docs/howto/kernel-new/x668.html

Abraços



----------------
Now playing: Pearl Jam - given to fly
via FoxyTunes

Nenhum comentário:

Postagens populares