Kernel 2.6.30-omnislash1 – Compilando e Instalando um kernel otimizado no seu KUXbuntu ou Debian

Passo-a-passo geral

1 – Em primeiro lugar vire o root e baixe as bibliotecas de compilação mais alguns utilitários

$su (depois digite a senha do root)

#aptitude install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev

2 – Agora baixe a versão 2.6.30 do kernel vanilla e o patch omnislash e a configuração para o kernel

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2

http://sharebee.com/db3d2a47

http://sharebee.com/4a40a7f9

http://sharebee.com/ec3d9415

3 – Verifique a integridade do arquivo abrindo um novo terminal e digitando o seguinte comando

$md5sum linux-2.6.30.tar.bz2

Veja se o resultado dos números é igual a esse:
7a80058a6382e5108cdb5554d1609615  linux-2.6.30.tar.bz2

$md5sum configx86 configx86-64 omnislash.bz2
f592dd3dedc5229ad6f51e3dbeb0deca  configx86
abe114a5759e521e79cbb05a27277afd  configx86-64
4cb530233b51fc5e90e15379aa9cdc4d  omnislash.bz2

3 – Copie o arquivo baixado para /usr/src para isso digite os comandos abaixo:

$su (depois digite a senha do root)

#cp linux-2.6.30.tar.bz2 omnislash.bz2 configx86 configx86-64 /usr/src

Descompactação e link simbólico

#cd /usr/src

#tar -xvjf linux-2.6.30.tar.bz2

#chmod -R a-s /usr/src/linux-2.6.30 (possivelmente será necessário usar esse comando em distribuições baseadas no debian)

#rm -rf linux && ln -s /usr/src/linux-2.6.30 linux

#cd /usr/src/linux

Colocando o patch e a configuração otimizada

#bzcat omnislash.bz2 |patch -p1

Caso use a arquitetura x86 (32bits) use o comando abaixo:

#cp /usr/src/linux-2.6.30/configx86 .config && make xconfig

Caso use a arquitetura x86-64 (64 bits) use o comando abaixo:

#cp /usr/src/linux-2.6.30/configx86-64 .config && make xconfig

Customização do kernel

Chegamos ao ponto de escolher o que queremos no nosso kernel, para que ele se adapte as nossas necessidades, seja um desktop, servidor ou um laptop. Se vc sabe o que está fazendo fique a vontade, explore e customize. A configuração está com o foco em desktops por isso talvez nem seja necessário mexer.

Desktop

Em “Processor type and features”:

– Processor family Choose the model of your processor

Escolha o modelo do seu processador. Na configuração eu escolhi o i686 e é o que uso no meu X2 e gosto do resultado. Porém escolha outra específica para o seu processador.

Ele já está configurado para desktop então deixe as configuração como estão.

Laptop

A escolha para o processador também é útil porém é interessante diminuir o Timer frequency

-Timer frequency
–250 Hz (ou menos)

-Preemption Model
–Voluntary Kernel Preemption (Desktop)

Motivo??? Quanto maior o timer frequency menor a autonomia do laptop quando está sob uso da bateria.

Servidor

Dependendo do servidor o melhor é colocar o timer frequency no mínimo e sem preempção pois assim ele suporta mais requisições

A escolha para o processador também é útil porém diminua mais ainda o Timer frequency

-Timer frequency
–100 Hz

-Preemption Model
–Preempt None

Depois das alterações salve o arquivo e agora vamos para o próximo passo

Compilação do kernel

Digite os seguintes comandos

#make-kpkg clean

#make-kpkg –initrd –revision=x86 kernel_image kernel_headers modules_image kernel_source

Caso seja um dual ou quad core use o comando abaixo para acelerar a compilação

#CONCURRENCY_LEVEL=2 make-kpkg –initrd –revision=x86 kernel_image kernel_headers modules_image kernel_source

Obs.: Lembrando que são dois traços antes de initrd e antes de revision e NÃO um apenas. Se usar uma arquitetura 64 bits pode colocar x86-64 depois de revision…

E agora é só esperar… até compilar e criar um deb. O tempo de compilação varia de 40m a 4horas.

E por último para instalar.

#cd .. && dpkg -i linux*2.6.30*.deb

Sysctl.conf

Podemos utilizar algumas configurações para melhorar a performance do sistema manipulando as entradas deste arquivo que encontra-se em /etc.

Então vamos lá:

#nano /etc/sysctl.conf

vm.dirty_ratio = 20
vm.dirty_background_ratio = 20

Salve o arquivo e digite no terminal o seguinte:

#sysctl -p

Ativando o compcache (contribuição do usuário DiamondMax)

Para ativá-lo:

Nas distribuições baseada no debian como o Ubuntu, digite num terminal:

#echo “ramzswap” >> /etc/modules && echo “/dev/ramzswap0 none swap sw,pri=100 0 0″ >> /etc/fstab

Infelizmente o wordpress acabou com a formatação (as aspas) então clique no link abaixo e pegue o comando certo:

http://ubuntuforum-br.org/index.php/topic,29799.msg319812.html#msg319812

Isso fará com que o Compcache e o Xvmalloc sejam carregados durante o boot.

Salve o arquivo Reinicie o sistema.

Verifique se a ramzswap está ativada:

cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda4                               partition       979956  0       -1
/dev/ramzswap0                          partition       112272  0       100

cat /proc/ramzswap
DiskSize:         112276 kB
NumReads:             20
NumWrites:             0
FailedReads:           0
FailedWrites:          0
InvalidIO:             0
PagesDiscard:          0
ZeroPages:             0
GoodCompress:          0 %
NoCompress:            0 %
PagesStored:           0
PagesUsed:             0
OrigDataSize:          0 kB
ComprDataSize:         0 kB
MemUsedTotal:          0 kB

Agora quando o sistema começar a usar a swap, o compcache irá comprimir e armazenar os dados na própria RAM! Observe que a ramzswap0 tem o nível de prioridade maior do que a swap do HD. Isso significa que a primeira memória virtual utilizada será a da RAM e assim que ela estiver totalmente preenchida, o sistema passará a utilizar a memória virtual do HD.

Dê o boot e desfrute do novo kernel…

O projeto Omnislash é GNU/GPL…

Gostaria de agradecer aos usuários DiamondMax, DJ, Gatohumano, Violencia.com, Freud.jr, Buli e todos os amigos que apoiam e ajudam o omnislash!! Valeu Pessoal!!

Abraços

Hqx

Anúncios

22 Responses to Kernel 2.6.30-omnislash1 – Compilando e Instalando um kernel otimizado no seu KUXbuntu ou Debian

  1. Diogo says:

    Olá, eu gostaria de tirar uma dúvida a respeito do seu kernel para o meu PC desktop. Na parte “Arquivo de Configuração otimizada”, a sua otimização está para 32 bits, mas o meu processador é de 64 bits (core 2 duo). Se eu quiser usar a sua otimização para ativar diversas partes do kernel e todos os patches que colocou para o meu processador (64 bits), só basta escolher o modelo do meu processador na parte “Processor type and features”? ou terei que modificar mais alguma coisa?

    Um abraço!!

  2. elias says:

    Olá, ótimo artigo.
    Poderia indicar os links ou disponiblizar os patches usados?
    Eu quero compilar o kernel e escolher quais patches aplicar.

    Obrigado.

  3. kcnp says:

    Cara eu tenho um Intel Celeron D Processor. Você me aconselha utilizar a a opção K8 em “Processor type and features”? Se não qual a melhor pro meu processador?

  4. Ícaro says:

    Cara, me responde uma coisa por favor.
    Num kernel teu mais antigo um pouco(acho que 1 mês atrás) eu instalei no meu ubuntu, mas os efeitos do gnome pararam de funcionar. Até instalei uns drivers novos da nvidia pelo envy mas não consegui ativar os efeitos.
    Isso tá acontecendo com esse 2.6.27.3.1(deste post) também?

    Obrigado e continua o bom trabalho.

  5. Alexandre Santos says:

    Excelente artigo,

    só peco e um único aspécto.

    Você fez ele voltado apenas para o Debian, eu to fazendo a compilação dele aqui no meu slackware e me senti afastado dessa comunidade.

    O interessante seria criar um artigo bem genérico (para poder ser aproveitado em todas as distribuições) e depois você cria um voltado para o debian e etc.

    Excelente Trabalho.

  6. Pingback: Projeto Omnislash - Otimização no Kernel!! « Kubuntu Dicas, Otimização & Diversão!!!

  7. Seria ótimo se as distribuições trocassem mais informações acerta das otimizações, que projetos como o seu sejam mais divulgados e reconhecidos, eu fiz minha parte postando no meu blog:

    http://vivaotux.blogspot.com/2008/11/projeto-de-otimizao-do-kernel.html

  8. Marcelo says:

    Ola! Acho muito válida a sua iniciativa, entretanto concordo com um amigo acima… Você poderia colocar a fonte de todos os patches q você usou? Eu gostaria de ter a liberdade de instalar os patches que eu quizer no meu Slackware.

    Do jeito que você coloca, me prende ao seu projeto e seguindo a GNU/GPL eu teria que ter acesso aos fontes né? Me corrija se estiver errado…

    Ajuda ai…. No mais, ótima iniciativa.

    Até

  9. hqxriven says:

    Geralmente os criadores dos patches colocam os seus e-mails nos mesmos.

    Os patches são encontrados na área de desenvolvimento de cinco distros: Fedora, Sidux, Mandriva, Ubuntu e Debian.

    O que eu faço é pegar os que considero os melhores patches de cada distro e fazê-los trabalhar em conjunto… criando um único patch incluindo eles.

    O patch já o fonte…

    Talvez vc não saiba mais um kernel linux funciona em qualquer distro linux…

    Já pude testar no Gentoo e tb no Mandriva. Além do que eu uso o Debian e nele funciona tb.

    Agora é claro, o que vai fazer fazer ele funcionar na distro X ou Y é a configuração do kernel.

    Mais aí é na configuração que reside o problema e não no kernel em si.

    Se vc usar o omnislash e se não entrar com a minha config ele vai funcionar em qualquer coisa…

    Conforme já aconteceu com um usuário…

    http://www.guiadohardware.net/comunidade/compilar-kernel/864573/

    Mas tem que mexer em algumas coisas…

    Obrigado pelo comentário e Boa Noite!!!

  10. MSXManiac says:

    Como ativar suporte ao ext4 no omnislash?

  11. Marco says:

    Em “Processor type and features”:

    qual é o melhor pra Phenom II x4 ??

  12. hqxriven says:

    Pode deixar K8 ou i686…

  13. athalyba says:

    Muito bom o artigo, caro hqxriven … Vou tentar mais adiante … Esse negócio de compilar o kernel é tradicionalmente intimidante para os neófitos 🙂

  14. E aí hqx. beleza?

    Tu tem, ou sabe de alguém que tenha, alguma config para os kerneis 64-bit?

    To gostando mto do kernel 64, e tua config é 32. queria melhorar ela um pouco. Ou tu terias as fontes delas, posso tentar vê-las. me manda pelo e-mail o link . ilkyest@hotmail.com

    E como eu posso dispor uma config “genérica” para o pessoal?

  15. Ah!. teria alguma config que gostaria de testar? me ofereço para cobaia.

    Detalhe. trabalho com o kubuntu jaunty-64bit, num sistema ext4

  16. Marco says:

    Será que é possível adicionar o suporte à compressão MPPC[1] já que não temos problemas com patentes aqui?

    Acho incrível que a Canonical ainda não o tenha contratado, hqxriven. Acho que vou abrir um bug para isso.

    [1] http://mppe-mppc.alphacron.de/

  17. Antonio mattos says:

    Kara muito maneiro esse seu projeto, eu usei no kernel 28 e ficou muito bom, agora eu estava querendo usar o kernel 32 mas fui usar o pach omnislash e não aceitou, dando varios erros, vc tem previsão de quando vai liberar um pach para nova versão do kernel?

    desde já agradeço, e continue com esse fantastico trabalho.

    VLW

  18. Eduardo says:

    Outra pergunta:
    Esses patches funcionam com os patch do LinuxDNA ( http://www.linuxdna.com/ )?
    O LinuxDNA, que tenta compilar o kernel com o ICC, é dito ter uma melhora de 40% de performance em algumas partes do kernel, 7-8% na média.
    Será que funciona?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: