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

Gunss

Citação de: galactus online 04 de Março de 2011, 14:48
Citação de: Wagnesio online 03 de Março de 2011, 20:45
Galactus,
não querendo abusar, mas você poderia disponibilizar as .debs do seu Kernel compilado? Até porque talvez seja interessante saber como o Kernel se comporta em um Hardware semelhante mas diferente.

Rapaz, poderia até colocar mas as chances de dar pau na sua máquina são grandes, eu desligo um monte de coisas que não tem na minha configuração de hardware, e no seu  PC?  

O que você deve fazer é tirar aquilo que você tem certeza que não usa, eu por exemplo removo da compilação do kernel: Bluethoo, Rádio, Infravermelho, Rede sem fio (em casa, no trabalho eu preciso, daí eu marco ela de volta) e etc.  E compilo dentro do kernel o que for driver do meu hardware!  Tipo: controladora do disco, placas de rede, placa de vídeo e etc!

É só isso, o lance é passar um certo tempo no menuconfig ou no xconfig marcando e desmarcando as coisas!

Isso é uma verdade verdadeira!!!

Para chegar no meu .config eu passei umas boas 3 horas caçando, descobrindo falhas e kernel panic.
Mas depois de feito o .config, ele vira receita de bolo. Na hora de compilar eu nem olho pra cara dele. Eu tenho 3 diferentes aqui para 3 diferentes compilações. Pego o que vou usar e nem passo 1 segundo com a janela do xconfig aberta. Vale a pena.

@galactus, vou caçar direitinho o bug, mas ta dificil, o config.log tem MUITA coisa. =)

Wagnesio

Vou me aventurar nessa area então... mas, por onde eu começo? Alguem sabe de um tutorial passo-a-passo?
Ubuntu 12.10
Atom N270 1.6GHz - 1 GB RAM - 120 GB HD

Ricardo_Branco


Ricardo_Branco

vamos para mais uma tentativa...

galactus... se essa nao der eu vou remover meu gcc e colocar o padrao da distro ok?

galactus... vc ja viu a opcao localmodconfig? Parece que ela soh seleciona os drivers disponiveis no nosso hardware... Nao faz todo o .config... mas ajuda...

Amanha coloco aqui meus resultados e tempo de compilacao...

Abrass...

MSXManiac

Citação de: galactus online 03 de Março de 2011, 20:30

Eu atualmente uso Gnome + OpenBox...



E eu estou tentando usar o Enlightenment no lugar do OpenBox mas todos os tutoriais que encontro na net não tem mais aplicação.
Culpa do Gnome que mudou muito sua estrutura e há diferenças de organização entre a versão atual, a 2.28 e a 2.26...
Alguém conhece aí uma forma de usar o Enlightenment no lugar do Metacity no Gnome?
Um que funcione, pq tutos de versões anteriores a 2010 com certeza não se aplicam!
Fico no aguardo!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

Ricardo_Branco

Citação de: Gunss online 04 de Março de 2011, 13:41
aqui a compilação não ta dando certo neeeem a pau.

CitarHOSTCFLAGS   = -O2 -pipe -fomit-frame-pointer -march=native -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=generic

Ta tudo certinho mas ele para aqui
CitarLD      arch/x86/built-in.o
make[1]: Saindo do diretório `/usr/src/linux-2.6.37.2'
make: ** [debian/stamp/build/kernel] Erro 2

E ta tudo certinho. Acho que no GCC 4.4.3 do Ubuntu 10.04 é chato mesmo.

Gunss. comigo aconteceu isso também, mas só depois que editei os arquivos trocando os mtune march e mcpu para native... Então deletei a pasta, extrai denovo e mandei rodar sem editar os arquivos... tá compilando de novo.

Outra coisa que acontece antes do erro2 e sair é o seguinte:

Logo no inicio do make-dpkg aparece umas mensagens de falha no arquivo e erro 9... isto se repete durante a compilação... mas vai passando, até que dá este erro depois de uma hora de comp e sai.

Tenta fazer o seguinte...

Não edite os arquivos...

No comando do make faça:
CFLAGS {coloca suas cflags, o comando inteiro da saída da dica do galactus} make-kpkg --init........

Quando fiz isso e rodei em outro terminal o ps aux |grep gcc aparece sempre os march, mtune e mcpu certo. Acho que assim não precisa editar os arquivos... Mas tem que conferir ok?

Abrass

Ricardo_Branco

Citação de: MSXManiac online 05 de Março de 2011, 10:17
Citação de: galactus online 03 de Março de 2011, 20:30

Eu atualmente uso Gnome + OpenBox...



E eu estou tentando usar o Enlightenment no lugar do OpenBox mas todos os tutoriais que encontro na net não tem mais aplicação.
Culpa do Gnome que mudou muito sua estrutura e há diferenças de organização entre a versão atual, a 2.28 e a 2.26...
Alguém conhece aí uma forma de usar o Enlightenment no lugar do Metacity no Gnome?
Um que funcione, pq tutos de versões anteriores a 2010 com certeza não se aplicam!
Fico no aguardo!
MSX eu uso so o Enlightenment mesmo... sem gnome... mas procurei aqui alguns links que já tinha lido... Primeiro usaram ;e16 com gnome mas agora e17 com gnome...
http://www.vivaolinux.com.br/artigo/Gnome-+-Enlightenment-=-Enlightened-Gnome/?pagina=3
http://www.vivaolinux.com.br/artigo/Enlightenment-DR17-A-evolucao/

Ricardo_Branco

Consegui compilar meu kernel!!!

Mas agora vou jogar um fute... depois eu conto se ficou veloz. rs

Wagnesio

Citação de: Ricardo_Branco online 04 de Março de 2011, 18:35
Citação de: Wagnesio online 04 de Março de 2011, 15:54
Vou me aventurar nessa area então... mas, por onde eu começo? Alguem sabe de um tutorial passo-a-passo?

Tutorial passo a passo usa o do hqx aqui... (para o kernel)
http://ubuntuforum-br.org/index.php/topic,29799.msg375471.html#msg375471

Mas para ajuda no .config eu uso:

http://www.vivaolinux.com.br/artigo/Compilacao-comentada-do-kernel/?pagina=6

e ainda:
http://www.google.com.br/linux



Obrigado pelos links.

Alem de compilar o kernel, vou tentar a combinação Gnome+e17
Ubuntu 12.10
Atom N270 1.6GHz - 1 GB RAM - 120 GB HD

galactus

Citação de: Ricardo_Branco online 04 de Março de 2011, 23:01
vamos para mais uma tentativa...

galactus... se essa nao der eu vou remover meu gcc e colocar o padrao da distro ok?

galactus... vc ja viu a opcao localmodconfig? Parece que ela soh seleciona os drivers disponiveis no nosso hardware... Nao faz todo o .config... mas ajuda...

Amanha coloco aqui meus resultados e tempo de compilacao...

Abrass...

Ricardo, que bom que teve sucesso! Depois conta aí se deu diferença mesmo!

Eu não sabia dessa opção de usar o localmodconfig!  Deu certo aí com isso também?
Eu andei pesquisando a respeito e ela pode retirar coisas demais!  Tem gente que manda certificar o .config só pra ter garantia que tudo tá no lugar!  Como você está fazendo para usar o localmodconfig?

4d4c47, seu processador é AMD ou Intel?


É que eu estive observando a saída do comando echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native...., e dependendo da opção dos -sse_alguma_coisa, alguns opções são habilitadas mas outras deixam de ser habilitadas!  Daí fui dar uma olhada nessas instruções, o que significam essas opções todas, e acabei descobrindo que na "teoria" se usasse a opção -sse4.2 (no meu caso o Corei7 tem essas instruções), as instruções seguintes deveriam ser ativadas por padrão: SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 e SSE!  
Que bate exatamente com a linha do CFLAGs que o comando cc -march=native -E -v - </dev/null 2>&1 | grep cc1  coloca. Que seria iguala "-march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=core2 -fstack-protector" !

Portanto, mais uma vez, colocar apenas essa opção não parece ser suficiente! Já que no meu caso, as instruções -mmx não estão ativadas e elas são suportadas no Corei7. Então eu coloquei ela na minha linha. Acabou que vai ficar assim:

Citar-march=native -msse4.1 -msse4.2 -mmmx -msse -msse2 -msse3 -msse4 -mssse3

Seria mais ou menos isso nas linhas do -march=*, -mcpu=* e no meu caso apenas -mtune=generic?

E quanto a essa opção que o Ricardo levantou a questão?  Colocar essa linha toda na execução make-kpkg?  

Seria uma mão na roda, não teríamos que abrir todos os arquivos do makefile do Kernel!  Alguém mais confirma isso?
A minha pergunta do tipo de processador que você usa é porque as instruções -sse4a estão disponíveis apenas em alguns processadores AMD!  Os Intel não possuem suporte a essa instrução!  Portando eu poderia ativar isso na compilação mas ela não me serviria de nada pois meu processador não tem suporte para isso!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

vampire_thunder

Compilei o .38 do Natty aqui com a seguinte CFLAG:
HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -pipe -march=native -mcx16 -msse4a -fstack-protector -mpopcnt -msahf -msse4 -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=generic

Estranhamente, quando eu dava o comando "ps ax | grep gcc | grep march", nada acontecia, não retornava nada. Já o "grep mtune" retornava vários =generic.

Fiz as modificações nos outros makefiles da pasta arch/x86, seguindo as dicas do 4d4c47, colocando "-msse4 -msse4a". Com o kernel já instalado, ao executar o comando "echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native", continuam desativados:
(...)
-mrtd                        [disabled]
  -msahf                      [enabled]
  -msoft-float                [disabled]
  -msse                        [disabled]
  -msse2                      [disabled]
  -msse2avx                    [disabled]
  -msse3                      [disabled]
  -msse4                      [disabled]
  -msse4.1                    [disabled]
  -msse4.2                    [disabled]
  -msse4a                      [disabled]
  -msse5                      [disabled]
  -msseregparm                [disabled]
  -mssse3                      [disabled]
  -mstack-arg-probe            [disabled]
  -mstackrealign              [enabled]


Mas se eu acrescento as duas entradas no comando, ativam:
(...)
-mrtd                        [disabled]
  -msahf                      [enabled]
  -msoft-float                [disabled]
  -msse                        [enabled]
  -msse2                      [enabled]
  -msse2avx                    [disabled]
  -msse3                      [enabled]
  -msse4                      [enabled]
  -msse4.1                    [enabled]
  -msse4.2                    [enabled]
  -msse4a                      [enabled]
  -msse5                      [disabled]
  -msseregparm                [disabled]
  -mssse3                      [enabled]
  -mstack-arg-probe            [disabled]
  -mstackrealign              [enabled]


Não era para aparecer enable com o primeiro comando, uma vez que eu compilei com as entradas?  ???

Vejam a saída do "echo "int main() { return 0; }" | gcc -march=native -v -Q -x c - 2>&1":
(...)
GNU C (Ubuntu 4.4.3-4ubuntu5) version 4.4.3 (x86_64-linux-gnu)
compiled by GNU C version 4.4.3, GMP version 4.3.2, MPFR version 2.4.2-p1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
options passed:  -v - -D_FORTIFY_SOURCE=2 -march=amdfam10 -mcx16 -msahf
-mpopcnt --param l1-cache-size=64 --param l1-cache-line-size=64 --param
l2-cache-size=512 -mtune=amdfam10 -fstack-protector
options enabled:  -falign-loops -fargument-alias
-fasynchronous-unwind-tables -fauto-inc-dec -fbranch-count-reg -fcommon
-fdwarf2-cfi-asm -fearly-inlining -feliminate-unused-debug-types
-ffunction-cse -fgcse-lm -fident -finline-functions-called-once
-fira-share-save-slots -fira-share-spill-slots -fivopts
-fkeep-static-consts -fleading-underscore -fmath-errno
-fmerge-debug-strings -fmove-loop-invariants -fpeephole
-freg-struct-return -fsched-interblock -fsched-spec
-fsched-stalled-insns-dep -fsigned-zeros -fsplit-ivs-in-unroller
-fstack-protector -ftrapping-math -ftree-cselim -ftree-loop-im
-ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
-ftree-reassoc -ftree-scev-cprop -ftree-switch-conversion
-ftree-vect-loop-version -funit-at-a-time -funwind-tables -fvar-tracking
-fvect-cost-model -fzero-initialized-in-bss -m128bit-long-double -m3dnow
-m64 -m80387 -mabm -maccumulate-outgoing-args -malign-stringops -mcx16
-mfancy-math-387 -mfp-ret-in-387 -mfused-madd -mglibc -mieee-fp -mmmx
-mno-sse4 -mpopcnt -mpush-args -mred-zone -msahf -msse -msse2 -msse3
-msse4a -mtls-direct-seg-refs


Como podem ver, estou usando o compilador padrão do 10.04.

Adicionei o BFQ e o LZMA na unha, pois ainda não foram feitos patches para o .38. O LZMA eu refiz todo o patch para funcionar nessa versão. O BFQ dava apenas um errinho, fácil de corrigir. Os demais patches (200 linhas, aufs, ureadahead) já vêm no kernel do Ubuntu.
Alguém quer testar? só 64 por enquanto:
http://archive.lineduc.sigeduc.info/lineduc/pool/main/l/linux/linux-headers-2.6.38-5_2.6.38-5.32.1_all.deb
http://archive.lineduc.sigeduc.info/lineduc/pool/main/l/linux/linux-headers-2.6.38-5-lineduc2_2.6.38-5.32.1_amd64.deb
http://archive.lineduc.sigeduc.info/lineduc/pool/main/l/linux/linux-image-2.6.38-5-lineduc2_2.6.38-5.32.1_amd64.deb

Gunss

@vampire Parabéns!!!!
Eu uso 32bit, então quando sair eu uso certeza. Ah, uma coisa, quando a versão 32bit for lançada eu posso baixar pelo repositorio?

abraço.

vampire_thunder

Tenho a intenção de colocar lá apenas quando sair a versão final.

MSXManiac

Citação de: Ricardo_Branco online 05 de Março de 2011, 14:27
Citação de: MSXManiac online 05 de Março de 2011, 10:17
Citação de: galactus online 03 de Março de 2011, 20:30

Eu atualmente uso Gnome + OpenBox...



E eu estou tentando usar o Enlightenment no lugar do OpenBox mas todos os tutoriais que encontro na net não tem mais aplicação.
Culpa do Gnome que mudou muito sua estrutura e há diferenças de organização entre a versão atual, a 2.28 e a 2.26...
Alguém conhece aí uma forma de usar o Enlightenment no lugar do Metacity no Gnome?
Um que funcione, pq tutos de versões anteriores a 2010 com certeza não se aplicam!
Fico no aguardo!
MSX eu uso so o Enlightenment mesmo... sem gnome... mas procurei aqui alguns links que já tinha lido... Primeiro usaram ;e16 com gnome mas agora e17 com gnome...
http://www.vivaolinux.com.br/artigo/Gnome-+-Enlightenment-=-Enlightened-Gnome/?pagina=3
http://www.vivaolinux.com.br/artigo/Enlightenment-DR17-A-evolucao/

Infelizmente este é um dos que testei e não é aplicável pq não existe mais um arquivo /usr/share/gnome/default.session e muito menos um arquivo com a linha:
1,RestartCommand=gnome-wm --default-wm enlightenment --sm-client-id default1

E a maioria dos tutos disponíveis é este aí, copiado do original ou traduzido
Uso o Linux Mint 10 (a.k.a Ubuntu 10.10)
Grato!
Quem souber de algo favor informar.

ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz