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

    Source: geocities.com/br/linuxcatalogo

               ( geocities.com/br)