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". ----------------------------- http://www.dicasct.hpg.com.br