Geralmente a recompilação de um
kernel é realizada com a intenção de melhorar o desempenho do sistema, adaptando-o de acordo com as suas necessidades, livrar-se de bugs, dar suporte a algum dispositivo ou até mesmo por curiosidade.
O primeiro passo para se obter um bom resultado na recompilação de um kernel é conhecer bem o seu hardware, pois se for inserido muita coisa o carregamento do kernel aumentará, portanto, devemos adicionar apenas o que será usado, desabilitando o que não for útil e o restante compilado como módulo. Os módulos serão carregados somente quando forem usados. Existem alguns comandos que podem lhe ajudar a se informar sobre o seu hardware:
$ lspci
Lista alguns dos dispositivos utilizados.
$ cat /proc/cpuinfo
Lista algumas informações sobre o processador.
$ cat /proc/meminfo
Lista informações sobre a memória RAM.
Obtendo os fontes e pacotes necessários
O primeiro passo é obter o código-fonte da versão escolhida, link indicado:
Copie o arquivo baixado para o diretório /usr/src:
# cp localdoarquivo /usr/src
Descompacte o arquivo:
# tar -zxvf linux-2.6.x.tar.gz
(o "x" deve ser substituído pela versão escolhida)
Se o arquivo estiver com a extensão tar.bz2, execute:
# tar -jxvf linux-2.6.x.tar.bz2
Crie um link que indicará a localização do código-fonte do novo kernel:
# ln -s /usr/src/linux-2.6.x /usr/src/linux
Acesse o diretório raiz de compilação:
# cd /usr/src/linux-2.6.x
Antes de iniciar a compilação é necessário ter alguns softwares instalados, execute o script "
ver_linux", que mostrará os softwares instalados, localizado dentro do diretório /usr/src/linux-2.6.x/scripts, com o comando:
# sh /usr/src/linux-2.6.x/scripts/ver_linux
Compare esta lista com a lista oferecida no diretório /usr/src/linux-2.6.x/Documentation/changes, nem todos os softwares da lista precisam estar instalados, mas é necessário instalar o máximo possível.
Quando compilei o kernel linux-2.6.30.4, tinha esses softwares instalados:
Gnu C 4.3.2
Gnu make 3.81
binutils 2.18.0.20080103
util-linux 2.13.1.1
mount 2.13.1.1
module-init-tools 3.4
e2fsprogs 1.41.3
jfsutils 1.1.12
reiserfsprogs 3.6.19
xfsprogs 2.9.8
pcmciautils 014
quota-tools 3.16.
PPP 2.4.4
Linux C Library 2.7
Dynamic linker (ldd) 2.7
Procps 3.2.7
Net-tools 1.60
Console-tools 0.2.3
oprofile 0.9.3
Sh-utils 6.10
udev 125
wireless-tools 29
E esta era a lista "Changes":
Gnu C 3.2
Gnu make 3.79.1
binutils 2.12
util-linux 2.10o
module-init-tools 0.9.10
e2fsprogs 1.41.4
jfsutils 1.1.3
reiserfsprogs 3.6.3
xfsprogs 2.6.0
squashfs-tools 4.0
btrfs-progs 0.18
pcmciautils 004
quota-tools 3.09
PPP 2.4.0
isdn4k-utils 3.1pre1
nfs-utils 1.0.5
procps 3.2.0
oprofile 0.9
udev 081
grub 0.93
A maioria dos softwares não instalados podem ser instalados via "apt-get".
Para a realização da compilação é necessário instalar o pacote
kernel-package, que pode ser instalado com comando:
# apt-get install kernel-package
É necessário também instalar os pacotes "gcc" e "g++":
# apt-get install gcc g++