Autor Tópico: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!  (Lida 2388964 vezes)

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3210 Online: 16 de Janeiro de 2011, 17:28 »
Galera coloquem suas impressões do omni alterado com native pois eu vou pegar o 2.6.37 e pedir uma ajuda uma vampire (se ele puder) para fazermos ele com o vgaswitcheroo e aí me digam onde alterar que vou fazer de forma automática essas modificações no march.

Ajudar? Tô dentro, mas só se for na hora vaga (geralmente de meia noite às 6, rsrs)

O vgaswitcheroo já costuma vir habilitado. Confira aí:



Offline maiconramones

  • Usuário Ubuntu
  • *
  • Mensagens: 41
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3211 Online: 16 de Janeiro de 2011, 17:49 »
Hummmm quer dizer que o Kernel 2.6.37 resolve o problema de placas gráficas híbridas.... esse é o meu caso.

Se quiserem testar alguma coisa na minha máquina me avisem, me habilito a ser cobaia hehehe

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3212 Online: 16 de Janeiro de 2011, 18:04 »
Hummmm quer dizer que o Kernel 2.6.37 resolve o problema de placas gráficas híbridas.... esse é o meu caso.

Se quiserem testar alguma coisa na minha máquina me avisem, me habilito a ser cobaia hehehe

Na verdade, desde o 2.6.35.

Offline maiconramones

  • Usuário Ubuntu
  • *
  • Mensagens: 41
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3213 Online: 16 de Janeiro de 2011, 18:48 »
Eu sinceramente não sei porque depois que instalo o driver proprietário não funciona.

Pode ser que seja o driver proprietário... mas enfim.

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3214 Online: 16 de Janeiro de 2011, 19:51 »
Agora eu senti firmeza do HQx! :)

Quanto ao March eu acredito que devemos ser mais específicos, mostrar exatamente onde e quais os arquivos alterados!  Aqui não deu nenhum erro de compilação por causa disso!

Vou começar por mim!

Mudo o Makefile dentro da pasta linux (link simbólico do 2.6.34)!

Apenas neste trecho:

Citar
# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
     else if [ -x /bin/bash ]; then echo /bin/bash; \
     else echo sh; fi ; fi)

HOSTCC       = gcc
HOSTCXX      = g++
HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -march=native -fomit-frame-pointer
HOSTCXXFLAGS = -O2

Todas as outras alterações que eu fiz estão dentro da pasta linux/arch/x86 (lembrem do link simbólico do 2.6.34)!

Na pasta x86 eu altero os arquivos: MakeFile e Makefile_32.cpu!

No arquivo Makefile eu mudo aqui:

Citar
# FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu)
        cflags-$(CONFIG_MK8) += $(call cc-option,-march=native)
        cflags-$(CONFIG_MPSC) += $(call cc-option,-march=native)

        cflags-$(CONFIG_MCORE2) += \
                $(call cc-option,-march=native,$(call cc-option,-march=native))
   cflags-$(CONFIG_MATOM) += $(call cc-option,-march=native) \
      $(call cc-option,-march=native,$(call cc-option,-march=native))
        cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-march=native)
        KBUILD_CFLAGS += $(cflags-y)


No Makefile_32.cpu aqui:


Citar
#-mtune exists since gcc 3.4
HAS_MTUNE   := $(call cc-option-yn, -march=native)
ifeq ($(HAS_MTUNE),y)
tune      = $(call cc-option,-march=$(1),$(2))
else
tune      = $(call cc-option,-march=$(1),$(2))
endif

align := $(cc-option-align)
cflags-$(CONFIG_M386)      += -march=native
cflags-$(CONFIG_M486)      += -march=native
cflags-$(CONFIG_M586)      += -march=native
cflags-$(CONFIG_M586TSC)   += -march=native
cflags-$(CONFIG_M586MMX)   += -march=native
cflags-$(CONFIG_M686)      += -march=native
cflags-$(CONFIG_MPENTIUMII)   += -march=native $(call tune,pentium2)
cflags-$(CONFIG_MPENTIUMIII)   += -march=native $(call tune,pentium3)
cflags-$(CONFIG_MPENTIUMM)   += -march=native $(call tune,pentium3)
cflags-$(CONFIG_MPENTIUM4)   += -march=native $(call tune,pentium4)
cflags-$(CONFIG_MK6)      += -march=native
# Please note, that patches that add -march=athlon-xp and friends are pointless.
# They make zero difference whatsosever to performance at this time.
cflags-$(CONFIG_MK7)      += -march=native
cflags-$(CONFIG_MK8)      += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MCRUSOE)   += -march=native $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MEFFICEON)   += -march=native $(call tune,pentium3) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MWINCHIPC6)   += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MWINCHIP3D)   += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MCYRIXIII)   += $(call cc-option,-march=native,-march=native) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MVIAC3_2)   += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MVIAC7)      += -march=native
cflags-$(CONFIG_MCORE2)      += -march=native $(call tune,core2)
cflags-$(CONFIG_MATOM)      += $(call cc-option,-march=native,$(call cc-option,-march=native,-march=native)) \
   $(call cc-option,-march=native,$(call cc-option,-march=native))

# AMD Elan support
cflags-$(CONFIG_X86_ELAN)   += -march=native

# Geode GX1 support
cflags-$(CONFIG_MGEODEGX1)   += -march=native
cflags-$(CONFIG_MGEODE_LX)   += $(call cc-option,-march=native,-march=native)
# add at the end to overwrite eventual tuning options from earlier
# cpu entries
cflags-$(CONFIG_X86_GENERIC)    += $(call tune,generic,$(call tune,i686))

# Work around the pentium-mmx code generator madness of gcc4.4.x which
# does stack alignment by generating horrible code _before_ the mcount
# prologue (push %ebp, mov %esp, %ebp) which breaks the function graph
# tracer assumptions. For i686, generic, core2 this is set by the
# compiler anyway
cflags-$(CONFIG_FUNCTION_GRAPH_TRACER) += $(call cc-option,-maccumulate-outgoing-args)

# Bug fix for binutils: this option is required in order to keep
# binutils from generating NOPL instructions against our will.
ifneq ($(CONFIG_X86_P6_NOP),y)
cflags-y         += $(call cc-option,-Wa$(comma)-march=native,)
endif

Vejam que logo acima, na parte em negrito, tem um call tune Core2! Será que é por isso que não tira tudo o que for Core2?
São esses os arquivos e locais que achei para mudar!  Tem algum outro lugar?
« Última modificação: 16 de Janeiro de 2011, 19:56 por galactus »
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

4d4c47

  • Visitante
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3215 Online: 16 de Janeiro de 2011, 21:14 »
Galera coloquem suas impressões do omni alterado com native pois eu vou pegar o 2.6.37 e pedir uma ajuda uma vampire (se ele puder) para fazermos ele com o vgaswitcheroo e aí me digam onde alterar que vou fazer de forma automática essas modificações no march.

aqui vai a localização dos arquivos e suas linhas exatas que contém as palavras march, mtune, mcpu que encontrei:

Citar
/usr/src/linux-2.6.36/Makefile     -linha 232

/usr/src/linux-2.6.36/arch/x86/boot/compressed/Makefile     - linha 12
/usr/src/linux-2.6.36/arch/x86/boot/Makefile       - linha 63

/usr/src/linux-2.6.36/arch/x86/kernel/acpi/realmode/Makefile   - linha 35

/usr/src/linux-2.6.36/arch/x86/Kconfig.cpu        - linha 300
/usr/src/linux-2.6.36/arch/x86/Makefile          - linha 53, 54, 57, 58, 59, 60
/usr/src/linux-2.6.36/arch/x86/Makefile_32.cpu             - linha 5, 7, 9, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 46, 47, 63


boa sorte a todos.
« Última modificação: 17 de Janeiro de 2011, 01:11 por 4d4c47 »

Offline Andreson Goveia

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.985
  • Kubuntu 14.10
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3216 Online: 16 de Janeiro de 2011, 21:17 »
Galera coloquem suas impressões do omni alterado com native pois eu vou pegar o 2.6.37 e pedir uma ajuda uma vampire (se ele puder) para fazermos ele com o vgaswitcheroo e aí me digam onde alterar que vou fazer de forma automática essas modificações no march.

aqui vai a localização dos arquivos e suas linhas exatas que contém as palavras march, mtune, mcpu:

Citar
/linux-2.6.36/Makefile            -linha 232

/arch/x86/boot/compressed/Makefile            - linha 12
/arch/x86/boot/Makefile                             - linha 63

/arch/x86/kernel/acpi/realmode/Makefile      - linha 35

/arch/x86/Kconfig.cpu                                - linha 300
/arch/x86/Makefile                                    - linha 53, 54, 57, 58, 59, 60
/arch/x86/Makefile_32.cpu                          - linha 5, 7, 9, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 46, 47, 63
Amanhã mesmo começo as compilações.

Offline maiconramones

  • Usuário Ubuntu
  • *
  • Mensagens: 41
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3217 Online: 16 de Janeiro de 2011, 21:33 »
Olha pode ser que eu tenha feita algo errado mas...

Sinceramente não vi tanta diferença assim, até porque na hora de compilar só apareceu os mesmos processadores e eu marquei P4.

Testei essas alterações com o 2.6.34.

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3218 Online: 16 de Janeiro de 2011, 21:58 »
Olha pode ser que eu tenha feita algo errado mas...

Sinceramente não vi tanta diferença assim, até porque na hora de compilar só apareceu os mesmos processadores e eu marquei P4.

Testei essas alterações com o 2.6.34.

Como assim apareceu os mesmos processadores?  As configurações do Menuconfig do Omnislash não mudam!  O que muda é você marcar a arquitetura correta do seu processador no menuconfig e depois alterar na unha os makefiles e outros arquivos onde tem o march, mtune e mcpu! 

4d4c47, mais uma vez obrigado, vou modificar mais esses arquivos que não tinha modificado e ver se agora acaba com o Core2!

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

Offline maiconramones

  • Usuário Ubuntu
  • *
  • Mensagens: 41
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3219 Online: 16 de Janeiro de 2011, 22:04 »
Puxa vida acho que ta ai um erro, eu não apliquei nenhum patch apenas alterei os arquivos na unha.

Quais os patchs tu aplicou em em qual kernel?
« Última modificação: 16 de Janeiro de 2011, 22:06 por maiconramones »

Offline MSXManiac

  • Usuário Ubuntu
  • *
  • Mensagens: 126
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3220 Online: 16 de Janeiro de 2011, 22:11 »
No Makefile_32.cpu aqui:


Citar
#-mtune exists since gcc 3.4
HAS_MTUNE   := $(call cc-option-yn, -march=native)
ifeq ($(HAS_MTUNE),y)
tune      = $(call cc-option,-march=$(1),$(2))
else
tune      = $(call cc-option,-march=$(1),$(2))
endif

align := $(cc-option-align)
cflags-$(CONFIG_M386)      += -march=native
cflags-$(CONFIG_M486)      += -march=native
cflags-$(CONFIG_M586)      += -march=native
cflags-$(CONFIG_M586TSC)   += -march=native
cflags-$(CONFIG_M586MMX)   += -march=native
cflags-$(CONFIG_M686)      += -march=native
cflags-$(CONFIG_MPENTIUMII)   += -march=native $(call tune,pentium2)
cflags-$(CONFIG_MPENTIUMIII)   += -march=native $(call tune,pentium3)
cflags-$(CONFIG_MPENTIUMM)   += -march=native $(call tune,pentium3)
cflags-$(CONFIG_MPENTIUM4)   += -march=native $(call tune,pentium4)
cflags-$(CONFIG_MK6)      += -march=native
# Please note, that patches that add -march=athlon-xp and friends are pointless.
# They make zero difference whatsosever to performance at this time.
cflags-$(CONFIG_MK7)      += -march=native
cflags-$(CONFIG_MK8)      += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MCRUSOE)   += -march=native $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MEFFICEON)   += -march=native $(call tune,pentium3) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MWINCHIPC6)   += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MWINCHIP3D)   += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MCYRIXIII)   += $(call cc-option,-march=native,-march=native) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MVIAC3_2)   += $(call cc-option,-march=native,-march=native)
cflags-$(CONFIG_MVIAC7)      += -march=native
cflags-$(CONFIG_MCORE2)      += -march=native $(call tune,core2)
cflags-$(CONFIG_MATOM)      += $(call cc-option,-march=native,$(call cc-option,-march=native,-march=native)) \
   $(call cc-option,-march=native,$(call cc-option,-march=native))

# AMD Elan support
cflags-$(CONFIG_X86_ELAN)   += -march=native

# Geode GX1 support
cflags-$(CONFIG_MGEODEGX1)   += -march=native
cflags-$(CONFIG_MGEODE_LX)   += $(call cc-option,-march=native,-march=native)
# add at the end to overwrite eventual tuning options from earlier
# cpu entries
cflags-$(CONFIG_X86_GENERIC)    += $(call tune,generic,$(call tune,i686))

# Work around the pentium-mmx code generator madness of gcc4.4.x which
# does stack alignment by generating horrible code _before_ the mcount
# prologue (push %ebp, mov %esp, %ebp) which breaks the function graph
# tracer assumptions. For i686, generic, core2 this is set by the
# compiler anyway
cflags-$(CONFIG_FUNCTION_GRAPH_TRACER) += $(call cc-option,-maccumulate-outgoing-args)

# Bug fix for binutils: this option is required in order to keep
# binutils from generating NOPL instructions against our will.
ifneq ($(CONFIG_X86_P6_NOP),y)
cflags-y         += $(call cc-option,-Wa$(comma)-march=native,)
endif

Vejam que logo acima, na parte em negrito, tem um call tune Core2! Será que é por isso que não tira tudo o que for Core2?
São esses os arquivos e locais que achei para mudar!  Tem algum outro lugar?

Se vc parar para perceber, o objetivo é deixar o processo descobrir qual tipo de processador vc tem e compilar para esta arquitetura em específico!
Daí esta rotina que pega o valor de uma varável que recebeu a identificação do tipo de processador é utilizada numa estrutura tipo case e redireciona passando o valor correto para a rotina tune!
Daí que quando vc dá um grep, vc está vendo todos os valores que estão sendo passados, inclusive quando a rotina tune é chamada!
A rotina tune parece ser utilizada em vários pontos (é o que dá a entender) já que vc relatou que march=Core2 apareceu algumas vezes!
Espero ter ajudado!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

Offline MSXManiac

  • Usuário Ubuntu
  • *
  • Mensagens: 126
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3221 Online: 16 de Janeiro de 2011, 22:14 »
Puxa vida acho que ta ai um erro, eu não apliquei nenhum patch apenas alterei os arquivos na unha.

Quais os patchs tu aplicou em em qual kernel?

Em princípio não é para fazer diferença! O patch apenas troca valores ou sentenças no kernel source!
Tipo alterar um texto onde a palavra Riven Zero é substituída pela palavra HQXRiven!
Se está a dar erros, como diriam os portugas, a causa é outra...
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

Offline maiconramones

  • Usuário Ubuntu
  • *
  • Mensagens: 41
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3222 Online: 16 de Janeiro de 2011, 22:15 »
Mas nesse caso fui que eu eu fiz, já que a configuração do menuconfig vai ser fake.

Alterei todos para native.

4d4c47

  • Visitante
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3223 Online: 16 de Janeiro de 2011, 22:28 »
Puxa vida acho que ta ai um erro, eu não apliquei nenhum patch apenas alterei os arquivos na unha.

Quais os patchs tu aplicou em em qual kernel?

Em princípio não é para fazer diferença! O patch apenas troca valores ou sentenças no kernel source!
Tipo alterar um texto onde a palavra Riven Zero é substituída pela palavra HQXRiven!
Se está a dar erros, como diriam os portugas, a causa é outra...

@MSXManiac está correto, com ou sem patch a compilação será a mesma, vc deve ter apagado ou acrescentado algum "caracter" na hora de mudar o nome, deleta tudo, descompacta o kernel novamente e começa do zero denovo.
 

Offline MSXManiac

  • Usuário Ubuntu
  • *
  • Mensagens: 126
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3224 Online: 16 de Janeiro de 2011, 22:29 »
Mas nesse caso fui que eu eu fiz, já que a configuração do menuconfig vai ser fake.

Alterei todos para native.

A sugestão é vc começar do zero de novo!
De antes de começar um make clean e um make-kpkg clean!
Lembre-se que é para substituir -march=XXXX por -march=native!
Quanto a trocar -mtune e -mcpu por -march, ainda tenho pontos a discutir no post a seguir!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz