Atualizando o kernel
1,847 acessos
Introdução
Desculpe pela pretensão, mas tendo observado várias dúvidas de companheiros quanto à atualização do kernel de suas distros, resolvi sair do ghost e enviar este “mini – HOWTO” indicando os passos para a atualização do kernel… A única necessidade “real” de recompilar o kernel, para o usuário novato, é a de adequar o kernel recém-instalado a seu tipo de processador, para não subutilizar a máquina. Para isto é interessante uma primeira compilação.
Claro que a adequação do kernel ao tipo de hardware do usuário também é um bom motivo, mas o usuário comum pode esperar um pouco até dominar mais o Linux. Entretanto, há aqueles que não se contentam com uma simples compilação, e adoram perder horas de sono e convívio familiar, somente pelo prazer de “fuçar” na máquina. Felizmente eu me enquadro nessa categoria, e senti aquela “comichão” quando vi lançado o kernel 2.2.14 – meu slackware 7.0 não podia ficar para trás
Apesar de não acreditar muito em “recipes”, seguem os passos que executei para a atualização do kernel 2.2.13 para o 2.2.14, no Slackware.
A receita…
Os passos a seguir dizem respeito à compilação do kernel, com a construção e instalação de novos módulos, adequados às necessidades do usuário. Você deve estar logado como root:
# cp linux-2.2.14.tar.gz /usr/src # rm linux # tar -zxvf linux-2.2.14.tar.gz # mv /usr/src/linux /usr/src/linux-2.2.14 # ln -s /usr/src/linux-2.2.14 linux Neste ponto você deve ter, em /usr /src, os dois diretórios e um symlink: # pwd /usr/src # ls linux@ linux-2.2.13 linux-2.2.14 rpm sendmail Essa é a listagem em /usr/src em meu sistema. O link simbólico deve apontar para o diretório linux-2.2.14. É nele que o trabalho a seguir deve ser feito. Não delete o diretório linux-2.2.13 ainda, você pode precisar dele mais tarde, se as coisas saírem erradas. Continuando, os próximos passos devem ser executados em /usr/src/linux; # cd /usr/src/linux # make menuconfig O comando acima iniciará a configuração em modo gráfico do kernel. Opcionalmente, estando em algum ambiente X (KDE, WindowMaker, Blackbox …), o comando poderá ser: # make xconfig Escolha a opção “Store configuration to file” e salve a configuração atual em / com um nome bem claro, do tipo “config.original” ou algo parecido. Mais tarde, se você precisar restaurar a configuração original, basta rodar o make menuconfig e carregar os parâmetros a partir deste arquivo. Em seguida escolha a opção “Quit without save” e saia. Continuando, digite (em /usr/src/linux): # make mrproper Isto apagará a configuração anterior do kernel no sistema. Em seguida, novamente: # make menuconfig (ou make xconfig, se for o caso) Escolha as opções que quiser e adapte o kernel ao seu hardware. Salve a configuração e novamente no prompt: # make dep # make clean # make zImage Esses comandos criam as dependências necessárias, limpam arquivos temporários e de instalação, e criam a imagem compactada do novo kernel, em /usr/src/linux/arch/i386/boot .No meu caso, como a imagem do kernel a ser gerada é muito grande, tenho de usar “make bzImage” ao invés de “make zImage”. Significa, literalmente, “make a BIG zImage” … Vá agora para o diretório /lib/modules. O comando “ls” dá a listagem do conteúdo: # cd /lib/modules # ls 2.2.13 O único diretório listado, 2.2.13, é onde se encontram os módulos originais da primeira instalação. Caso você esteja apenas compilando um kernel existente, renomeie para, por exemplo, 2.2.13.old. Caso seja uma atualização, deixe-a intacta, pois a seguir será criado um novo diretório. Volte para /usr/src/linux: # cd /usr/src/linux Digite os comandos: # make modules # make modules_install Os comandos acima criarão e instalarão os novos módulos em /lib/modules. No caso da atualização desta receita, será criado um diretório “2.2.14″ em /lib/modules. O trabalho de criação dos módulos pode demorar um pouco, dependendo do tipo de máquina (processador, RAM disponível, etc.). Após o prompt ser novamente liberado, mova a imagem compactada do kernel, de /usr/src/linux/arch/i386/boot para o diretório raiz (/): # mv /usr/src/linux/arch/i386/boot/bzImage / Vá para o diretório raiz, e renomeie o novo kernel recém-compilado para um nome facilmente identificável: # cd / # mv bzImage vmlinuz-2.2.14 O novo kernel, agora, terá o nome acima, vmlinuz-2.2.14. Observe que será necessário indicar ao LILO qual a imagem compactada que deverá ser inicializada no boot da máquina. Vá para /etc e edite o arquivo lilo.conf: # cd /etc # pico lilo.conf (ou outro editor) Meu /etc/lilo.conf se parece com isto: # LILO configuration file # generated by `liloconfig' # # Start LILO global section boot = /dev/hda message = /boot/boot_message.txt prompt timeout = 20 vga = normal image = /vmlinuz root = /dev/hda1 label = Linux read-only # Linux bootable partition config ends Veja que apenas uma imagem pode ser inicializada. Para adicionar a nova imagem, na seção: image = /vmlinuz root = /dev/hda1 label = Linux read-only adicione mais uma entrada: image = /vmlinuz-2.2.14 root = /dev/hda1 label = New read-only O arquivo lilo.conf deve ficar assim: # LILO configuration file # generated by `liloconfig' # # Start LILO global section boot = /dev/hda message = /boot/boot_message.txt prompt timeout = 20 vga = normal image = /vmlinuz root = /dev/hda1 label = Linux read-only image = /vmlinuz-2.2.14 root = /dev/hda1 label = New read-only # Linux bootable partition config ends Salve o arquivo lilo.conf. No prompt, digite: # lilo para salvar as alterações. Você poderá ver: Added Linux * New Indicando que a imagem vmlinuz-2.2.14 poderá ser inicializada no boot da máquina digitando-se “new” no prompt do lilo. Posteriormente você poderá mesmo eliminar a imagem antiga (vmlinuz) em “/” e mesmo deletar o diretório /lib/modules/2.2.13. Mas espere alguns dias e observe se não ocorrem erros em módulos, e se todas as funcionalidades estão operantes (ppp, etc.). Dê um reboot na máquina, e a nova inicializa&ccedi ;ão deverá apresentar: Welcome to linux 2.2.14 indicando que tudo correu como devia e o novo kernel está instalado. Boa diversão! Se as coisas derem errado… Observe as mensagens de inicialização, às vezes alguns módulos teimam em não ser instalados corretamente. Em caso de kernel panic, inicialize a partir de um disco (você não tem um? o que está esperando para fazer um?) e efetue as alterações necessárias. É possível voltar ao antigo kernel 2.2.13, simplesmente desfazendo as alterações. Lembre-se de que o comando “linux” digitado no prompt do lilo inicializa a imagem antiga do kernel 2.2.13, e o comando “new” a nova imagem, vmlinuz-2.2.14. Conclusão Não deixe de consultar a documentação referente ao kernel, em especial o “kernel HOWTO” e o guia para o kernel 2.2.XX. Como foi dito, esta é uma receita simples, que visa orientar os iniciantes a trilharem o caminho das pedras e não tem a pretensão de ser nada mais além disto. Espero ter sido útil. Coloco-me à disposição para eventuais esclarecimentos. Um abraço! |