A grande vantagem de possuir módulos é ter a liberdade para ativá-los e desativá-los a hora que for pertinente. Mesmo com toda essas vantagens vocês devem estar indagando:
"Mas porque eu devo compilar o kernel?", essa resposta é bem simples:
1. Personalizar o kernel de acordo com suas necessidades;
2. Atualização de kernel nos apresenta módulos novos. Ex.: Uma versão antiga que não tem suporte wireless, podemos encontrar em uma versão mais nova.
Muitos tem medo de compilar o kernel, eu mesmo tive durante algum tempo e pesquisei muito antes da minha primeira compilação na distro Debian Linux, achei muita coisa, porém "muita" dessas coisas não foram testadas, isso me fez perder tempo e uma contagem enorme de "kernel panic", mas vou passar para vocês um recorte de todas as coisas que encontrei que realmente deu certo.
Essa compilação é para todas as distros que usam a versão 2.6, não quis me prender a um estilo de compilação de uma distro, pois temos que conhecer Linux e não somente uma distro, a questão de distro vem por gosto.
Antes de começar o compilação do kernel vou pedir para todos estarem cientes dos hardwares da máquina que será compilada. Para ter certeza basta realizar os seguintes comandos:
$ lspci
$ cat /proc/pci (com esse comando você estará ciente com o hardware em geral)
$ cat /proc/cpuinfo (comando para ver a arquitetura do processador)
$ cat /proc/meminfo
ou
$ free -m (para ver sua RAM)
Depois dessa pequena consulta vamos para a parte que realmente interessa:
Passo 1:
Primeiramente vocês terão que baixar o código-fonte do kernel desejado, pelo meu breve conhecimento o mais estável do momento é o 2.6.24, pois alguns amigos me disseram que o 2.6.27 estava dando pau nas placas de rede.
Para baixar entre no seguinte site:
http://www.kernel.org/pub/linux/kernel/v2.6/
ou você pode usar o comando "wget" no terminal, mas isso é pra pessoas com um pouco mais de experiência.
Passo 2:
Depois da conclusão do download vocês terão que descompactar o arquivo tar do código-fonte. Mas lembre-se que isso terá que ser feito em root.
$ sudo su
# tar xjvf linux-2,6,24.tar.bz2 /usr/src
Obs.: O arquivo tem que ser compacto na pasta da arquitetura do kernel antigo: /usr/src
Passo 3:
É necessário criar um link para o novo kernel:
# ls -sf /usr/src/linux-2,6,24 /usr/src/linux
Com esse comando você criará uma nova pasta chamada "linux".
Obs.: Caso você já tenha essa pasta, terá que deletar ela:
# rmdir /usr/src/linux
E repita o passo anterior.
No término entre na pasta:
# cd /usr/src/linux
Passo 4:
Para personalizar seu kernel, entre no arquivo Makefile e altere o Extra Version:
Version=2
PATCHLEVEL=6
SUBLEVEL=24
EXTRAVERSION= -i386-1
PATCHLEVEL=6
SUBLEVEL=24
EXTRAVERSION= -i386-1
Salve o arquivo.
Passo 5:
Nesse passo vamos baixar alguns arquivos para que a compilação seja realizada com sucesso.
No terminal digite:
* comandos para Debian, para outras distro pesquise como baixar esses arquivos.
# aptitude install initrd-tools
# aptitude install linux-initrd-tool
Esses pacotes serão de suma importância para configurar a imagem no GRUB.
Baixe os pacotes abaixo para trabalhar o config em modo gráfico, pois em texto será um tédio.
Caso você queira se aventurar no texto basta executar o:
# make config
ou baixe as bibliotecas para modo gráfico:
Para menuconfig:
# apt-get install libncurses5-dev
# make menuconfig
Para xconfig:
# apt-get install libqt3-mt-dev
# make xconfig
Obs.: No Debian as dependências serão instaladas automaticamente.
Passo 6:
Agora iremos configurar o kernel:
# make menuconfig
Obs.: Para esse comando lembre que "*" são itens que serão incorporados no kernel e "m" serão modulares.
ou:
# make xconfig
Depois de configurar salve.
Passo 7:
Agora vem a compilação de verdade:
# make bzImage
Obs.: Tem que ser igual o "i", realmente é em maiúsculo, respeite as escritas do comando.
Pode ir tomar um café, pois dependendo da arquitetura do seu CPU isso vai demorar um pouco.
Passo 8:
Vamos ativar os módulos:
# make modules
Passo 9:
Agora vamos instalar os módulos:
# make modules_install
Demora um pouco também.
Passo 10:
Vamos copiar a imagem do novo kernel no /boot.
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.24-i386-1
# cp /usr/src/linux/System.map /boot/System.map-2.6.24-i386-1
Vamos criar um link para o System.map:
# ln -sf /boot/System.map-2.6.24-386-1 /boot/System.map
Para finalizar o vamos copiar o config para o boot:
# cp /usr/src/linux/.config boot/config-2.6.24-i386-1
Passo 11:
Vamos criar um initrd para execução do boot:
# mkinitrd -o /boot/initrd-2.6.24-i386-1.img 2.6.24-i386-1
Vamos configurar o GRUB.
Ainda logado como root digite:
# cd /boot/grub
# vim menu.lst
ou
# vi menu.lst
Coloque:
title Debian GNU/Linux, kernel 2.6.24-6-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-i386-1 root=/dev/hda1 ro
initrd /boot/initrd-2.6.24-i386-1.img
savedefault
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-i386-1 root=/dev/hda1 ro
initrd /boot/initrd-2.6.24-i386-1.img
savedefault
Salve o arquivo, reinicie a máquina e escolha o modo com o novo kernel...
Para confirmar sua façanha digite no terminal:
# uname -a
Você está na lista dos nerds attack by linuxman ^^ HuHiHiuHuihIUhiuuhi
Qualquer coisa lembre-se do guia do mochileiro das galáxias:
DON'T PANIC
Quem usa o LILO pode me contactar depois...
Nenhum comentário:
Postar um comentário