Compilando o Kernel otimizado para o seu processador no Ubuntu!

Iniciado por galactus, 22 de Abril de 2011, 09:49

tópico anterior - próximo tópico

galactus

nomade, que versão do Ubuntu você está usando?

Que lista de repositórios você está usando também? Isso aí é conflito na sua lista de repositório. Tem coisa nova conflitando com velha!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

nomade

Lubuntu 10.04... esse PC é de um dos gabinetes da câmara de vereadores de Paraty-RJ, ele foi uma doação da Petrobras em um projeto de reciclagem de hardware. O camarada que administrava antes e está de saida colocou um monte de PPAs. Removí todas mas só isso não faz o downgrade, né, hehehe... e se eu remover o libncurses5 5.7+20101128-1(que é o que tá impedindo que a coisa ande) vai demorar até eu instalar novamente por conta de todas as dependências e da internet lentíssima e ainda corre o risco de vir a inutilizar o sistema. Como eu vou começar a trabalhar de fato com eles em janeiro. Por enquanto vou deixar assim, pois tô voltando pra minha cidade amanhã, quando eu voltar faço uma instalação limpa.

Valeu a atenção galactus! Abraço meu camarada!
Ubuntu Studio 22.04 LTS

Arthur Bernardes

Aê galera, desculpem reviver o tópico, mas achei interessante o tuto, e queria um PDF, mas o link de download tá quebrado (MegaUpload ficou fora um tempo)..!

Valeu..!

EdvaldoSCruz

Ignorância é não aceitar e não submeter-se a CRISTO JESUS.
Para os Iniciantes, como eu, links de solucionar problemas rapidamente.

Arthur Bernardes

Ele era um ótimo Servidor..!

Galactus, tem como me disponibilizar o PDF..?

Cara, tô querendo fazer um Overclock no meu Pentium 4 3.0 Ghz.! Como devo iniciar..? Faço por Bios ou compilando o Kernel melhoraria o desempenho..?

nomade

 
Citação de: Arthur Bernardes online 30 de Março de 2013, 16:56
Ele era um ótimo Servidor..!

Galactus, tem como me disponibilizar o PDF..?

Cara, tô querendo fazer um Overclock no meu Pentium 4 3.0 Ghz.! Como devo iniciar..? Faço por Bios ou compilando o Kernel melhoraria o desempenho..?
Cara, o kernel otimizado melhora o desempenho significativamente, mas não é um overclock. É simplesmente uma configuração com instruções especificas para o funcionamento do sistema em geral com seu processador. Similar a isso é o apt-build, procure sobre ele, é mais simples que compilar o Kernel e tem quase o mesmo efeito, só que é em relação a instalação dos aplicativos e não da base do sistema.

Overclock é uma parada que depende de 4 fatores...
1º é a refrigeração do seu PC, ele tem que estar bem ventilado.
2º é se sua placa mãe tem opções de clock liberadas, por exemplo, nas placas ECS, só as black edition são tem edição de clock liberada, As gigabyte tem edições assim, as MSi costumam ser todas com clock aberto a mudanças... as plcas asus.
3º Saber quanto de clock o modelo específico do seu processador suporta.
4º Saber resetar o cmos de sua placa-mãe caso dê errado e o PC não inicialize depois de aumentar o clock. Essa informação você obtem no manual de sua placa.

Daí é só ir fazendo testes. Eu usei durante muito tempo um Celeron 430, que tem o clock padrão de 1.8 Ghz, com o clock de 3.0Ghz, sem sustos, com meus filhos jogando jogos pesados... era um ganho considerável, mas com a tampa do PC aberta e um ventilador virado pra ele. Mantinha a temperatura normal, pois esse processador, incrivelmente, suporta até 3.6Ghz. O seu pentium já é 3.0Ghz... até onde vale apena aumentar o clock? 3.2, 3.3 por aí... mas será que vai dar um ganho perceptível? Talvez em algum jogo, mas no uso do sistema em si, acho que nem vai notar a diferença.
Ubuntu Studio 22.04 LTS

Arthur Bernardes

Então, acho que nem vale a pena, tem 6 anos já..! E ele já está no máximo.. Minha Placa-Mãe é ASUS, melhor então nem arriscar tanto assim..!

Mas se compilar o Kernel, posso melhorar o desempenho..? Tá deplorável usar esse computador com 4 usuários..! :(

É 2GB de Ram, com Pentium 4, essa bagaça hoje não vale nada, antes era top de linha, hoje é Top de Lixo..! ;D ;D

Mesmo assim, obrigado pelas informações amigo..!

nomade

#172
Citação de: Arthur Bernardes online 31 de Março de 2013, 18:30
Então, acho que nem vale a pena, tem 6 anos já..! E ele já está no máximo.. Minha Placa-Mãe é ASUS, melhor então nem arriscar tanto assim..!

Mas se compilar o Kernel, posso melhorar o desempenho..? Tá deplorável usar esse computador com 4 usuários..! :(

É 2GB de Ram, com Pentium 4, essa bagaça hoje não vale nada, antes era top de linha, hoje é Top de Lixo..! ;D ;D

Mesmo assim, obrigado pelas informações amigo..!
A ideia é que compilando o kernel otimizado dê um ganho razoável... só usei isso uma vez em um Lubuntu 10.04 instalado num pentium III 750Mhz (quer pior do que isso?)... deu um gás considerável!! Posso dizer que de impraticável ficou sofrível... hehehehe, mas já foi uma melhora... garanto. Numa escala de 1 à 100, melhorou 50% o desempenho. Mas era um PC muito ruim mesmo...
Ubuntu Studio 22.04 LTS

aceleron

#173
Pessoal, eu estou a compilar o kernel 3.9. Uso o linux já a alguns meses e tenho alguns conhecimentos de programação. Logo não sou "newbiesão" que está querendo dar passos maiores que as pernas. Até porque já compilei o kernel anteriormente a algum tempo e estou a fazer denovo.

Eu segui o tutorial do site abaixo por ser mais recente:
http://enterprisenetworks.wordpress.com/2012/11/13/compile-i3i5i7xeon-optimized-linux-kernel-on-ubuntu-12-04-x32/

Só que o processador que utilizo é um i3. Utilizei as dicas de alteração do march, mtune e mcpu desde tópico.
A dúvida que eu tenho é qual comando correto eu devo utilizar para iniciar a compilação.
Eu parei no comando:
fakeroot debian/rules clean

e para compilar segundo o site é:

skipabi=true skipmodule=true fakeroot debian/rules binary-indep
skipabi=true skipmodule=true fakeroot debian/rules binary-perarch
time skipabi=true skipmodule=true no_dumpfile=yes fakeroot debian/rules binary-nome_customizado_kernel

Já no site http://blog.avirtualhome.com/linux-kernel-3-9-on-ubuntu/ está assim:
PYTHON_CONFIG=x86_64-linux-gnu-python-config fakeroot debian/rules binary-indep

Neste outro http://linuxtweaking.blogspot.com.br/2011/04/how-to-recompile-your-ubuntu-1104.html está assim:
time fakeroot make-kpkg --initrd --append-to-version=-tweak kernel-image kernel-headers

e por ultimo no http://ubuntuforum-br.org/index.php/topic,29799.msg375471.html#msg375471 está assim:
#CONCURRENCY_LEVEL=2 make-kpkg --initrd --revision=x86 kernel_image kernel_headers modules_image

Isso sem contar que em todos os links as dependências que se deve baixar variam em todos. Mas o pior mesmo são os diferentes comandos para compilar.
Eu estou tentando, buscando e estudando o que cada comando fará. Mas se alguém for capaz de "dar uma luz" ...

aceleron

#174
De ontem para hoje já fiz umas 3 ou 4 compilações de kernel e sempre está dando problema no módulo do virtualbox. Apesar de gerar o kernel source como falaram anteriormente que é necessário, não está funcionando. Sempre fica dizendo: no suitable modules for this kernel. Já fiz a compilação do kernel 3.9 de várias maneiras e não funciona. Verifiquei inclusive que mencionaram anteriormente a necessidade do headers all, mas em nenhum modo de compilação gerou esse arquivo deb.
Eu me lembro que a uns 3 meses eu havia compilado um kernel, que eu não me lembro a versão, mas era uma mais atual que 3.2.X que eu usava na época e funcionou sem problemas. Instalei e o virtualbox funcionou, mas dessa vez não ...
No momento estou usando o 3.9, este que compilei e que o virtualbox não roda. Eu fiz um simples teste de "strees" no processador. Abri o wine com o nfs9 most wanted e não notei diferença de desempenho do 3.9 que eu compilei para o 3.7.X generico que é o anterior. O notebook continua no mesmo patamar de temperatura, etc. Se teve alguma melhor, eu não estou notando. O notebook que uso é um "samlixo" 300E4A com i3.
Por hora (ou dias, talvez) eu desisto.

aceleron

#175
Em minha ultima tentativa de momento, eu fiz o seguinte:
Compilei mesclando as instruções daqui http://mapopa.blogspot.com.br/2009/01/compiling-2.html
com as daqui http://ubuntuforum-br.org/index.php/topic,29799.msg375471.html#msg375471

a diferença para as compilações anteriores foram estes dois comandos que não os executei antes, além do fato de que agora fiz com o kernel-3.8.8

rm -rf /usr/src/linux-2.6.34

mkinitramfs -o /boot/initrd.img-3.8.8 /lib/modules/3.8.8


É ... após instalar os três DEBs gerados, o virtualbox continuou funcionando ao utilizar o 3.8.8, mas tem um detalhe. Na instalação dos DEBs aconteceu isso:


Selecting previously unselected package linux-headers-3.8.8.
(Reading database ... 159066 files and directories currently installed.)
Unpacking linux-headers-3.8.8 (from linux-headers-3.8.8_3.8.8-10.00.Custom_amd64.deb) ...
Selecting previously unselected package linux-image-3.8.8.
Unpacking linux-image-3.8.8 (from linux-image-3.8.8_3.8.8-10.00.Custom_amd64.deb) ...
Done.
Selecting previously unselected package linux-source-3.8.8.
Unpacking linux-source-3.8.8 (from linux-source-3.8.8_3.8.8-10.00.Custom_all.deb) ...
Setting up linux-headers-3.8.8 (3.8.8-10.00.Custom) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.8.8 /boot/vmlinuz-3.8.8
Error! echo
Your kernel headers for kernel 3.8.8 cannot be found at
/lib/modules/3.8.8/build or /lib/modules/3.8.8/source.

Setting up linux-image-3.8.8 (3.8.8-10.00.Custom) ...

Hmm. There is a symbolic link /lib/modules/3.8.8/build
However, I can not read it: No such file or directory
Therefore, I am deleting /lib/modules/3.8.8/build


Hmm. The package shipped with a symbolic link /lib/modules/3.8.8/source
However, I can not read the target: No such file or directory
Therefore, I am deleting /lib/modules/3.8.8/source

Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 3.8.8 /boot/vmlinuz-3.8.8
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.8.8 /boot/vmlinuz-3.8.8
update-initramfs: Generating /boot/initrd.img-3.8.8
Warning: No support for locale: en_US.utf8
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.8.8 /boot/vmlinuz-3.8.8
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.8.8 /boot/vmlinuz-3.8.8
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.8.8 /boot/vmlinuz-3.8.8
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.8.8
Found initrd image: /boot/initrd.img-3.8.8
Found linux image: /boot/vmlinuz-3.7.0-7-generic
Found initrd image: /boot/initrd.img-3.7.0-7-generic
Found memtest86+ image: /boot/memtest86+.bin
done
Setting up linux-source-3.8.8 (3.8.8-10.00.Custom) ...
dpkg: warning: obsolete option '--print-installation-architecture'; please use '--print-architecture' instead
Examining /etc/kernel/src_postinst.d.


E na instalação dos pacotes, eu reiniciei a máquina e liguei o linux com o kernel 3.8 aí eu fui até o synaptic e procurei os pacotes do kernel 3.8.8 e não os encontrei, só estavam lá os do 3.7. Isso utilizando o kernel 3.8.8. Até confirmei mandando um uname -r.
Como eu fiz uma imagem do linux antes de iniciar os procedimentos de compilação de kernel e tudo mais, eu restaurei a imagem anterior e novamente instalei os pacotes DEBs do kernel 3.8.8 que compilei. De primeira, pensei que não ia adiantar de nada. Mas antes mesmo de bootar com o kernel 3.8.8, eu fui ao synaptic e procurei pelos pacotes 3.8 e desta vez eles estão lá. Vale destacar que o mesmo erro da saída acima ocorreu, mas está funcionando.

Resumindo, não sei se trocar do kernel 3.9 para o 3.8.8 foi o que adiantou ou se foram os dois comandos não executados anteriormente que resolveram agora. Mas mesmo assim e estranho essa mensagem de erro na instalação dos pacotes. O negócio é que a pasta /lib/modules/3.8.8/build existe, só que ela tem um tamanho de aproximados 46 mb enquanto a 3.7.0-7-generic tem 156 mb.
No geral, foram vários resultados diferentes para diferentes compilações de kernel. No mais vou ficar usando o 3.8.8 e verificar como ficará o desempenho geral da máquina em termos de processamento, bateria, etc.
Eu me lembro que quando compilei o kernel a primeira vez a uns três meses, eu utilizei as instruções do link http://duopetalflower.blogspot.com/2010/10/ubuntu-maverick-64bit-kernel.html
só na hora de compilar que eu não usei os comandos que o site usava. E um detalhe. Neste site (duopetalflower) tem alguém, nos comentário que disse ter tido o mesmo erro que eu, o erro de "no suitable modules kernel ....". O mesmo erro que tive ontem.
Conforme eu disse anteriormente, tenho só alguns meses de linux e muitas informações que eu sei ainda estão soltas e eu não consegui juntar o "quebra-cabeças". Se alguém que já montou o seu for capaz de dar alguma sugestão ou até mesmo corrigir alguma merd4 que eu falei ...
Por hora é isso e chega de compilação.

aceleron

   Só para fechar as minhas respostas anteriores, a respeito da questão do desempenho. Eu sei que em alguma das páginas anteriores deste tópico alguém falou alguma coisa sobre compilar atualizações, o sistema inteiro, etc, só não lembro quem e nem a página. Eu poderia até procurar para citar, mas estou sendo compelido por questões de sono e preguiça no momento.
   Anyway, o que eu quero dizer é uma coisa que muitos já devem estar "despentelhados" de tanto saber. Inclusive perguntei hoje na faculdade para um professor sobre essa questão de desempenho, e ele me disse resumidamente mais ou mesno isso:
"seu ganho de desempenho será quase nulo se os programas  não forem compilados para sua arquitetura.". Falou também que é bom compilar o kernel no caso de um firewall específico, caso você queira colocar módulos no núcleo nativamente, etc. Assim como ele disse e também falaram isso aqui no tópico, só faltou eu prestar atenção e não posso dizer que a compilação não serviu de nada. Quem sabe algum dia mais para frente eu resolva baixar todo o source do sistema, mais os programas e compilar tudo. Esse sim vai ser um longo dia.
   Sobre o kernel, estou usando o que eu compilei mesmo e ao menos, até o momento não tive problemas. Inclusive removi tudo o que é desnecessário do kernel antigo que eu usava.

aceleron

Hoje tentei instalar o kernel 3.9 generic que baixei através do http://kernel.ubuntu.com/~kernel-ppa/mainline/
E para minha surpresa aconteceu o mesmo problema que havia ocorrido quando compilei o 3.9. O mesmo problema com os módulos do virtual box. O problema foi exatamente igual. Instalei o kernel generic como sempre faço. Coloco todos os *.deb do kernel em uma pasta e instalo com sudo dpkg -i *.deb. Com isso concluo que deve ter alguma coisa de diferente com essa versão do kernel, ou eu estou fazendo alguma merd4 que ainda não percebi.
Para resolver eu reiniciei o computador e "botei" com o kernel 3.8.8 que eu compilei anteriormente e refiz os modulos do virtualbox sudo /etc/init.d/vboxdrv setup

que resolveu de boa. Ao menos com isso eu sei que eu estava compilando o kernel 3.9 anteriormente de forma certa. Parece que o problema está vindo da fábrica.


galactus

aceleron, entenda que o Ubuntu não é a distro apropriada para perceber toda a diferença que uma compilação customizada pode fazer.

Ele é uma distro binária. Se tentar o arch Linux ou o Gentoo você vai notar maior diferença.

O que dá diferença sim, apesar de muitos não concordarem, é que aplicávamos pacths para melhorar o desempenho do kernel junto com essas dicas do processador. É evidente que se você compilar o sistema inteiro, junto com suas aplicações para sua arquitetura do processador, a diferença vai ser muito maior. Mas como disse antes, o Ubuntu não foi feito para ser todo compilado. Então mexíamos até onde dava menos trabalho.

Você não está fazendo derma, dá muitos erros mesmo, pois os kerneis do Ubuntu são cheios de patchs. Eu mesmo já peguei versão do 3.8.8 de testes dele, já compilado, que não funcionava mais minha hibernação do Notebook. Sá na versão de produção corrigiram o problema. É nesses erros que você vai aprendendo. Verifica o que deu errado e procura corrigir, nem sempre consegue, mas a gente tenta.

Pelo menos você viu o tanto de coisas que você não usa que vem habilitada no kernel.

Você pode tentar também o apt-build, para compilar as aplicações. Dá um serviço do cacete manter tudo compilado com as atualizações constantes do sistema, mas é uma opção. Não é a melhor, mas também dá diferença.

BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

vampire_thunder

Pessoal, depois de muuuuito tempo, resolvi compilar o kernel aqui. Vou compilar o kernel 3.9 do Ubuntu via git, sem patches, até porque o BFQ não foi lançado ainda para o 3.9 e eu já estou usando a versão pré-compilada e estou muito satisfeito.
Usando o .config deste kernel compilado, percebi que em I/O Scheduler a opção "deadline" está selecionada, ao invés do tradicional "CFQ". O que vocês acham?