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

Ilkyest

Ok.... deixa eu ver se é sobre isso.....


A hora que achar "o que eu pensei" eu posto.

DiamondMax

Alguém aqui já parou para analisar todo o Makefile?

Nas linhas:

# 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 -Wstrict-prototypes -O2 -fomit-frame-pointer
HOSTCXXFLAGS = -O2

Isso me faz lembrar as otimizações do gentoo com as "flags": http://gentoo-wiki.com/Safe_Cflags

E se por acaso quem tivesse um Pentium 4 e deixasse assim:

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


Será que também não obteria um pouco mais de performance?

Até pq, o Makefile, vai "exportar" tudo isso:

export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS

export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE


Vou pesquisar sobre o assunto para ver se encontro respostas!!!
Ubuntu 9.04 + Kernel 2.6.32.6

http://diamondmax.wordpress.com

DiamondMax

Sabe, eu estava pensando: Pra quê viver pegando patchs do pardus ou do dark, ou melhor dizendo, de terceiros? Vamos pegar diretamente onde eles pegam: http://git.kernel.org/?p=linux/kernel

Seria interessante que cada um acompanhasse um determinado número de patchs e entregasse os patchs ao hqxriven, já que ele já sedimentou o omnislash pela net. Corro um kernel próprio, o 2.6.25-diamondmax1.0 que além de ter os patchs usado no omnislash, vou naquele site acima e incluo no meu kernel. Só tem um problema: "É muito patch e atualizações para acompanhar! É um esforço quase sobrehumano, ainda mais pra mim que vou fazer um curso daqui a uns meses e terei pouco tempo para me dedicar a esta tarefa."

Que tal fazermos isso? Um fica com "bluetooth", outro com "fs" e por aí vai...Aí teríamos um kernel "bombado", hehehe...
Ubuntu 9.04 + Kernel 2.6.32.6

http://diamondmax.wordpress.com

gatohumano

Nao percebi,isso serve para optimizar a compilação ou sera para compilar mais rapido?nao sera o mesmo do que quando escolhemos um cpu especifico no menu?

DiamondMax

Citação de: gatohumano online 14 de Julho de 2008, 15:35
Nao percebi,isso serve para optimizar a compilação ou sera para compilar mais rapido?nao sera o mesmo do que quando escolhemos um cpu especifico no menu?


Eu já conhecia esse comando para otimizar através do x-wine: http://www.guiadohardware.net/comunidade/xwine/691837/
Que faz uma referência a: http://www.guiadohardware.net/comunidade/compilar-otimizando/742616/

Ai quando eu analisei o Makefile eu percebi as semelhanças. Quem quiser, compile com e sem as flags e veja se nota alguma performance. Na minha carroça fica difícil! :P


Ubuntu 9.04 + Kernel 2.6.32.6

http://diamondmax.wordpress.com

DiamondMax

Hqxrive, o patch unionfs do pardus fica quebrado! Seria interessante não tê-lo incluído no omnislash4.

patching file Documentation/filesystems/00-INDEX
patching file Documentation/filesystems/unionfs/00-INDEX
patching file Documentation/filesystems/unionfs/concepts.txt
patching file Documentation/filesystems/unionfs/issues.txt
patching file Documentation/filesystems/unionfs/rename.txt
patching file Documentation/filesystems/unionfs/usage.txt
patching file fs/ecryptfs/dentry.c
patching file fs/ecryptfs/inode.c
patching file fs/ecryptfs/main.c
patching file fs/Kconfig
patching file fs/Makefile
Hunk #1 succeeded at 123 (offset -1 lines).
patching file fs/namei.c
patching file fs/splice.c
patching file fs/stack.c
patching file fs/unionfs/commonfops.c
patching file fs/unionfs/copyup.c
patching file fs/unionfs/debug.c
patching file fs/unionfs/dentry.c
patching file fs/unionfs/dirfops.c
patching file fs/unionfs/dirhelper.c
patching file fs/unionfs/fanout.h
patching file fs/unionfs/file.c
patching file fs/unionfs/inode.c
patching file fs/unionfs/lookup.c
patching file fs/unionfs/main.c
patching file fs/unionfs/Makefile
patching file fs/unionfs/mmap.c
patching file fs/unionfs/rdstate.c
patching file fs/unionfs/rename.c
patching file fs/unionfs/sioq.c
patching file fs/unionfs/sioq.h
patching file fs/unionfs/subr.c
patching file fs/unionfs/super.c
patching file fs/unionfs/union.h
patching file fs/unionfs/unlink.c
patching file fs/unionfs/xattr.c
patching file include/linux/fs_stack.h
patching file include/linux/magic.h
patching file include/linux/splice.h
patching file include/linux/union_fs.h
patching file MAINTAINERS
Hunk #1 succeeded at 3961 (offset -5 lines).
Ubuntu 9.04 + Kernel 2.6.32.6

http://diamondmax.wordpress.com

DiamondMax

Nem mesmo os patchs do ck no site do dark entram no 2.6.25.10!!!
Ubuntu 9.04 + Kernel 2.6.32.6

http://diamondmax.wordpress.com


Hqxriven

#983
"Hunk #1 succeeded at 123" Não siginifica que ele está quebrado... Na verdade significa que ele entrou normalmente... se ele estivesse com erros ao entrar aconteceria isso (Exemplo abaixo com patch bootsplash):

patch -p1 <
/usr/src/bootsplash-3.1.4-2.6.3.diff
patching file drivers/char/keyboard.c
Hunk #1 succeeded at 1063 (offset 4 lines).
patch: **** Can't rename file drivers/char/keyboard.c to
drivers/char/keyboard.c.orig : Permission denied
paul@ubuntu:/usr/src/linux-2.6.12$ sudo patch -p1 <
/usr/src/bootsplash-3.1.4-2.6.3.diff
patching file drivers/char/keyboard.c
Hunk #1 succeeded at 1063 (offset 4 lines).
patching file drivers/char/n_tty.c
Hunk #1 FAILED at 969.
1 out of 1 hunk FAILED -- saving rejects to file drivers/char/n_tty.c.rej
patching file drivers/char/vt.c
Hunk #1 succeeded at 3221 with fuzz 1 (offset 89 lines).
patching file drivers/video/bootsplash/bootsplash.c
patching file drivers/video/bootsplash/bootsplash.h
patching file drivers/video/bootsplash/decode-jpg.c
patching file drivers/video/bootsplash/decode-jpg.h
patching file drivers/video/bootsplash/Kconfig
patching file drivers/video/bootsplash/Makefile
patching file drivers/video/bootsplash/render.c
patching file drivers/video/console/fbcon.c
Hunk #2 FAILED at 201.
Hunk #3 FAILED at 412.
Hunk #4 FAILED at 436.
Hunk #5 FAILED at 466.
Hunk #6 FAILED at 502.
Hunk #7 FAILED at 534.
Hunk #8 FAILED at 821.
Hunk #9 FAILED at 904.
Hunk #10 FAILED at 1082.
Hunk #11 FAILED at 1163.
Hunk #12 FAILED at 1473.
Hunk #13 FAILED at 1544.
Hunk #14 FAILED at 1673.
Hunk #15 succeeded at 1996 with fuzz 2 (offset 276 lines).
Hunk #16 FAILED at 2074.
Hunk #17 FAILED at 2256.
Hunk #18 FAILED at 2714.
16 out of 18 hunks FAILED -- saving rejects to file
drivers/video/console/fbcon.c.rej
patching file drivers/video/console/fbcon.h
Hunk #1 succeeded at 25 (offset 2 lines).
patching file drivers/video/Kconfig
Hunk #1 succeeded at 1501 with fuzz 1 (offset 579 lines).
patching file drivers/video/Makefile
Hunk #1 FAILED at 6.
1 out of 1 hunk FAILED -- saving rejects to file drivers/video/Makefile.rej
patching file drivers/video/vesafb.c
Hunk #1 succeeded at 172 (offset -2 lines).
patching file include/linux/console_struct.h
Hunk #1 succeeded at 95 (offset 8 lines).
patching file include/linux/fb.h
Hunk #1 succeeded at 734 with fuzz 1 (offset 228 lines).
patching file kernel/panic.c
Hunk #1 FAILED at 83.
Hunk #2 FAILED at 112.
2 out of 2 hunks FAILED -- saving rejects to file kernel/panic.c.rej

Nesse caso um usuário colocou um patch e como o mesmo estava errado...

Hunk seria...

Hunks:
A hunk is a section to be patched. A hunk usually begins and ends with lines that don't need any changes, they are just mentioned so that Patch can find the appropriate place in the files to be patched. Hunk in these examples begins with a double at symbol (@@) and ends when either a new hunk starts or it finds a new patch header.

Aqui um usuário ensina a usar um patch e olha o resultado da entrada do patch dele

http://mody.lastinn.info/p225.html

patching file "admin/admin_groups.php"
patching file "admin/admin_ranks.php"
patching file "admin/admin_users.php"
Hunk #1 succeeded at 938 (offset 31 lines).
Hunk #3 succeeded at 1294 (offset 31 lines
).
patching file "common.php"
Hunk #1 succeeded at 365 with fuzz 2 (offset 27 lines).
patching file "groupcp.php"
Hunk #8 succeeded at 906 (offset -1 lines).
Hunk #10 succeeded at 1003 (offset -1 lines).
Hunk #11 succeeded at 1093 (offset 4 lines).
Hunk #12 succeeded at 1162 (offset -1 lines).
Hunk #13 succeeded at 1190 (offset 4 lines).
Hunk #14 succeeded at 1210 (offset -1 lines).
Hunk #15 succeeded at 1232 (offset 4 lines).
Hunk #16 succeeded at 1253 (offset -1 lines).
Hunk #17 succeeded at 1282 (offset 4 lines).

patching file "includes/constants.php"
Hunk #1 succeeded at 192 (offset 3 lines).
patching file "includes/functions.php"
patching file "includes/functions_color_rank.php"
patching file "includes/mods_info/color_ranks.php"
patching file "includes/page_header.php"
patching file "includes/topic_review.php"
patching file "includes/usercp_viewprofile.php"
Hunk #1 succeeded at 97 (offset 5 lines).
patching file "index.php"
Hunk #1 succeeded at 288 (offset 16 lines).
Hunk #3 succeeded at 443 (offset 16 lines).
Hunk #5 succeeded at 743 (offset 16 lines).
patching file "language/lang_polish/lang_admin.php"
Hunk #1 succeeded at 1381 (offset -86 lines).
patching file "language/lang_polish/lang_main.php"
Hunk #1 succeeded at 1386 with fuzz 3 (offset -1 lines).
patching file "memberlist.php"
patching file "modcp.php"
Hunk #1 succeeded at 1245 (offset -1 lines).
Hunk #3 succeeded at 1722 (offset -1 lines).
patching file "search.php"
Hunk #1 succeeded at 692 (offset -4 lines).
Hunk #3 succeeded at 999 (offset -9 lines).
patching file "shoutbox_view.php"
patching file "staff.php"
patching file "templates/subSilver/admin/group_edit_body.tpl"
patching file "templates/subSilver/admin/ranks_edit_body.tpl"
patching file "templates/subSilver/admin/ranks_list_body.tpl"
patching file "templates/subSilver/groupcp_info_body.tpl"
patching file "templates/subSilver/groupcp_user_body.tpl"
patching file "templates/subSilver/index_body.tpl"
Hunk #1 succeeded at 74 with fuzz 3 (offset -4 lines).
patching file "templates/subSilver/memberlist_body.tpl"
patching file "templates/subSilver/privmsgs_body.tpl"
patching file "templates/subSilver/viewonline_body.tpl"
patching file "viewforum.php"
Hunk #1 succeeded at 287 (offset 1 line).
Hunk #3 succeeded at 325 (offset 1 line).
Hunk #5 succeeded at 440 (offset 1 line).
Hunk #7 succeeded at 1012 (offset 3 lines).
patching file "viewonline.php"
patching file "viewtopic.php"
Hunk #1 succeeded at 903 (offset 8 lines).
Hunk #3 succeeded at 1750 (offset 8 lines).
Hunk #5 succeeded at 2219 (offset 8 lines).
patching file "warnings.php"


Quando ao patch CK não entrar no kernel 2.6.25.10 na verdade ele entra mas não acrescenta opções ao kernel o único que acrescenta é esse:

The options to alter the vmsplit to enable more lowmem are hidden behind the
embedded option. Make it more exposed for -ck users and make the help menu
more explicit about what each option means.

Signed-off-by: Con Kolivas <kernel@kolivas.org>

---
arch/x86/Kconfig |   12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

Index: linux-2.6.25-dark/arch/x86/Kconfig
===================================================================
--- linux-2.6.25-dark.orig/arch/x86/Kconfig
+++ linux-2.6.25-dark/arch/x86/Kconfig
@@ -779,7 +779,7 @@ endchoice

choice
   depends on EXPERIMENTAL
-   prompt "Memory split" if EMBEDDED
+   prompt "Memory split"
   default VMSPLIT_3G
   depends on X86_32
   help
@@ -799,17 +799,17 @@ choice
     option alone!

   config VMSPLIT_3G
-      bool "3G/1G user/kernel split"
+      bool "Default 896MB lowmem (3G/1G user/kernel split)"
   config VMSPLIT_3G_OPT
      depends on !X86_PAE
-      bool "3G/1G user/kernel split (for full 1G low memory)"
+      bool "1GB lowmem (3G/1G user/kernel split)"
   config VMSPLIT_2G
-      bool "2G/2G user/kernel split"
+      bool "2GB lowmem (2G/2G user/kernel split)"
   config VMSPLIT_2G_OPT
      depends on !X86_PAE
-      bool "2G/2G user/kernel split (for full 2G low memory)"
+      bool "2GB lowmem (2G/2G user/kernel split)"
   config VMSPLIT_1G
-      bool "1G/3G user/kernel split"
+      bool "3GB lowmem (1G/3G user/kernel split)"
endchoice

config PAGE_OFFSET


Quem compilou e procurou achou essas opções... da mesma forma se ele não entrasse ele daria erro ou impediria a compilação até pq os patches são assim...

CitarSabe, eu estava pensando: Pra quê viver pegando patchs do pardus ou do dark, ou melhor dizendo, de terceiros? Vamos pegar diretamente onde eles pegam: http://git.kernel.org/?p=linux/kernel

É CLARO QUE EU GOSTARIA DE USAR O GIT!!! MAS EU TENHO PAVOR dele e por isso prefiro usar de terceiros...

O zen por usar muito o git tem uma gama de erros afinal o git é um pouco instável...

E ao usar o do Pardus e do Dark eu posso olhar de perto (nós foruns) os erros e corrigí-los também por causa da quantidade de usuários que usam ambos. Além do mais o Kernel do Pardus é um misto de kernel do Fedora, Suse, Ubuntu, etc... então tem excelentes patches!!

O git é usável mais tem muita coisa insana lá... e o omnislash ainda não é um kernel totalmente voltado a desempenho... (Quem faz isso é o Zen) por isso estou andando devagar...
Sem distro Linux fixa - Kernel Omnislash
Meu objetivo nesse fórum é ajudar. Sou um mero humano mas desejo sempre aprender e melhorar em tudo o que faço em minha vida. Então, por favor, quando eu postar me notifique depois

DiamondMax

Vlw, Hqxriven, eu achava que essas mensagens ( Hunk #1 succeeded at 3961 (offset -5 lines) ) deixavam o patch incompleto no kernel.

Creio que vc já saiba, mas é mais fácil adicionar patchs desse modo: 
Para saber se ele entra sem problema: patch --dry-run -p1 -i /usr/src/bootsplash-3.1.4-2.6.3.diff
E se não obtiver nenhum erro, adicioná-lo ao kernel: patch -p1 -i /usr/src/bootsplash-3.1.4-2.6.3.diff

Isso facilita muito quando se tem muitos patchs na mão...
Ubuntu 9.04 + Kernel 2.6.32.6

http://diamondmax.wordpress.com

Bernardo MC

 Hqxriven,

     Ao tentar instalar o kernel  2.6.24.7 Omnislash 4.5 no Kurumin 7 Light obtive a seguinte mensagem na hora do
boot:

            ACPI: invalid PBLK length [5]

    Então utilizei o parametro acpi=off e obtive:

           error inserting fan  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/fan.ko (no such device)
           error inserting processor  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/processor.ko (no such device)
           error inserting thermal  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/thermal.ko (unknow symbol in module or unknow parameter) (see dmesg)

          check for missing modules  (cat /proc/modules), or device files (ls /dev)

                           
        Atualizei os pacotes acpi, acpid e os dos compiladores para a versão testing, tornei a compilar o kernel copiando a configuração atual do Kurumin 7 (em  Loadable module support),  para a  ./config do Omnislash (em General Setup), mas não adiantou, as mensagens se repetiram.

       Tem como corrigir esse erro ?

       Encontrei esta mensagem onde voce diz que conseguiu compilar para o Kurumin, você pode disponibilizar  o ./config que foi usado ?

http://ubuntuforum-br.org/index.php/topic,32865.msg194746.html#msg194746

"...Se tiverem um espacinho para mim e eu puder ajudar de alguma forma, estou pronto para colaborar!!! Eu testei um omnislash com uma config personalizada no kurumin 7 e o ganho foi enorme o kurumin tava usando depois do boot 48 de ram com vesa..."



              Obrigado,

                     Bernardo.

Kurumin 7 Light
Pentium 4
512 RAM
Texas Flood 2.1

Hqxriven

#986
CitarACPI: invalid PBLK length [5]

    Então utilizei o parametro acpi=off e obtive:

           error inserting fan  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/fan.ko (no such device)
           error inserting processor  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/processor.ko (no such device)
           error inserting thermal  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/thermal.ko (unknow symbol in module or unknow parameter) (see dmesg)

          check for missing modules  (cat /proc/modules), or device files (ls /dev)

Dependendo do hardware isso acontece mesmo... Não sei se dará certo mas faço as seguintes sugestões:

1 - Tente noapic acpi=off

2 - Tente compilar o kernel com suporte a apm (eu geralmente desativo como faz o zenwalk)

3 - Tente compilar o kernel com suporte a apm (eu geralmente desativo como faz o zenwalk) e coloque depois noapic acpi=off

CitarEncontrei esta mensagem onde voce diz que conseguiu compilar para o Kurumin, você pode disponibilizar  o ./config que foi usado ?

http://ubuntuforum-br.org/index.php/topic,32865.msg194746.html#msg194746

Nem tenho mais a config amigo, faz bastante tempo que não sei o que é compilar um kernel no kurumin :o

Nessa nova versão do omni estou usando a seguinte config:

## Omnislash 4 otimização
#Diminuir resquícios na memória
vm.dirty_background_ratio = 10
vm.dirty_ratio = 40
#Diminuir granularidade que aumenta a performance
#kernel.sched_min_granularity_ns = 20000000
#Percentagem de uso da memória ram antes de usar a swap
vm.swappiness = 15
#Impedir a sobre-alocação de memória dos programas
vm.overcommit_memory = 2
vm.overcommit_ratio = 50
Sem distro Linux fixa - Kernel Omnislash
Meu objetivo nesse fórum é ajudar. Sou um mero humano mas desejo sempre aprender e melhorar em tudo o que faço em minha vida. Então, por favor, quando eu postar me notifique depois

morpheu

Hqxriven.

Bom dia.

No começo voce disponibilizava os arquivos .deb para instalar.
Eu estou usando a ultima versão e compilei no meu micro.
Mas acho que seria legal, "de vez em quando", postar o .deb para os usuários iniciantes, ou mesmo para os usuários, que não tem muito tempo (ou no meu caso, quando a esposa dá uma "folga") para ficar compilando, mas gostariam de prestigiar e usufruir da sua pesquisa.
O que voce acha? É só uma sugestão.

Bernardo MC

Citação de: Hqxriven online 17 de Julho de 2008, 19:55
CitarACPI: invalid PBLK length [5]

    Então utilizei o parametro acpi=off e obtive:

           error inserting fan  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/fan.ko (no such device)
           error inserting processor  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/processor.ko (no such device)
           error inserting thermal  lib/modules/2.6.24.7 omni/kernel/drivers/acpi/thermal.ko (unknow symbol in module or unknow parameter) (see dmesg)

          check for missing modules  (cat /proc/modules), or device files (ls /dev)

Dependendo do hardware isso acontece mesmo... Não sei se dará certo mas faço as seguintes sugestões:

1 - Tente noapic acpi=off

2 - Tente compilar o kernel com suporte a apm (eu geralmente desativo como faz o zenwalk)

3 - Tente compilar o kernel com suporte a apm (eu geralmente desativo como faz o zenwalk) e coloque depois noapic acpi=off

CitarEncontrei esta mensagem onde voce diz que conseguiu compilar para o Kurumin, você pode disponibilizar  o ./config que foi usado ?

http://ubuntuforum-br.org/index.php/topic,32865.msg194746.html#msg194746

Nem tenho mais a config amigo, faz bastante tempo que não sei o que é compilar um kernel no kurumin :o

Nessa nova versão do omni estou usando a seguinte config:

## Omnislash 4 otimização
#Diminuir resquícios na memória
vm.dirty_background_ratio = 10
vm.dirty_ratio = 40
#Diminuir granularidade que aumenta a performance
#kernel.sched_min_granularity_ns = 20000000
#Percentagem de uso da memória ram antes de usar a swap
vm.swappiness = 15
#Impedir a sobre-alocação de memória dos programas
vm.overcommit_memory = 2
vm.overcommit_ratio = 50


   Hqxriven,

       Tentei os passos 1,2 e 3, não funcionou, as mesmas mensagens continuam aparecendo (não usei essa config da nova versão).
       De qualquer forma obrigado por ter respondido.

                         Bernardo. 

gatohumano

Hqxriven esqueci de te avisar duma coisa,no config deste ultimo kernel tens umas coisas mal em Cryptographic API ,CBC support tem de estar em modulo(encontrava-sse em y),AES cipher algorithms e AES cipher algorithms (i586) tem de estar em modulo(encontrava-sse em n),caso contrario que use o sistema de partição totalmente encriptada não consegue fazer boot apos instalar o kernel compilado.