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

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #120 Online: 17 de Setembro de 2011, 00:26 »
Tenho estudado sobre a compilação de kernel, com o objetivo de otimizar o kernel 3.0 para meu Netbook Asus Eee PC 1000HA. Li este tópico e depois li o da compilação sem o Git. Confesso que as informações são densas e tenho tido dificuldades para entender algumas coisas...

Gostaria de saber se é viável utilizar os arquivos headers e image do kernel 3.0.0.8 do linux-lts-backport-oneric (lucid 10.04), disponíveis em http://www.ubuntuupdates.org/packages/show/364792 , numa compilação.

Minha intenção, por enquanto e para aprendizado, é utilizar um kernel já preparado para o ubuntu e otimizá-lo para o hardware que tenho, seguindo a configuração do processador e retirando os módulos que não se aplicam ao netbook em questão. Mas, não entendi se preciso fazer isso usando alguma coisa do código fonte e até o momento em que escrevo, o kernel.org está indisponível (ainda reflexo do problema de segurança).
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #121 Online: 17 de Setembro de 2011, 11:43 »
Tenho estudado sobre a compilação de kernel, com o objetivo de otimizar o kernel 3.0 para meu Netbook Asus Eee PC 1000HA. Li este tópico e depois li o da compilação sem o Git. Confesso que as informações são densas e tenho tido dificuldades para entender algumas coisas...

Gostaria de saber se é viável utilizar os arquivos headers e image do kernel 3.0.0.8 do linux-lts-backport-oneric (lucid 10.04), disponíveis em http://www.ubuntuupdates.org/packages/show/364792 , numa compilação.

Minha intenção, por enquanto e para aprendizado, é utilizar um kernel já preparado para o ubuntu e otimizá-lo para o hardware que tenho, seguindo a configuração do processador e retirando os módulos que não se aplicam ao netbook em questão. Mas, não entendi se preciso fazer isso usando alguma coisa do código fonte e até o momento em que escrevo, o kernel.org está indisponível (ainda reflexo do problema de segurança).

Sim, funciona perfeitamente. Já testei no Lineduc, que segue o 10.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 #122 Online: 17 de Setembro de 2011, 18:30 »
Se pretendo recompilar o mesmo kernel que estou usando (3.0.0-8), qual pacote tenho que baixar?

Li que para debian e derivados eu teria que usar o linux-source-x.x.xx. Como instalei esse kernel via ppa, imaginei que pudesse seguir o guia do Carlos Morimoto (http://www.hardware.com.br/dicas/recompilando-kernel-1.html), usei o comando
Citar
xluisfernando@xluisfernando-desktop:~$ sudo apt-get install linux-source-3.0.0-8[sudo] password for xluisfernando:
Lendo listas de pacotes... Pronto
Construindo árvore de dependências      
Lendo informação de estado... Pronto
E: Impossível achar pacote linux-source-3.0.0-8
xluisfernando@xluisfernando-desktop:~$

Testei também usando linux-source-3.0.0, mas a resposta foi a mesma. Imaginei que, como instalei o kernel por ppa, esse pacote estivesse no repositório e acessando o site http://www.ubuntuupdates.org/packages/show/364792 não encontro isso.

Então, se pretendo compilar o kernel que já tenho instalado, preciso baixar o pacote linux-source dele, ou tem como usar o que já está instalado no sistema?

Edit: Os tutoriais tratam da compilação do código fonte do kernel pretendido, em tar.bz2, diretamente do kernel.org. Como nesse momento o site está em manutenção, pensei em usar os pacotes disponíveis em http://kernel.ubuntu.com/~kernel-ppa/mainline/. No entanto, como eles estão em .deb, não entendi direito como proceder. Devo simplesmente os desempacotar dentro de /usr/src/linux para começar a compilação?

Agradeço a compreensão, já que para muitos essa pergunta deve ser trivial...
« Última modificação: 18 de Setembro de 2011, 13:25 por xluisfernando »
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Online galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #123 Online: 18 de Setembro de 2011, 14:33 »
xluisfernando, os arquivos fontes do kernel em tar.bz2 são para compilação!  A maneira difícil de ter o seu próprio kernel customizado. Você o descompacta para poder aplicar patchs, modificar o .config e compilar o mesmo ao seu gosto.

Os kerneis do repositório PPA são arquivos binários .deb, já estão compilados e prontos para instalação!  É como se fosse um .exe do Windows.

Portanto não há o que descompactar, apenas instale o mesmo.

Infelizmente o kernel.org está fora do ar por tempo inderteminado, por isso mesmo o Tio Linus migrou o kernel em desenvolvimento para o GitHub!

É exatamente por isso que estamos tentando aprender uma maneira de compilar o kernel sem o git todo! O Git ficou ótimo para quem desenvolve kernel, para manter tantas versões, mas para o usuário que só quer compilar uma versão específica do kernel é muita contra-mão!
Espero ter ajudado mais do que complicado!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Offline Metalbobolic

  • Usuário Ubuntu
  • *
  • Mensagens: 215
    • Ver perfil
    • Seu Lugar para pensar
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #124 Online: 18 de Setembro de 2011, 14:51 »
Me auto-respondendo!!!

Realmente..compilar o kernel do linux, usando o arquivo .config do generic pae, sempre dar erro, na hora de instalar os modulos..não sei pq..não conseguir achar uma respostar viável....

Eu conseguir compilar o kernel 3.1-rc4, utilizando as .config do kernel oficial 3.1.0.301rc4

Apenas ativando o optimize for size e processador intel core 2

Aos poucos vou mexendo mais..

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #125 Online: 18 de Setembro de 2011, 18:30 »
xluisfernando, os arquivos fontes do kernel em tar.bz2 são para compilação!  A maneira difícil de ter o seu próprio kernel customizado. Você o descompacta para poder aplicar patchs, modificar o .config e compilar o mesmo ao seu gosto.

Os kerneis do repositório PPA são arquivos binários .deb, já estão compilados e prontos para instalação!  É como se fosse um .exe do Windows.

Portanto não há o que descompactar, apenas instale o mesmo.

Infelizmente o kernel.org está fora do ar por tempo inderteminado, por isso mesmo o Tio Linus migrou o kernel em desenvolvimento para o GitHub!

É exatamente por isso que estamos tentando aprender uma maneira de compilar o kernel sem o git todo! O Git ficou ótimo para quem desenvolve kernel, para manter tantas versões, mas para o usuário que só quer compilar uma versão específica do kernel é muita contra-mão!
Espero ter ajudado mais do que complicado!
Galactus

Então, quando o site kernel.org voltar a funcionar o esquema é baixar o pacote tar.bz2 do kernel pretendido, descompactá-lo na /usr/src/linux, aplicar os patches para debian para então importar as configurações do kernel instalado e por fim configurar e compilar. Certo?

Pensei em usar o trabalho já feito no kernel compilado para ubuntu para recompilar, otimizando para o meu hardware. De acordo com a referência do Carlos Morimoto http://www.hardware.com.br/dicas/recompilando-kernel-1.html eu poderia baixar o código fonte do kernel por meio do pacote linux-source, que "O pacote simplesmente copiará o arquivo linux-source-x.x.xx.tar.bz2 (com o código-fonte completo do kernel) para a pasta "/usr/src".

Mas, no caso da minha instalação 10.04LTS, a versão padrão do linux-source é a 2.6.32 e eu pretendo usar o 3.0.1 do repositório oneric (ainda não descobri como fazer com que o meu sistema tenha acesso ao repositório com esse pacote)
 
Edit: Pesquisando achei uma possibilidade: o pacote linux-source-3.0.0-9.14 do natty https://launchpad.net/~suraia/+archive/ppa/+sourcepub/1913892/+listing-archive-extra. Tentei adicionar o repositório, mas não consegui encontrar a linha apt. Então, pensei em tentar a opção de baixá-lo diretamente. O formato é .deb e pelo que entendi esse pacote copia o código fonte do kernel, já com os patches aplicados, para a pasta /usr/src. Só não sei se por ser de uma versão diferente haveria algum problema.
« Última modificação: 18 de Setembro de 2011, 20:10 por xluisfernando »
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline Gunss

  • Usuário Ubuntu
  • *
  • Mensagens: 618
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #126 Online: 19 de Setembro de 2011, 00:43 »
Me auto-respondendo!!!

Realmente..compilar o kernel do linux, usando o arquivo .config do generic pae, sempre dar erro, na hora de instalar os modulos..não sei pq..não conseguir achar uma respostar viável....

Eu conseguir compilar o kernel 3.1-rc4, utilizando as .config do kernel oficial 3.1.0.301rc4

Apenas ativando o optimize for size e processador intel core 2

Aos poucos vou mexendo mais..

O optimize for size não é a melhor saida. Deixar no -O2 é ideal.

Offline Metalbobolic

  • Usuário Ubuntu
  • *
  • Mensagens: 215
    • Ver perfil
    • Seu Lugar para pensar
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #127 Online: 19 de Setembro de 2011, 21:14 »
Sou leigo.. onde ativo essa opção -02?

Offline Gunss

  • Usuário Ubuntu
  • *
  • Mensagens: 618
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #128 Online: 19 de Setembro de 2011, 23:12 »
Sou leigo.. onde ativo essa opção -02?


Já vem por padrão

Offline nomade

  • O negócio não tem alma
  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.192
  • O negócio não tem alma
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #129 Online: 20 de Setembro de 2011, 00:33 »
nomade@nomade-PC:~$ cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family   : 15
model      : 4
model name   : Intel(R) Pentium(R) 4 CPU 3.06GHz
stepping   : 9
cpu MHz      : 3066.578
cache size   : 1024 KB
physical id   : 0
siblings   : 2
core id      : 0
cpu cores   : 1
apicid      : 0
initial apicid   : 0
fpu      : yes
fpu_exception   : yes
cpuid level   : 5
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr lahf_lm
bogomips   : 6133.15
clflush size   : 64
cache_alignment   : 128
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family   : 15
model      : 4
model name   : Intel(R) Pentium(R) 4 CPU 3.06GHz
stepping   : 9
cpu MHz      : 3066.578
cache size   : 1024 KB
physical id   : 0
siblings   : 2
core id      : 0
cpu cores   : 1
apicid      : 1
initial apicid   : 1
fpu      : yes
fpu_exception   : yes
cpuid level   : 5
wp      : yes
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr lahf_lm
bogomips   : 6133.27
clflush size   : 64
cache_alignment   : 128
address sizes   : 36 bits physical, 48 bits virtual
power management:

Olá! Queria só uma opinião...
vale apena fazer no meu pc, tendo em vista as informações sobre meu processador?
Ubuntu Studio 22.04 LTS

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #130 Online: 22 de Setembro de 2011, 18:13 »
Pessoal

Comecei a configuração para compilação do kernel 3.0 para meu netbook Eee PC 1000HA. Estou fazendo por meio do pacote linux-source-3.0.0 e aplicando as modificações sugeridas por esse tópico.

No entanto, não entendi uma parte da dica do 4d4c47: /usr/src/linux-2.6.xx/arch/x86/Kconfig.cpu        - linha 300
Citar
#
# Define implied options from the CPU selection here
config X86_INTERNODE_CACHE_SHIFT
   int
   default "12" if X86_VSMP
   default "7" if NUMA
   default X86_L1_CACHE_SHIFT

config X86_CMPXCHG
   def_bool X86_64 || (X86_32 && !M386)

config CMPXCHG_LOCAL
   def_bool X86_64 || (X86_32 && !M386)

config X86_L1_CACHE_SHIFT
   int
   default "7" if MPENTIUM4 || MPSC
   default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
   default "4" if MELAN || M486 || M386 || MGEODEGX1
   default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX

config X86_XADD
   def_bool y
   depends on X86_64 || !M386

config X86_PPRO_FENCE
   bool "PentiumPro memory ordering errata workaround"
   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1
   ---help---
     Old PentiumPro multiprocessor systems had errata that could cause
     memory operations to violate the x86 ordering standard in rare cases.
     Enabling this option will attempt to work around some (but not all)
     occurrences of this problem, at the cost of much heavier spinlock and
     memory barrier operations.

     If unsure, say n here. Even distro kernels should think twice before
     enabling this: there are few systems, and an unlikely bug.

Sei que o meu processador se enquadraria na família MATOM mas não entendi o que eu deveria alterar para que ele fosse definido.

Depois de realizar o processo, mesclando informações de tutoriais e tópicos de diferentes autorias, pretendo escrever um tópico detalhando o processo, com a escolhas que fiz para a configuração.
« Última modificação: 22 de Setembro de 2011, 22:21 por xluisfernando »
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Online galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #131 Online: 23 de Setembro de 2011, 06:52 »
xluisfernando meu caro, que bom que você está botando mola aí! :)

Olha só, atente para o fato da dica apontar para modificar os march, mtune e mcpu para native ou generic conforme o caso!

Como você está tentando modificar um Kernel bem mais recente de quando a dica foi colocada, é normal as linhas não baterem. Então procure pelos march, mtune e mcpu, pode usar o localizar do gedit por exemplo!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #132 Online: 23 de Setembro de 2011, 18:17 »
Galactus

Sim. Inclusive eu só entendi isso depois que li uma discussão sua no tópico do kernel Omnislash. No Makefile_32.cpu eu fiz isso em todas as opções e prestei bastante atenção na opção que seria relativa ao meu processador. Mas, Kconfig.cpu eu não encontrei nada parecido. A linha 300 citada pelo 4d4c47 está em branco e logo abaixo dela começa o trecho que postei, que entendi como sendo a configuração para o tipo de processador. O que não entendi foi o que alterar, pois a estrutura desse texto (como não tenho formação em computação e não compreendo linguagem de programação, estou interpretando a linguagem desse texto de configuração por lógica e pelas instruções nele contido...)

A única referência march= que encontrei nesse arquivo está numa linha comentada (407)
Citar
# this should be set for all -march=.. options where the compiler
# generates cmov.

No geral, fiz todas as alterações sugeridas sem grande dificuldade e já estou estudando quais as configurações embutidas e de módulo se aplicam ao hardware desse netbook.
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline edusachs

  • Usuário Ubuntu
  • *
  • Mensagens: 1
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #133 Online: 23 de Setembro de 2011, 23:06 »
Esse mesmo artigo serve para Core i5? Pois você comentou que fez isso num Core i7. Tem alguma virgula diferente para Core i5?

Valeu!

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel otimizado para o seu processador no Ubuntu!
« Resposta #134 Online: 23 de Setembro de 2011, 23:41 »
Esse mesmo artigo serve para Core i5? Pois você comentou que fez isso num Core i7. Tem alguma virgula diferente para Core i5?

Valeu!
edusachs

O GCC 4.5 de que trata o tópico é um compilador, que no fim das contas transforma o código fonte do kernel na imagem a ser carregada pelo sistema durante o boot. O que foi destacado no tópico sobre o Core i7 e serve para qualquer processador é a edição de alguns arquivos do kernel a ser compilado, considerando uma vantagem que a versão 4.5 do GCC possui. Ao indicar march=native o compilador configura automaticamente a otimização para o processador reconhecido pelo sistema.

Então, você abre o terminal no computador em que pretende instalar o kernel otimizado e usa o comando:
Citar
cc -march=native -E -v - </dev/null 2>&1 | grep cc1

A resposta que sair desse comando você usará na edição dos arquivos, seguindo o tópico e tendo como demonstração e exemplo o que foi feito com a saída do comando numa máquina Core i7.
Samsung Ativ Book i3 - Ubuntu 20.04LTS