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.
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:
Criar um novo link simbólico
"linux", desta vez apontando para
o novo diretório 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" ... :) Após algum tempo (que varia de acordo com a máquina), a imagem é gerada e gravada no diretório referido.
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!