RECOMPILANDO O KERNEL NUM RED HAT E NO SLACKWARE
1 - PRÉ-REQUISITOS PARA OTIMIZAR/RECOMPILAR O KERNEL
NO SLACK:
Os pacotes do Slackware tem a extensão ".tgz", como os Red Hats tem ".rpm".
Grupo a1 - aoutlibs
Grupo a4 - elflibs
Grupo a6 - glibc1 (importante, juntamante com o glibc2, para programas
baseados na glibc, como é o caso do Star Office)
- hdsetup (este é importante não para recompilar o kernel,mas sem
ele você não conseguirá instalar nem remover nenhum pacote, pois ele contém
os utilitários "installpkg", "removepkg", "pkgtool" e "upgradepkg".
Grupo a7 - gribc2
Grupo d1 - autoconf, automake, binutils, bison, byacc, egcs, egcsobjc, flex,
gcc, gmake, libc, libtool, linuxinc, ncurses, perl, pmake e svgalib.
Obs.:pode ser que esteja sobrando alguém, mas... o que abunda não atrapalha.:)
NUM RED HAT:
O ideal é fazer uma instalação personalizada do Linux, selecionando um a um
os pacotes, para instalar todos os necessários. A instalação padrão não
adiciona odos os pacotes neceessários à recompilação do kernel e de
programas.
Caso não tenha feito uma instalação personalizada com todos os pacotes neces-
sários, então adicione estes (ou apenas os que ainda não tiver).
Os fontes do kernel: grupo Base/Kernel:
- kernel-headers*.rpm
- kernel-ibcs*.rpm
- kernel-source*.rpm
As Bibliotecas dos grupos Biblioteca e Desenvolvimento/Bibliotecas:
- aout-libs*.rpm
- ncurses*.rpm (todas)
- glibc*.rpm (todas)
- libstdc++-devel*.rpm
- libstdc++-devel*.rpm
Grupo Desenvolvimento/Contrução:
- autoconf*.rpm
- automake*.rpm
- libtool*.rpm
- make*.rpm
- pmake*.rpm
Grupo Desenvolvimento/Linguagens:
- egcs*.rpm (todas)
- expect*.rpm
- gcc*.rpm
Mais este (caso sinta falta):
- bin86*.rpm
Obs.: Não é necessário para recompilar o kernel nem para muitos outros fontes,
mas importante para vários programas gráficos e jogos: o XFree86-devel.
Instale-o também, caso pretenda instalar programas gráficos, Window Managers,
doc apps para o WMaker ou jogos (especialmente os jogos que requerem
a Xlib.h).
Detalhe: os requisitos para recompilar o kernel também atendeM às necessidades
de compilação de outros programas (normalmente). O que alguns programas reque-
rem de extra, são libs.
2 - FAZENDO BACKUP DA IMAGEM DO KERNEL
A primeira providência a ser tomada por quem deseja recompilar o
kernel, deve ser a de fazer um backup do kernel atual e colocá-lo disponóvel
no /etc/lilo.conf.
Aliás, acho que esta deve ser uma providência a ser tomada logo após a
instalação do Linux (para prevenir futuros/eventuais problemas). Ressalte-se
que recompilar o kernel deve sere uma terefa para quem ja tem alguma intimi-
dade com o Linux ou que tenha muita necessidade/coragem.
Veja como copiar:
"cp /vmlinuz /vmlinuz.backup" no Slack ou
"cp /boot/vmlinuz-2.2.6 /boot/vmlinuz-2.2.6.backup" num Red Hat
Depois disso devemos colocar estas cópias no arquivo /etc/lilo.conf,
Veja como seria no Slack:
-----------------------###################----------------------------
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda
message = /boot/boot_message.txt
prompt
timeout = 1200
vga = normal
# End LILO global section
# DOS bootable partition config begins
other = /dev/hda1
label = Windows
table = /dev/hda
# DOS bootable partition config ends
# Linux bootable partition config begins
image = /vmlinuz
root = /dev/hda4
label = l
read-only
image = /vmlinuz.backup
root = /dev/hda4
label = b
read-only
# Linux bootable partition config ends
-----------------------###################----------------------------
Observe que mudei os labels para "l" e "b". Ao inves de digitar linux
para entrar no Linux, teclo apenas "l" e enter. :)
Não esqueça de atualizar com /sbin/lilo e enter.
Num Red Hat ficaria assim:
-----------------------###################----------------------------
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.6
label=linux
root=/dev/hda3
read-only
image=/boot/vmlinuz-2.2.6.backup
label=backup
root=/dev/hda3
read-only
other=/dev/hda1
label=w
table=/dev/hda
-----------------------###################----------------------------
Ao salvar atualize com /sbin/lilo e Enter.
Depois disso podemos nos aventurar a otimizar ou recompilar o kernel com
mais tranquilidade. Caso dê algum problema, podemos dar o boot e no prompt do
lilo, Lilo boot: digitar linux1 ou linux2 para usar uma das cópias do kernel.
3 - RECOMPILANDO PARA ATUALIZAR O KERNEL
Caso deseje atualizar o kernel, deve-se, após descompactar, ler a documenta-
ção, principalmente o arquivo em /Documentation/Changes, para saber que progra-
mas terá que atualizar.
Para os kerneis 2.2.0 ou superior, terá que atualizar or links do mouse e
do modem:
ln -lf /dev/ttyS0 /dev/mouse
ln -lf /dev/ttyS1 /dev/modem
Lembrar que: COM1=cua0=ttyS0
COM2=cua1=ttyS1 e assim por diante.
Alterar a porta da impressora (provavelmente) de lp1 para lp0.
Os fontes atuais do kernel em rpm podem ser encontrados em:
http://rufus.w3.org/linux/RPM
1) Depois de baixar o novo kernel vamos descompactá-lo:
Acesse o diretório /usr/src e remova o link "linux":
"rm linux"
2) Descompacte o novo kernel:
Caso esteja em .tar.gz -> tar zxpvf linux-2.2.9.tar.gz
Caso não seja criado um diretorio com a versão, renomei-o:
mv linux linux-2.2.9
3) Recrie o link -> ln -s linux-2.2.9 linux
Obs.: depois de recompilar e tudo correr bem, você pode remover o diretório
do kernel atual (versão anterior) se assim desejar.
4) Acesse o diretório linux: cd linux (entrando no /usr/src/linux).
5) Como é uma atualização, devemos eliminar arquivos de configurações anterio-
res com:
make mrproper
6) Agora configurar o kernel:
Caso deseje gerar um novo arquivo com as configurações atuais:
make menuconfig
Aqui deve-se ficar atento para habilitar itens vitais e desabilitar itens que
não irá necessitar (suporte a SCSI, PCMCIA, mouse PS/2, placas de rede, som e
outros). Caso ao reiniciar voce receba uma mensagem de "kernel panic", dê o
boot com a cópia do kernel e repita os passos até aqui e observe se não desa-
bilitou ou deixou de habilitar itens como o suporte ao HD (IDE ou SCSI), su-
porte ao Ext2 "Second extend fs support" ou outro do gênero.
Outros itens importantes, pelo menos para o ambiente gráfico, são os de su-
port a network (sockets). Deixe-os habilitados mesmo que não tenha placa de
rede.
Lembre-se, caso dê algum problema, volte ao menuconfig e saia habilitando
itens vitais que haja esquecido até que tenha uma boa intimidade e saiba que
itens deva ou não habilitar, pois cada máquina é um caso.
7) Nossa próxima etapa é com as dependências, digite:
make dep clean
8) Agora vamos de fato recompilar o kernel, construindo sua imagem. Para isso
make bzImage (caso seja kernel da versao 2.0.xx, use zImage).
9) Agora gerar os módulos:
Caso seja apenas para otimizar (mesma versão), renomeie os módulos existentes:
mv /lib/modules/2.0.35 /lib/modules/2.0.35.orig (por exemplo).
make modules
10) Agora instalá-los:
make modules_install
11) Agora copiar a imagem do kernel para o diretório "/" (no Slack) ou
"/boot" (no Red Hat):
Ainda no /usr/src/linux - digitar:
No Slack - cp arch/i386/boot/bzImage /vmlinuz
Num Red Hat - cp arch/i386/boot/bzImage /boot/vmlinuz-2.2.9
Caso de boot por disquete ou queira um disco de boot do novo kernel:
Edite o /etc/lilo.conf e altere a imagem para aogo como vmlinuz-2.2.9 e rode
o lilo, com:
lilo ou /sbin/lilo
Veja man lilo para maiores detalhes.
Agora reinicia-se a máquina e observa-se que normalmente ela fica mais rápida.
Já que retiramos muita coisa desnecessária, se foi o caso.
Fique atento às mensagens do boot e caso note algum problema que justifique,
recompile o kernel. Se for ocaso, reinicie com a outra opção no boot:
"backup" ou "b".
Ribamar FS - ribafs@mcanet.com.br
               (
geocities.com/br)