Autor Tópico: Compilando o Kernel otimizado para o seu processador no Ubuntu!  (Lida 208819 vezes)

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #150 Online: 28 de Setembro de 2011, 22:02 »
Aparentemente, com o Ubuntu 10.04, é complicado compilar a versão 3.0 do kernel
Atualiza o gcc que dá.

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #151 Online: 28 de Setembro de 2011, 23:22 »
Aparentemente, com o Ubuntu 10.04, é complicado compilar a versão 3.0 do kernel
Atualiza o gcc que dá.
Estou usando o GCC 4.5. Revisei tudo o que fiz e vou tentar de novo. Acho que no momento em que instalei o kernel 3.0.0-8 via ppa eu acabei esquecendo de instalar o pacote headers. Instalei o image e o headers-generic.

Então, acredito que o problema aconteceu no momento em que o GCC consulta o headers para o kernel 3.0.0-9-14 do natty e encontra a referência do 2.6.32-37.
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline RonaldoRG

  • Usuário Ubuntu
  • *
  • Mensagens: 659
    • Ver perfil
    • Twitter: @rafas_andrade
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #152 Online: 29 de Setembro de 2011, 22:00 »
Fiz uma nova compilação, agora seguindo as dicas do galactus e tá aqui funcionando normal. Retirei também algumas coisas que não utilizo aqui.

Aparentemente não notei nenhuma melhora, mas vou continuar testando pra ver o que acontece.

T+.
Ubuntu 12.04

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #153 Online: 29 de Setembro de 2011, 22:11 »
No repositório de onde baixei o pacote linux-source-3.0 existe a versão original do kernel e os patches. Pensei em tentar por esse pacote, mas nesse caso, considerando que vou compilar no ubuntu 10.04, devo simplesmente aplicar os patches disponibilizados no repositório ou existe algum outro patch a ser considerado?

Edit: Depois de um tempo refletindo, pensei numa solução mais óbvia. Se pretendo compilar a partir do linux-source e tenho instalado o kernel 3.0.0-8.11, por que não baixar e instalar manualmente o linux-source da mesma versão?

Além do mais tenho instalados o linux-headers, linux-headers-generic e linux-image-generic dessa versão, já com o GCC atualizado para 4.5 e build-essential

O tutorial do Hqxriven trata da compilação do kernel pelo código fonte e nos tutoriais sobre compilação pelo linux-source existe a referência de necessidade do pacote linux-kbuild, da mesma versão do kernel a ser compilado. Pesquisei sobre esse pacote e pelo que entendi ainda não existe versão dele para o kernel 3.0.

Então, posso seguir tranquilamente o tutorial do Hqxriven com o linux-source e ignorar esse linux-kbuild?
« Última modificação: 02 de Outubro de 2011, 20:29 por xluisfernando »
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #154 Online: 23 de Outubro de 2011, 11:30 »
Esse pacote linux-kbuild parece ser específico do debian. Mas, no ubuntu existe um pacote kbuild.
Numa nova instalação, com o sistema limpo de experiências anteriores e sem os pacotes gcc instalados, ao marcar para a instalação desse kbuild no synaptic, nenhuma dependência extra foi relacionada.
No debian, o pacote linux-kbuild segue a numeração do kernel, assim como o linux-source.

Afinal, qual seria a finalidade desse pacote kbuild?
Samsung Ativ Book i3 - Ubuntu 20.04LTS

mariojuniorjp

  • Visitante
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #155 Online: 30 de MAR?O de 2012, 19:36 »
No meu i7 920, ele retornou a linha --param l2-cache-size=8192, só que 8192 é o cache L3, e não o L2, que é 256. Devo colocar os 256 ou os 8192?

E no arquivo "/usr/src/linux-2.6.xx/arch/x86/Kconfig.cpu        - linha 300", não tem nenhuma opção citando march, mcpu ou mtune não "isso no kernel 3.2.0". Nesse kernel não seria em makefile_32.cpu não? Por que nesse arquivo cita um desses argumentos.
« Última modificação: 30 de MAR?O de 2012, 19:54 por mariojuniorjp »

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.684
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #156 Online: 31 de MAR?O de 2012, 04:47 »
No meu i7 920, ele retornou a linha --param l2-cache-size=8192, só que 8192 é o cache L3, e não o L2, que é 256. Devo colocar os 256 ou os 8192?

E no arquivo "/usr/src/linux-2.6.xx/arch/x86/Kconfig.cpu        - linha 300", não tem nenhuma opção citando march, mcpu ou mtune não "isso no kernel 3.2.0". Nesse kernel não seria em makefile_32.cpu não? Por que nesse arquivo cita um desses argumentos.

Você deve usar a saída do comando do gcc, os arquivos a serem modificados para o kernel 3.2 são:
 Makefile, arch/x86/Makefile e arch/x86/Makefile_32.cpu.

Eu preciso atualizar esse tópico, mudou muita coisa para esses kerneis da série 3.0 em diante. Vou testar uma nova compilação hoje para ver se tudo dá certo e farei as alterações no tópico.
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Offline py8elo

  • Usuário Ubuntu
  • *
  • Mensagens: 107
  • Acorda Brasil!
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #157 Online: 27 de Abril de 2012, 12:18 »
Senhores,
após inúmeras tentativas sem sucesso, finalmente acabo de compilar um kernel 3.xx no meu Ubuntu 10.10 LTS e ficou muito bom o desempenho...
Eu usei os fontes do kernel do BackTrack 5R2 (3.2.6-bt5r2 #1 SMP Fri Apr 27 08:32:06 BRT 2012 i686 GNU/Linux) e compilei de forma convencional(make localmodconfig, make -j4 all, make-kpkg clean, fakeroot make-kpkg --initrd --append-to-version=-bt5r2 kernel-image kernel-headers)
 gerando os debs e depois os instalei (dpkg -i linux-*.deb)sem qualquer problema.
Se alguem estiver interessado, posso postar em algum repositório os fontes e ou o kernel já compilado...
O consumo de processamento com o Firefox aberto com inúmeras abas, o Adobe Acrobat Reader, o Eudora e mais um programa de comunicação (JT65-HF) é de apenas 6 ~ 9% de cada processador do meu E7500 rodando em over a 3.2GHz e o consumo de memória é de apenas 466 ~ 500Mb... Nesse momento enquanto digito esta msg, o consumo é de:27% de processadores e 786Mb de ram...
Este é o primeiro kernel 3.xx que eu consigo compilar e rodar no meu Super Ubuntu 10.10 LTS... Ainda está em testes mas, acredito que eu não terei problemas com ele...
A minha Nvidia GeForce 9500 GS teve seu driver instalado automaticamente pelo script daquela minha antiga dica, durande a instalação do novo kernel e funcionou perfeitamente....

[]'s,

Silva.
« Última modificação: 27 de Abril de 2012, 12:21 por py8elo »
Ubuntu 16.04 LTS
G41M-S01 + E7500 + 4Gb Ram + Gforce GT610 2Tb SATA + 3x500Gb SATA
Linux registered user #521164

mariojuniorjp

  • Visitante
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #158 Online: 26 de Novembro de 2012, 18:06 »
Outra dica importante do vampire_thunder é que você pode compilar o kernel otimizado para um processador, mesmo não estando na máquina em que você vai usar o kernel!  Mas para isso é preciso executar o comando
Código: [Selecionar]
$cc -march=native -E -v - </dev/null 2>&1 | grep cc1
Na máquina em que o kernel vai ser utilizado, copiar a saída do comando do que interessa e alterar tudo na outra máquina, assim você vai compilar tudo como se estivesse na maquina em que o kernel vai ser utilizado!
É uma mão na roda se você tem uma máquina poderosa para compilar o kernel e a outra máquina em que o kernel otimizado vai ser usado é muito ruim!  Então você pode usar um Core i7 ou um Phenon X4 para compilar kernel para um Atom 330 ou um K6-II da vida!!!!  É possível inclusive compilar um kernel 32bits em uma máquina 64bits, mas não o contrário, se não me engano!  Mas isso é outro tutorial que o tio vampire vai fazer!!!  :P


Nas páginas abaixo você vai encontrar muito mais informações do que coloquei aqui!  Muita coisa foi testada e agora sabemos que não funciona direito ou não vale a pena usar! Esteja a vontade para fazer os seus testes!
Qualquer erro é só avisar!  Se tiver novidades também serão bem vindas!
 
Este tutorial é fruto das seguintes páginas:

http://en.gentoo-wiki.com/wiki/Safe_Cflags
http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS
http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel#Core_i7_and_Core_i5.2C_Xeon_55xx
http://ubuntuforum-br.org/index.php/topic,29799.3300.html
http://ubuntuforum-br.org/index.php/topic,29799.3210.html
http://ubuntuforum-br.org/index.php/topic,29799.3180.html
http://ubuntuforum-br.org/index.php/topic,29799.3120.html
http://ubuntuforum-br.org/index.php/topic,29799.3060.html
http://ubuntuforum-br.org/index.php/topic,29799.3480.html
http://ubuntuforum-br.org/index.php/topic,29799.3510.html

Obrigado a todos!

Atendendo ao pedido do Vampire, aqui vai um exemplo do que otimizações do sistema podem fazer por um PC antigo:
Pentium 4 1.5Ghz com 384MB de RAM, sendo 64MB para o Vídeo Onboard Matrox! É isso mesmo, Matrox!
HD de 20GB!  Placa mãe Fujitsu com Chipset Intel 845, e todo o restante do hardware, com exceção da "potente" placa de vídeo Matrox, eram Intel!
Portanto uma máquina com 10 anos de idade! Sua Bios é de 2001! Com isso ele consegue ter um poder de processamento ainda pior que um Atom moderno!

http://www.youtube.com/watch?v=OCevVWiZCks

Atendendo a mais uma pedido, aqui vai a versão deste tutorial em PDF: http://www.megaupload.com/?d=7KXGNLEK

Amigo, uma dúvida. Estou compilando o kernel para o meu Atom, no meu outro computador, rodando o Ubuntu dentro do virtualbox, com um core i7.

De acordo com suas informações, devemos substituir a parte "march=familia do processador" para "march=native", só que tem um porém:

Na minha máquina com o Atom, no mach saiu o nome da familia do processador "Atom". Mas como eu vou realizar a compilação em outro computador, o correto não seria eu deixar o nome da familia em vez de colocar o "native" não? Pois eu creio que, se eu colocar o "native", o compilador irá compilar para o processador da maquina que está realizando a compilação "no caso um core i7".

Ou estou enganado? Aguardo sua resposta!  :D

Offline nomade

  • O negócio não tem alma
  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.195
  • O negócio não tem alma
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #159 Online: 27 de Novembro de 2012, 07:43 »
Voto por fixarem o tópico... genial, véio!
Ubuntu Studio 22.04 LTS

mariojuniorjp

  • Visitante
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #160 Online: 27 de Novembro de 2012, 17:09 »
Voto por fixarem o tópico... genial, véio!

Digo o mesmo! FIXO JÁ!  ;D

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.684
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #161 Online: 28 de Novembro de 2012, 02:21 »

Amigo, uma dúvida. Estou compilando o kernel para o meu Atom, no meu outro computador, rodando o Ubuntu dentro do virtualbox, com um core i7.

De acordo com suas informações, devemos substituir a parte "march=familia do processador" para "march=native", só que tem um porém:

Na minha máquina com o Atom, no mach saiu o nome da familia do processador "Atom". Mas como eu vou realizar a compilação em outro computador, o correto não seria eu deixar o nome da familia em vez de colocar o "native" não? Pois eu creio que, se eu colocar o "native", o compilador irá compilar para o processador da maquina que está realizando a compilação "no caso um core i7".

Ou estou enganado? Aguardo sua resposta!  :D

Mário. O trecho que você destacou já responde a sua pergunta.


Como o vampire_thunder disse, se você quiser compilar o kernel otimizado para um processador, mesmo não estando na máquina em que você vai usar o kernel, basta executar o comando a seguir no seu Atom

Código: [Selecionar]
$cc -march=native -E -v - </dev/null 2>&1 | grep cc1

e depois usar a saída deste comando para ser colada no make file da máquina com Core i7 que vai compilar o kernel para o Atom! Passou o cartão agora?

Se você utilizar o march=native no core i7, esse kernel será otimizado para o seu Core i7 e não para o Atom.

Eu só compilava o kernel do Atom no Atom mesmo.

Quanto a fixar o tópico, acho que não precisa mais. O interesse neste assunto caiu muito. O pessoal quer praticidade. Os kerneis genéricos também melhoraram o desempenho em geral.

Outra dica importante, apesar da dica do make file do kernel ainda ser válida. Muita coisa mudou  no processo de compilação do kernel em relação ao tópico do HqxRiven. Portanto aconselho a vocês a procurar um tuto atualizado, existem vários em inglês,  para poder colocar essa parte do make file do kernel em um tuto atualizado.

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

Offline nomade

  • O negócio não tem alma
  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.195
  • O negócio não tem alma
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #162 Online: 28 de Novembro de 2012, 12:45 »
Fala galera, então, instalei o omnislash num pentium III 750Mhz com Lubuntu 10.04 e realmente notei um ganho de desempenho. Mas o comando:
Código: [Selecionar]
$cc -march=native -E -v - </dev/null 2>&1 | grep cc1 não me retorna nada.

Como fazer para otimizar para esse processador?
« Última modificação: 28 de Novembro de 2012, 13:28 por nomade »
Ubuntu Studio 22.04 LTS

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.684
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #163 Online: 29 de Novembro de 2012, 01:35 »
Fala galera, então, instalei o omnislash num pentium III 750Mhz com Lubuntu 10.04 e realmente notei um ganho de desempenho. Mas o comando:
Código: [Selecionar]
$cc -march=native -E -v - </dev/null 2>&1 | grep cc1 não me retorna nada.

Como fazer para otimizar para esse processador?

Olá nomade. Tá faltando você instalar os pacotes para poder compilar o kernel!

Tenta um:  apt-get install build-essential bin86 kernel-package libqt3-mt-dev wget libncurses5 libncurses5-dev

E tente executar os comandos novamente!

Esse meu tutorial assume que você já sabia dessa nescidade!  ;)

Olha o link: http://ubuntuforum-br.org/index.php/topic,29799.msg375471.html#msg375471

« Última modificação: 29 de Novembro de 2012, 01:39 por galactus »
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Offline nomade

  • O negócio não tem alma
  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.195
  • O negócio não tem alma
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #164 Online: 29 de Novembro de 2012, 12:22 »
Resultou no seguinte:

Citar
build-essential já é a versão mais nova.
wget já é a versão mais nova.
libncurses5 já é a versão mais nova.
Alguns pacotes não puderam ser instalados. Isto pode significar que
você solicitou uma situação impossível ou, se você está usando a
distribuição instável, que alguns pacotes requeridos não foram
criados ainda ou foram retirados da "Incoming".
A informação a seguir pode ajudar a resolver a situação:

Os pacotes a seguir têm dependências desencontradas:
  libncurses5-dev: Depende: libncurses5 (= 5.7+20090803-2ubuntu3) mas 5.7+20101128-1 está para ser instalado
  libqt3-mt-dev: Depende: libxext-dev (>= 4.3.0.dfsg.1-4) mas não será instalado
                 Depende: libxrandr-dev (>= 4.3.0.dfsg.1-4) mas não será instalado
                 Depende: libsm-dev (>= 4.3.0.dfsg.1-4) mas não será instalado
                 Depende: libxmu-dev (>= 4.3.0.dfsg.1-4) mas não será instalado
                 Depende: libice-dev (>= 4.3.0.dfsg.1-4) mas não será instalado
                 Depende: libxt-dev (>= 4.3.0.dfsg.1-4) mas não será instalado
                 Depende: libxrender-dev mas não será instalado
                 Depende: libxcursor-dev mas não será instalado
                 Depende: libxinerama-dev mas não será instalado
                 Depende: libxi-dev mas não será instalado
                 Depende: zlib1g-dev mas não será instalado
                 Depende: libjpeg62-dev mas não será instalado
                 Depende: libmng-dev (>= 1.0.3) mas não será instalado
                 Depende: libpng12-dev mas não será instalado ou
                          libpng12-0-dev
                 Depende: libfontconfig1-dev mas não será instalado
                 Depende: libfreetype6-dev mas não será instalado
                 Depende: libxft-dev mas não será instalado
                 Depende: libcups2-dev mas não será instalado
                 Depende: libgl1-mesa-dev mas não será instalado ou
                          libgl-dev
                 Depende: libglu1-mesa-dev mas não será instalado ou
                          libglu-dev
E: Pacotes quebrados

Não sei bem o que fazer... não dá pra remover com segurança o libncurses5 (5.7+20101128-1), para eu tentar um downgrade. O que você me sugere, meu camarada galactus?
« Última modificação: 29 de Novembro de 2012, 12:26 por nomade »
Ubuntu Studio 22.04 LTS