Compilando um kernel Linux série 2.6 (I Parte)
Por que [razão] recompilar o kernel ?
A primeira intenção é optimizar o kernel para o seu hardware, a fim de melhorar a performance e suportar todos os dispositivos.
Você também pode querer actualizar o sistema obtendo suporte a novos recursos e dispositivos de hardware.
Ou você pode querer livrar-se de bugs.
O que é o kernel?
O kernel Linux é o centro do sistema operativo. A parte do sistema responsável pelo gerenciamento de baixo nível do hardware e software.
Quais são os requerimentos mínimos de hardware?
Isso varia muito de acordo com a arquitectura e a versão do kernel. Mas tenha em mente o seguinte para ter um sistema mínimo funcional:
16MB de RAM (memória física), 100MHz de relógio de processamento e 100MB de espaço em disco (memória virtual).
Mas como sei o que tenho de hardware?
Execute o comando:
lspci ou
lspci -vvv ou
cat /proc/pci
Mas que processador tenho, qual é o clock, qual é a arquitectura?
Execute o comando:
cat /proc/cpuinfo
Que arquitecturas são suportadas?
Para saber isso, basta você fazer listar o conteúdo do directório /usr/src/linux/arch.
Veja lá a listagem para a versão do kernel 2.6.7:
alpha
arm
arm26
cris
h8300
i386
ia64
m68k
m68knommu
mips
parisc
ppc
ppc64
s390sh
sparc
sparc64
um
v850
x86_64
O seu caso, muito provavelmente deve ser a arquitectura i386, que é a mais comum do mundo dos PC’s.
Outra arquitectura muito comum é a PPC (PowerPC), os famosos computadores da Apple.
Sim, o Linux pode ser instalado em um computador da Apple ;).
Você tem aí uma playstation II? Então instale o Linux nela!
Qual a quantidade de memória que tenho?
Execute o comando:
cat /proc/meminfo
Quais são os softwares mínimos que devem estar instalados para executar o kernel?
Veja o Passo VII.
O kernel Linux é Software Livre?
Sim! É Software Livre porque cumpre com os quatro direitos da GPL (General Public License). Veja só:
- O direito de cópia: Sim, você pode fazer cópias ou downloads do kernel livremente.
- O direito de estudo: Sim, você pode baixar o código fonte do kernel em http://www.kernel.org e estudá-lo.
- O direito de modificação: Sim, você pode modificar o código fonte do kernel e enviar as suas modificações às pessoas responsáveis.
- O direito de redistribuição: Sim, você pode redistribuir livremente o kernel.
Mãos à obra
- Passo I
Baixe o pacote que contém o código fonte mais actualizado do kernel Linux da série 2.6 no website.
Abrindo a página no navegador web, clique no link F para fazer o download do pacote que contém os fontes.
Você também poderá fazer o download com o comando wget como no exemplo abaixo:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.7.tar.bz2
- Passo II
Como superutilizador (faça o login no sistema como root), descompacte e desempacote o arquivo assim:
tar xjvf linux-2.6.7.tar.bz2 -C /usr/src
- Passo III
Crie o link simbólico /usr/src/linux apontando para /usr/src/linux-2.6.7 assim:
ln -sf /usr/src/linux-2.6.7 /usr/src/linux
- Passo IV
Acesse /usr/src/linux assim:
cd /usr/src/linux
Este será o directório raiz de compilação, ou seja, o directório base para os passos seguintes.
- Passo V
Caso você já tenha compilado o kernel anteriormente, execute o comando ‘make mrproper’ para retornar ao padrão os arquivos de configuração do kernel.
make mrproper
- Passo VI
Edite o arquivo Makefile para personalizar a versão de sua compilação.
Altere a variável EXTRAVERSION na quarta linha para um valor que deseje como por exemplo -i386-1.
Salve este arquivo.
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 7
EXTRAVERSION = -i386-1
- Passo VII
O arquivo /usr/src/linux/Documentation/Changes contém uma lista do software mínimo que deve estar correctamente instalado na máquina antes de iniciar a compilação.
Não inicie a compilação do kernel sem antes obtiver a certeza de que o mínimo de software está instalado.
Existe um script que pode auxiliar nisto. O script /usr/src/linux/scripts/ver_linux imprime na tela uma lista do software mínimo e suas respectivas versões que estão instalados na máquina. Compare esta lista com a lista oferecida pelo documento /usr/src/linux/Documentation/Changes. Para executar este script, faça assim:
sh scripts/ver_linux
Eis a lista de software mínimo requerido para um kernel da série 2.6 poder funcionar:
Gnu C 2.95.3 # gcc —version
Gnu make 3.79.1 # make —version
binutils 2.12 # ld -v
util-linux 2.10o # fdformat —version
module-init-tools 0.9.10 # depmod -V
e2fsprogs 1.29 # tune2fs
jfsutils 1.1.3 # fsck.jfs -V
reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
xfsprogs 2.6.0 # xfs_db -V
pcmcia-cs 3.1.21 # cardmgr -V
quota-tools 3.09 # quota -V
PPP 2.4.0 # pppd —version
isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
nfs-utils 1.0.5 # showmount —version
procps 3.2.0 # ps —version
oprofile 0.5.3 # oprofiled —version.
Nem tudo na lista acima é obrigatório. Será obrigatório ter os itens instalados da lista acima apenas aqueles que o kernel que você está configurando suportar.
Por exemplo, se você não configurou o suporte a isdn, não é necessário ter instalado na sua máquina o software isdn4k-utils para poder compilar e executar o kernel.
- Passo VIII
O arquivo /usr/src/linux/.config armazena a configuração do kernel. Basicamente, este arquivo descreve o que deverá ser incorporado ao kernel (y) e o que deverá ser criado como módulo (m). Incorpore ao kernel apenas o necessário. O restante necessário, configure como módulo. O que não for necessário, retire. Por exemplo, se você não tem dispositivos pcmcia em sua máquina, retire da configuração o suporte a pcmcia. Isto possibilita uma maior performance por parte do sistema.
O kernel Linux pode ser modular, ou seja, o suporte básico fica incorporado ao kernel constantemente e o suporte a outros dispositivos, como por exemplo, uma placa de som, pode ser configurado como módulo. Assim sendo, este módulo da placa de som é carregado na memória e plugado ao kernel apenas quando for necessário, ou seja, apenas quando o utilizador estiver utilizando som no sistema.
Isto optimiza o sistema, utilizando seus recursos sabiamente.
Texto adaptado por “A Voz de Ermesinde”.
Por: Jonas Goes
|