Compilar kernel em distros baseadas em Debian
Você está calmo hoje? Não se estressou? Então você poderá compilar seu kernel, pois requer muita paciência... Nesse artigo veremos o modo correto e mais prático de compilar em distribuições baseadas em Debian.
Não ta contente com o seu PC? Compile seu KERNEL!
Insatisfeito com o desempenho na inicialização do seu PC? Você queria tirar coisas, mas não sabe como? Bom, então vamos compilar seu kernel!
Como todos sabemos, quando adequamos um kernel ao SEU uso, seu PC agradece e você fica satisfeito, seu desempenho em termos de velocidade e segurança aumentam e muito. Então vamos parar de baboseira e vamos ao que interessa...
Primeiramente baixe a versão mais estável (The latest stable version of the Linux kernel) e nova do kernel em www.kernel.org.
Adquirida a nova versão iremos prosseguir com nossos passos:
Passo 1.
# apt-get update
Atualizaremos suas fontes de repositório para que os pacotes mais recentes sejam instalados.
Passo 2.
# apt-get install build-essential kernel-package libncurses5-dev tar gzip bzip2
Instalando pacotes necessários para a compilação do kernel:
Descompacte o arquivo do kernel do Linux no diretório /usr/src:
# tar -xvjf linux-2.6.22.1.tar.bz2 -C /usr/src
# ln -sf /usr/src/linux-2.6.22.1 /usr/src/linux
O primeiro descompacta o arquivo linux-2.6.22.1 para a pasta /usr/src/linux-2.6.22.1. O segundo cria um link simbólico do seu novo kernel para a pasta linux, a criação deste link simbólico serve para que seu sistema e seus programas instalados consigam identificar que kernel você está usando.
Lembrando-se que quando construí este tutorial o kernel mais novo e estável do Linux estava em 2.6.22.1.
Passo 4.
# cp /boot/config-$(uname -r) .
# mv config-$(uname -r) .config
Passo 5.
Na quarta linha do arquivo /usr/src/linux/Makefile está a extraversion como .1, podemos editar o .1 colocando -20070715-c1 (data de trás para frente e -c1 significa compilação 1), para isso:
# vim /usr/src/linux/Makefile
E altere a 5ª linha do arquivo.
Pra que mudar esta linha?
Esta linha chamada extraversion nós mudamos pra efeito de organização, pois quando as configurações forem relativas a kernel, sempre após o nome e o versão do kernel será escrito um "nome", que é o que está escrito na extraversion. Por exemplo:
Quando o kernel for compilado, se listarmos nossos módulos de dispositivos instalados, poderemos ver que módulos pertencem a que compilação usando o comando:
# ls /lib/modules
Passo 6.
Vamos a compilação, agora ficou fácil vamos compilar o bichinho:
# make menuconfig
Agora escolha as opções que você quiser, não abordarei esta parte pois existem N computadores com N hardwares e N configurações de kernel boas.
Passo 7.
Agora vamos criar uma pacote .deb pra que fique mais fácil instalar e desinstalar seu novo kernel.
Limpando porcarias...
# make-kpkg clean
Criando e pacotes de acordo com a compilação...
# make-kpkg -initrd kernel_image kernel_headers
Agora vá tomar uns 30 litros de café porque este processo é super demorado!
Passo 8.
Agora que a imagem e o header foram gerados, simplesmente instale-os com o dpkg ;)!
# dpkg -i linux-headers-2.6.22.1-20070715-c1_i386.deb
# dpkg -i linux-image-2.6.22.1-20070715-c1_i386.deb
Os nomes dos arquivos de vocês podem ser diferentes, mas isso não muda nada.
Bom gente, terminado, agora só dêem um reboot e rezem, se deu erro voltem ao passo 6 e mãos a obra, e não se aborreçam, pois quando compilamos kernel às vezes não conseguimos ver tudo funcionando de primeira mesmo, mas isto é completamente normal.
Legenda:
Como todos sabemos, quando adequamos um kernel ao SEU uso, seu PC agradece e você fica satisfeito, seu desempenho em termos de velocidade e segurança aumentam e muito. Então vamos parar de baboseira e vamos ao que interessa...
Primeiramente baixe a versão mais estável (The latest stable version of the Linux kernel) e nova do kernel em www.kernel.org.
Adquirida a nova versão iremos prosseguir com nossos passos:
Passo 1.
# apt-get update
Atualizaremos suas fontes de repositório para que os pacotes mais recentes sejam instalados.
Passo 2.
# apt-get install build-essential kernel-package libncurses5-dev tar gzip bzip2
Instalando pacotes necessários para a compilação do kernel:
- build-essential - instala os pacotes mais usados para compilar programas que devem ser instalados;
- kernel-package - pacote feito para "criarmos" pacotes de kernel em deb e instalarmos no Ubuntu de forma nativa (que pertença a ele por padrão);
- libncurses5-dev - provê links, headers entre outros elementos da biblioteca libncurses5, que serve para rodar programas compilados por meio de ncurses;
- tar, gzip e bzip2 - compactadores básicos do Linux.
Descompacte o arquivo do kernel do Linux no diretório /usr/src:
# tar -xvjf linux-2.6.22.1.tar.bz2 -C /usr/src
# ln -sf /usr/src/linux-2.6.22.1 /usr/src/linux
O primeiro descompacta o arquivo linux-2.6.22.1 para a pasta /usr/src/linux-2.6.22.1. O segundo cria um link simbólico do seu novo kernel para a pasta linux, a criação deste link simbólico serve para que seu sistema e seus programas instalados consigam identificar que kernel você está usando.
Lembrando-se que quando construí este tutorial o kernel mais novo e estável do Linux estava em 2.6.22.1.
Passo 4.
# cp /boot/config-$(uname -r) .
# mv config-$(uname -r) .config
Passo 5.
Na quarta linha do arquivo /usr/src/linux/Makefile está a extraversion como .1, podemos editar o .1 colocando -20070715-c1 (data de trás para frente e -c1 significa compilação 1), para isso:
# vim /usr/src/linux/Makefile
E altere a 5ª linha do arquivo.
Pra que mudar esta linha?
Esta linha chamada extraversion nós mudamos pra efeito de organização, pois quando as configurações forem relativas a kernel, sempre após o nome e o versão do kernel será escrito um "nome", que é o que está escrito na extraversion. Por exemplo:
Quando o kernel for compilado, se listarmos nossos módulos de dispositivos instalados, poderemos ver que módulos pertencem a que compilação usando o comando:
# ls /lib/modules
Passo 6.
Vamos a compilação, agora ficou fácil vamos compilar o bichinho:
# make menuconfig
Agora escolha as opções que você quiser, não abordarei esta parte pois existem N computadores com N hardwares e N configurações de kernel boas.
Passo 7.
Agora vamos criar uma pacote .deb pra que fique mais fácil instalar e desinstalar seu novo kernel.
Limpando porcarias...
# make-kpkg clean
Criando e pacotes de acordo com a compilação...
# make-kpkg -initrd kernel_image kernel_headers
Agora vá tomar uns 30 litros de café porque este processo é super demorado!
Passo 8.
Agora que a imagem e o header foram gerados, simplesmente instale-os com o dpkg ;)!
# dpkg -i linux-headers-2.6.22.1-20070715-c1_i386.deb
# dpkg -i linux-image-2.6.22.1-20070715-c1_i386.deb
Os nomes dos arquivos de vocês podem ser diferentes, mas isso não muda nada.
Bom gente, terminado, agora só dêem um reboot e rezem, se deu erro voltem ao passo 6 e mãos a obra, e não se aborreçam, pois quando compilamos kernel às vezes não conseguimos ver tudo funcionando de primeira mesmo, mas isto é completamente normal.
Legenda:
- # - executar como root
- $ - executar como usuário normal (sem poderes administrativos)
Acho que faltou o exemplo no passo 5 (Por exemplo:)
Não entendi porque editar o Makefile, se o make-kpkg já tem as opções --revision e --append-to-version que fazem isto para você.
Como você disse que vai comentar em próximo artigo, o que retirar e o que manter, então só nos resta aguardar :-) , mas há muito tempo que não compilo o kernel (no máximo uso o module-assistant para webcam). O kernel Debian tem atualizações de segurança e mantendo módulos, mesmo que você não use, é legal pois você pode adicionar hardware sem precisar se preocupar com o mesmo.