Kernel 2.6.28.9-omnislash5 – 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.28 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.28.tar.bz2
http://rapidshare.com/files/216180674/omnislash.bz2
http://rapidshare.com/files/225797545/config-2.6.28.9-omnislash5
3 – Verifique a integridade do arquivo abrindo um novo terminal e digitando o seguinte comando
$md5sum linux-2.6.28.tar.bz2
Veja se o resultado dos números é igual a esse:
d351e44709c9810b85e29b877f50968a linux-2.6.28.tar.bz2
$md5sum omnislash.bz2
Veja se o resultado dos números é igual a esse:
4114fe66a3c47e8248496e075302318f omnislash.bz2
$md5sum config-2.6.28.9-omnislash
Veja se o resultado dos números é igual a esse:
9d407542fe809279c101663a4547c06d config-2.6.28.9-omnislash5
Copie o arquivo baixado para /usr/src para isso digite os comandos abaixo:
$su (depois digite a senha do root)
#cp linux-2.6.28.tar.bz2 /usr/src
#cp omnislash.bz2 /usr/src
#cp cfg /usr/src
Descompactação e link simbólico
#cd /usr/src
#tar -xvjf linux-2.6.28.tar.bz2
#chmod -R a-s /usr/src/linux-2.6.28 (possivelmente será necessário usar esse comando em distribuições baseadas no debian)
#rm -rf linux && ln -s /usr/src/linux-2.6.28 linux
#cp omnislash.bz2 /usr/src/linux
#cp cfg /usr/src/linux
#cd /usr/src/linux
Arquivo de Configuração otimizada
Dessa forma o kernel usará a minha configuração otimizada (32 bits) e isso resultará na ativação de diversas partes do kernel e todos os patches que coloquei. Se você não usá-la terá um trabalho enorme para ativar tudo.
#bzcat omnislash.bz2 |patch -p1
#cp /usr/src/linux-2.6.28/config-2.6.28.9-omnislash5 .config && make xconfig
Caso o comando não funcione tente o seguinte:
#cp /usr/src/linux-2.6.28/config-2.6.28.9-omnislash5 .config && make menuconfig
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=686 kernel_image kernel_headers modules_image
Caso seja um dual ou quad core use o comando abaixo para acelerar a compilação
#CONCURRENCY_LEVEL=2 make-kpkg –initrd –revision=i686 kernel_image kernel_headers modules_image
Obs.: Lembrando que são dois traços antes de initrd e antes de revision e NÃO um apenas.
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.28*.deb
Ativando o compcache (contribuição do usuário DiamondMax)
Para ativá-lo:
Nas distribuições baseada no debian como o Ubuntu, digite num terminal:
#nano /etc/init.d/bootmisc.sh
Adicione ao final do arquivo:
modprobe ramzswap
e
swapon /dev/ramzswap0 -p 100
Isso fará com que o Compcache e o Xvmalloc sejam carregados durante o boot.
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
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!!
Olá, ótimo artigo.
Poderia indicar os links ou disponiblizar os patches usados?
Eu quero compilar o kernel e escolher quais patches aplicar.
Obrigado.
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?
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.
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.
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
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é
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!!!
Como ativar suporte ao ext4 no omnislash?
Em “Processor type and features”:
qual é o melhor pra Phenom II x4 ??
Pode deixar K8 ou i686…
Muito bom o artigo, caro hqxriven … Vou tentar mais adiante … Esse negócio de compilar o kernel é tradicionalmente intimidante para os neófitos
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?
Ah!. teria alguma config que gostaria de testar? me ofereço para cobaia.
Detalhe. trabalho com o kubuntu jaunty-64bit, num sistema ext4
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/
ilkyest é melhor tentar falar com o bernardo pois ele falou comigo que tinha testado…
Ivan eu ainda estou nos 32 bits tenho que portar tudo para 64 bits e isso ainda é complicado…
Marco olhei o link que vc passou e esse aqui tb http://gaute.vetsj.com/2008/03/19/mppc-for-arch-linux-kernel-2624/ e achei interessante. Vou tentar portar para o omni (não sei se vou conseguir mas vou tentar).
E vi aqui tb…
http://www.adamsinfo.com/linux-pptp-poptop-vpn-setup-with-mppe-and-mppc/#more-475
Obrigado pela sugestão!!
chegando nessa parte “#bzcat omnislash.bz2 |patch -p1″ ele pede “File to Patch: ”
o que eu coloco?? to Travado nessa parte!!
Abraço!
opaa
corrigido….foi falha minha!
Valeuu
hqxriven preciso de uma ajudinha,poderias postar os setings aconselhaveis para o sysctl?para dualcore e para unicore,lembro-me de ter visto isso no forum do ubuntu mas infelizmente o topico parece que desapareceu de vez,outra coisa,em que sites posso arranjar patchs?ando a procura de patchs para mudar os HZ do cpu.
Ja agora para quando um novo omnislash?
Abraço