Publicado por: Bruno Tsubouchi Yporti em: 2 dUTC Outubro dUTC 2008
Nesse artigo pretendo mostrar como compilar um kernel aplicando os patches do Debian (segurança, correções, etc). Alguns devem estar se perguntando: mas por que não compilar o kernel original e em sua última versão? Bem, um dos motivos seria a estabilidade, uma vez que o foco desse artigo é para usuários do Debian estável. Outros motivos mais específicos incluem compatibilidade com hardware e drivers, principalmente os proprietários. É fato que leva um certo tempo para lançarem tais drivers compatíveis com a última versão do linux, e quando o fazem, nem sempre o mesmo é totalmente estável.
O tutorial atual se baseia na compilação do kernel 2.6.26 no Debian Lenny (congelado), que será lançado em breve como estável. Pequenas modificações, principalmente referentes às versões podem vir a ser necessárias.
Primeiramente, vamos instalar os pacotes necessários:
# apt-get install kernel-package libncurses5-dev linux-patch-debian-2.6.26
Depois, vamos obter o código-fonte do kernel do Debian. ATENÇÃO: o kernel proveniente do kernel.org (site oficial do kernel linux) não serve para este tutorial. Vamos usar o wget para obter a base do kernel do Debian:
$ wget -c http://ftp.br.debian.org/debian/pool/main/l/linux-2.6/linux-2.6_2.6.26.orig.tar.gz
Caso queira obter o link manualmente, basta ir em http://packages.debian.org/source/lenny/linux-2.6, trocando “lenny” no link pelo codinome da sua versão.
Agora, vamos extrair o código-fonte para /usr/src/:
# tar xvzf linux-2.6_2.6.26.orig.tar.gz -C /usr/src/
Você pode, se preferir, mudar o nome do diretório do seu kernel:
# cd /usr/src/
# mv linux-2.6_2.6.26 kernel-otimizado
Agora, considerando que mudamos o nome para “kernel-otimizado”, vamos entrar neste diretório e aplicar os patches:
# cd kernel-otimizado
# python /usr/src/kernel-patches/all/2.6.26/apply/debian
Depois de terminar o processo, podemos configurar o kernel. A configuração não é o foco deste artigo, entretanto, vou sugerir pequenas modificações que garantem um efeito real no desempenho da máquina. Primeiramente, vamos importar a configuração do kernel padrão do Debian:
# cp /boot/config-`uname -r` .config
Abra o configurador menuconfig:
# make menuconfig
Um menu configurável deve ter sido exibido, você pode navegar por ele pelas setas do teclado. As seleções básicas são Y( compilado como built-in), N (não compilar) e M (compilar como módulo). Primeiramente, vá o menu “Processor Type and Features” e:
1 – Se não tem um processador com vários núcleos, desmarque o item “Symmetric multi-processing support”
2 – Configure o item “Processor Family” para o seu processador, ou o mais proximo dele.
3 – Desmarque, se estiver marcado, o item “Generic x86 support”
4 – Altere o “Preemption Mode” para “Voluntaru Kernel Preemption (Desktop)”
5 – Altere o “Timer frequency” para 1000hz se usa Desktop, ou deixe em 250Hz ou 100Hz se usa um Laptop
6 – Se tem menos que 1Gb de memória RAM, altere o item “High Memory Support” para “off”
Essas modificações visam otimizar a compilação (selecionando o processador correto), reduzir recursos desnecessários e aumentar a responsividade do sistema (Kernel Preemption e Timer Frequency). O motivo para não se usar um Timer Frequency tão alto em laptops é que isso aumenta o uso da bateria, diminuindo o tempo de uso útil.
Volte ao menu principal selecionando exit apenas uma vez. Agora vá até “Kernel Hacking” e desmarque o item “Kernel Debugging”. Volte ao menu principal, selecione o item “Save an alternate Configuration File” e de enter. Ele vai perguntar se você deseja salvar a configuração em “.config”, apenas confirme com outro enter. Depois disso, saia do configurador selecionando exit.
De volta ao terminal, vamos voltar à compilação propriamente dita. Vamos compilar o kernel com o utilitário kernel-package, que cria um pacote .deb com o novo kernel, facilitando muito a instalação ou posterior remoção dele no futuro. Para iniciar a compilação, digite:
# make-kpkg --initrd kernel_image
Agora espere o processo terminar, o que depende da velocidade do seu computador e das opções selecionadas. Depois de concluído, vamos instalar o novo kernel:
# cd /usr/src/
# dpkg -i linux-image*.deb
Pronto! Agora basta reiniciar e selecionar o seu novo kernel na inicialização. Espero que o artigo tenha ajudado, eu tive certa dificuldade em encontra um meio de realizar este processo, espero ter sido claro. :)
[...] por Bruno Tsubouchi Yporti (yportimdΘgmail·com) – referência [...]
[...] por Bruno Tsubouchi Yporti (yportimdΘgmail·com) – referência [...]
[...] Compilando um kernel com patches Debian [...]
Muito bom, parabéns.
Um médico que hackeia seu Linux! Muito bom, mesmo :-)
[]’s
ae sunitão boa !!ta feito aqui,muito bom mesmo!!
Muito bom!
obrigado pela dica. principalmente sobre o Timer frequency (System Timer Resolution)! eu tinha aumentado pra 1000Mhz em meu Notebook (ja usava no Desktop) mas nem me dei conta da bateria..rsrs
valeww mesmo!!
3 dUTC Outubro dUTC 2008 às 15:40
“3 – Desmarque, se estiver marcado, o item “Generic x86 support””
Por que tenho que desmarcar isso? Essa opção não ajuda em nada não?
Resposta:
Caios, essa opção faz com que otimizações mais genéricas sejam usadas, de modo a funcionar em uma gama maior de processadores. O próprio Debian desativa essa opção na variante 686 do kernel.
Veja um trecho do Linux Kernel in a Nutshell sobre isso:
Até mais e obrigado pela visita.