Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!

Iniciado por Hqxriven, 24 de Dezembro de 2007, 13:26

tópico anterior - próximo tópico

vampire_thunder

Citação de: Hqxriven online 16 de Janeiro de 2011, 16:01
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í:



maiconramones

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

vampire_thunder

Citação de: maiconramones 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

Na verdade, desde o 2.6.35.

maiconramones

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.

galactus

#3214
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?
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

4d4c47

#3215
Citação de: Hqxriven online 16 de Janeiro de 2011, 16:01
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.

Andreson Goveia

Citação de: 4d4c47 online 16 de Janeiro de 2011, 21:14
Citação de: Hqxriven online 16 de Janeiro de 2011, 16:01
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.

maiconramones

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.

galactus

Citação de: maiconramones 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.

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.

maiconramones

#3219
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?

MSXManiac

Citação de: galactus online 16 de Janeiro de 2011, 19:51
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

MSXManiac

Citação de: maiconramones 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?

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

maiconramones

Mas nesse caso fui que eu eu fiz, já que a configuração do menuconfig vai ser fake.

Alterei todos para native.

4d4c47

Citação de: MSXManiac online 16 de Janeiro de 2011, 22:14
Citação de: maiconramones 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?

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.

MSXManiac

Citação de: maiconramones 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.

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