07-05-2008 por willianpts
Compilar kernel - Slackware
Boa tarde.
Bom, uso Linux há uns 3 meses, atualmente Slackware 12. Quero compilar meu próprio kernel afim de reduzir o consumo de ram e deixar o pc um pouco mais rápido.
Ontem fiz minha primeira tentativa. Baixei o kernel 2.6.24.5 e me atirei.
Como não fazia idéia do que fazer, segui estes 2 tutoriais:
http://www.dicas-l.com.br/dicas-l/20040710.php e
http://pt-br.gentoo-wiki.com/Tutorial_Compilar_Kernel.
Mas no fim das contas obtive um belo kernel panic, depois de escolher a nova entrada no lilo, a tela fica preta e as luzes do Caps Lock, Num Lock e Scroll Lock ficam piscando.
Alguém pode me recomendar um bom tutorial para compilação?
Obrigado.
07-05-2008 por DJ.
No próprio REAME que tem na pasta do kernel tem os passos(mas tudo em inglês)
E tem esse aqui ->
Recompilando o Kernel
07-05-2008 por Core_Dump
Se seu HD e SATA, da uma olhada no diretorio BOOT no texto READMEinitrd.
O problema pode ser a falta de um ramdisk.
Outra causa frequente de kernel panic sao escolhas inadequadas de configuracao de suporte a hardware, principalmente HD ao configurar o kernel, e tambem a tipos de arquivo suportados. Nao se esqueca de pelo menos carregar modulos para o tipo de arquivo de sua particao (ext3 ou reiserfs).
Nesses casos sugiro voce partir de um arquivo de configuracao do kernel padrao e fazer as modificacoes que deseja no kernel novo de modo mais conservador.
07-05-2008 por willianpts
Obrigado pela ajuda!!
Neste momento, estou compilando. Peguei o .config do kernel padrão, desativei dispositivos que eu não uso e troquei o tipo de processador. Acredito que esteja tudo certo agora. Antes eu acho que o problema foi com o HD, pois não lembro de ter selecionado controladores IDE. Antes eu habilitei todos os sistemas de arquivos, portanto não foi ali que eu errei.
Bom, já entendi como compilar, agora só testando para deixar como eu quero.
Obrigado!
08-05-2008 por Hqxriven
Vc podia ter aproveitado e colocado uns patches aí vc sentiria mais diferenças na performance.
O relatime (aumento de performance do hd e io), ck (não oficial para aumento de performance em geral), mtrr backport da série 25 (putz gostei dele é mais um de aumento) e o barrier para dar mais segurança ao ext3 e ainda o sched boost para o xorg ganhar mais velocidade sendo executado em tempo real para mim são essenciais. Além do hz em 1000 e compilar para o meu processador.
09-05-2008 por willianpts
Nossa, obrigado pelas dicas
Hqxriven. Já usei seu kernel Omnislash no Ubuntu e realmente, ele é o capeta.... Parabéns pelo trabalho!
Eu até tentei aplicar um patch, mas não consegui entender como se aplica. Eu digitei # patch -pl < localização_do_patch, mas ele retornou uma mensagem pedindo que eu indicasse um arquivo, mas eu não sei do que se trata...
Se puder me dar umas dicas, ficarei muito grato. Aliás, qual kernel você recomenda eu usar? Meu hardware é de 2001, e não preciso de bluetooth, nem infravermelho, nem sata e etc. Só o básico mesmo. E esses patchs são para determinado kernel ou servem em qualquer um?
Ah, se usar o .config do seu kernel Omnislash, vai funcionar no Slackware?
Valeu!!!
09-05-2008 por Hqxriven
Como root (e não sudo pq as vezes dá problemas) em ambos os casos:
Caso o patch esteja no mesmo diretório do kernel.
patch -p1 <
nomedopatch.patch
Caso não esteja:
patch -p1 < diretório/
nomedopatch.patch
O lance é usar os patches específicos para cada versão do kernel para eles entrarem direito. Um patch não funciona para qualquer kernel.
Quanto a config do omnislash 4 ela é derivada do zenwalk (quem olhar as duas vai notar) mas a minha tem quase 80 patches e aí o interessante seria vc abrir as duas configs (a do slack e a do omnislash versão do kernel 2.6.24.5) em um editor de textos e ver certas coisas que o slack ativa e continuar deixando ativadas essas partes (se forem interessantes), agora o que vc ver que só tem no omnislash (exemplo relatime que não existe em um kernel normal) deixar ativo (vai dar um trabalho...).
Assim vai funcionar, até pq a última versão do kernel omnislash é a versão 2.6.24.5 com patches incluídos, por isso ela é universal, o que pode fazer ela funcionar ou não é a config.
Hqx
09-05-2008 por willianpts
Bom, então vou recompilar e aplicar os patches que você me recomendou no primeiro post. Aliás, como era de se esperar, ficou capenga a minha compilação. Desativei coisa de mais, e acabou que o comando halt não desliga mais o sistema, e minha partição FAT não funciona pois removi o Charset.... Porém com o Hz em 1000, já senti a diferença no uso do sistema, além de que ganhei 30MB de ram, desativando drivers.
Bom, dos patches que você me recomendou, só não encontrei o
mtrr backports, os outros eu achei. E pelo que você disse, o mtrr é muito útil. Talvez não tenha googleado o suficiente, mas, pode me mandar o link dele?
Editando: Acho melhor colocar os nomes dos patchs que eu baixei, para ter certeza de que não são os arquivos errados.
improve-relatime-2.6.24.patch
ckpatches-2.6.24.patch
sched-cfs-boost-2.6.24.patch
ext3-barrier-default.patch
Obrigado.
09-05-2008 por Hqxriven
Vamos lá...
O ck completo não é mais mantido nem oficialmente nem não-oficialmente então esse ck aí está obsoleto...
Somente algumas partes do ck ainda são mantidas e elas estão no omnislash...
O ext3 barrier foi atualizado eu notei isso pq o barrier do suse é outro
Se quiser usar um kernel em que os patches já estão incluídos é só baixar esse (ele tem
88 patches se vc fizer esse processo manualmente vai demorar um boooom tempo):
Link para o kernel 2.6.24.5 Source em tar.bz2 que possivelmente funciona em qualquer distro já que ele é apenas o 2.6.24 com 88 patches!!
http://www.adrive.com/public/b7505a2...1e33501da.html
Os patches são esses:
omni/sched-cfs-boost-2.6.24.patch
mainline/patch-2.6.24.5
omni/8b2f7ffffe7f247ba237322fee78c528ba88f16b.patch
stable/tehuti-check-register-size.patch
stable/tehuti-move-ioctl-perm-check-closer-to-function-start.patch
stable/usb-gadget-queue-usb-usb_cdc_get_encapsulated_response-message.patch
stable/jffs2-fix-free-space-leak-with-in-band-cleanmarkers.patch
stable/increase-the-max_burst-threshold-from-3-to-tp-reordering.patch
stable/usb-remove-broken-usb-serial-num_endpoints-check.patch
stable/v4l-fix-vidiocgap-corruption-in-ivtv.patch
stable/v4l-cx88-enable-radio-gpio-correctly.patch
ck/mm-swap_prefetch-41.patch
ck/mm-lots_watermark.diff
ck/mm-kswapd_inherit_prio-1.patch
ck/mm-prio_dependant_scan-2.patch
ck/mm-background_scan-2.patch
ck/kconfig-expose_vmsplit_option.patch
omni/squashfs3.3-patch
fedora/linux-2.6-acpi-video-backlight-rationalize.patch
fedora/linux-2.6-acpi_ec_early_init_fix.patch
fedora/linux-2.6-acpi-disable-stray-interrupt-1.patch
fedora/linux-2.6-acpi-disable-stray-interrupt-2.patch
fedora/linux-2.6-smarter-relatime.patch
fedora/linux-2.6-pci-remove-default-pci-rom-allocation.patch
fedora/linux-2.6-pci-revert-remove-transparent-bridge-resizing.patch
fedora/linux-x86-mtrr-2d2ee8de5f6d26ef2942e0b449aa68d9236d5777.patch
fedora/linux-x86-mtrr-99fc8d424bc5d803fe92cad56c068fe64e73747a.patch
fedora/linux-x86-mtrr-2f36fa13ce49ffd000249feaedfcbefbcc83a72f.patch
fedora/linux-x86-mtrr-013d23e1567c4cebee0a2db5c8fa97b91b34ac2a.patch
fedora/linux-x86-mtrr-c9cce83dd1d59f52e2c8f8c7d265ba4854c40785.patch
fedora/linux-x86-mtrr-04e1ba852132c9ad006affcd5b8c8606295170b0.patch
fedora/linux-x86-mtrr-8c61b900ebb8ec5918ffd776ba1a61a5f022566d.patch
fedora/linux-x86-mtrr-a860b63c41f241c685245127a3d32f352cb04c12.patch
fedora/linux-x86-mtrr-7b11fb51567dedeaf6dc03f0135c0a8bb2399818.patch
fedora/linux-x86-mtrr-0b9c99b6f21c2e9e00938e9c57942ed71bfe4d21.patch
fedora/linux-x86-mtrr-5548fecdff5617ba3a2f09f0e585e1ac6e1bd25c.patch
fedora/linux-x86-mtrr-53756d3722172815f52272b28c6d5d5e9639adde.patch
fedora/linux-x86-mtrr-2b16a2353814a513cdb5c5c739b76a19d7ea39ce.patch
fedora/linux-x86-mtrr-093af8d7f0ba3c6be1485973508584ef081e9f93.patch
fedora/linux-x86-mtrr-cd7d72bb27a8c7502a602bdc299f1bb0a9357975.patch
fedora/linux-x86-mtrr-9a6b344ea967efa0bb5ca4cb5405f840652b66c4.patch
fedora/linux-x86-mtrr-16c02ed74361433a4fc5d8bd5f67abbac6e1c5ca.patch
fedora/linux-x86-mtrr-20651af9ac60fd6e31360688ad44861a7d05256a.patch
fedora/linux-x86-mtrr-f5106d91f2bf9153d6420f9ebb8114f73f9ce66a.patch
fedora/linux-x86-mtrr-c140df973c07ac328aafd19d4f4c413f2f8902df.patch
fedora/linux-x86-mtrr-31183ba8fd05b6ddc67ab4d726167cbc52e1b346.patch
fedora/linux-x86-mtrr-aaf230424204864e2833dcc1da23e2cb0b9f39cd.patch
fedora/linux-x86-mtrr-5dca6a1bb014875a17289fdaae8c31e0a3641c99.patch
fedora/linux-2.6-isapnp-fix-limits.patch
fedora/linux-2.6-pnp-extend-resource-limits.patch
fedora/linux-2.6-pnp-disable-overlapping-resources.patch
fedora/linux-2.6-xfs-features2-fixup.patch
fedora/linux-2.6-xfs-features2-fixup-fix.patch
fedora/linux-2.6-x86-asmlinkage_protect-sys_io_getevents.patch
ubuntu/ubuntu-hardy.git-de4a8cb0c4ebcc8130d1b3b71a0f07f1e797632a.patch
ubuntu/ubuntu-hardy.git-238139a89114a3b8e01f758ba3db5232895c1d57.patch
ubuntu/ubuntu-hardy.git-f3f4c74b904a994d57b1e4907bf9476c81eff142.patch
ubuntu/ubuntu-hardy.git-104d415651e1d8f5a0f0720bdc2e1f527544a24b.patch
ubuntu/ubuntu-hardy.git-978a8bed296d7f5d76c57018417bee79046354a1.patch
ubuntu/ubuntu-hardy.git-6089605298fa6267a79fa070e740387691f44eae.patch
ubuntu/ubuntu-hardy.git-37bf83ea3a1841ec63d2d9b54b485bb90386ce5b.patch
ubuntu/ubuntu-hardy.git-8954b8aa130ca0092ead883912a4be3b1e0a3e8c.patch
ubuntu/ubuntu-hardy.git-2070509e4474bf29715fa049c13204a4a4025442.patch
ubuntu/ubuntu-hardy.git-2ebc9b9db7cfe124caf8836ec05da5fd3bb710af.patch
ubuntu/ubuntu-hardy.git-30b2ec9f4165d3a84d9024ef8fdd032ed025b1a7.patch
ubuntu/ubuntu-hardy.git-91d34e2c845a1c24a5802fd353165b1d68720a1a.patch
ubuntu/ubuntu-hardy.git-a0415b12dda1c03903be44183ebe7eb1651d7481.patch
suse/acpi_force-fan-active.patch
suse/smtnice-disable.patch
suse/wireless-no-aes-select.patch
suse/x86-nvidia-timer-quirk.patch
suse/ext2-fsync-err.patch
suse/ext3-barrier-default.patch
pardus/pie-randomization.patch
pardus/randomize-brk.patch
pardus/echo-ctrl-c.patch
pardus/ixany-interrupt-signal.patch
pardus/bluetooth-usb-conwise-sco.patch
pardus/xfrm-speedup.patch
pardus/afkey-large-databases.patch
pardus/inotify_SIGIO_driven_queues.patch
pardus/inotify_coalescing.patch
pardus/fix_inotify_send_IN_ATTRIB_events_when_link_count_ changes.patch
pardus/sparsemem_memory_present.patch
pardus/gcc-4.3.patch
pardus/wireless-2008-04-25.patch
omni/linux-phc-kernel-vanilla-2.6.24-rc1.patch
omni/unionfs-2.3.2_for_2.6.24.4.diff
Assim vc evita ter que colocar esses patches manualmente (um por um).
09-05-2008 por willianpts
Puxa, nem sei como te agradecer. Mal posso esperar para ver esse kernel no meu Slack.
Valeu!!
10-05-2008 por Hqxriven
Espero que funcione direitinho!!
Já coloquei ele bem no K7, Sidux e Zenwalk estou esperando os relatos de um colega que quer colocá-lo no Gentoo e estou querendo testar nesse fim de semana no Archlinux...
10-05-2008 por Core_Dump
Hqxriven
Desculpe a ignoancia, mas basta apenas aplicar os patches, ou tem que modificar configuracoes no kernel? Compilei o omnislash ( o kernel do link acima) aqui no Slackware 12 mantendo as configuracoes anteriores mas nao percebi logo melhora de desempenho.
As configuracoes anteriores resultaram num kernel de 1,6M, ja de certo modo otimizadas para meu PC.
10-05-2008 por Hqxriven
Com a configuração anterior tudo o que o kernel do slack tem e o omnislash tem serão ativados.
E o que o omnislash tem e o slack não tem serão ativados de que forma??
A config do kernel do slack está pronta para ativar relatime, sched boost, etc??
É por isso que falei no post para confrontar as configs ou se então carregar a do omni logo (funcionou no zenwalk assim mas não garanto que vai funfar no slack)
Existe várias opções que aparecem no kernel que precisam ser habilitadas
No meu Kubuntu 7.10 o tamanho do kernel é de 1,4 menor ainda...
1KB no kernel é muita coisa ativada... (pelo menos para mim)
Obs.: Modifique o número da versão do omnislash para uma segunda compilação.
Em distros debian se eu compilar por exemplo um omnislash 4-7 duas vezes não poderei compilar vídeo, modem nem nada.
Por isso coloque 4-8 ou outra coisa por segurança no makefile.
Hqx
13-05-2008 por willianpts
Bom, demorei mas voltei, com notícias nada boas.
Compilei o kernel com o .config do Omnislash, alterando a arquietura do processador, e desativando o suporte a controladores IDE e placas de som que não uso. O 'make bzImage' foi tranqüilo, poré o 'make modules' falhou na parte dos módulos SCSI. Removi tudo e comecei de novo. Porém, desmarquei todos os módulos scsi no .config. Dessa vez foi até o final, mas achei estranho que gerou um kernel de 1.8mb. Adicionei ao lilo e reiniciei. O kernel começa a carregar e exibe esta mensagem:
VFS: Cannot open root device "308" or unknow-block (3-8)
Please append a correct "root=" boot option; here are the avaliable partitions:
Kernel panic - Not syncing: VFS : Unable o mount FS on unknow-block (3,8)
Bom, por enquanto não sei o que fazer, mas não vou desistir.
Fui.
13-05-2008 por Hqxriven
Aqui a imagem que mostra que no kubuntu está a 1.4 MB o kernel
Acho que vc deve ter mexido em bastante coisa para ele crescer assim...
Faça o seguinte:
Use o config do slask current (2.6.24.5)
http://mirror.pacific.net.au/linux/s...gesmp.s/config
Coloque o hz em 1000 e procure ver se as seguintes opções estão assim:
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
CONFIG_CGROUPS is not set
# CONFIG_FAIR_GROUP_SCHED is not set
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_COMPAT_BRK=y
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_MATH_EMULATION is not set
CONFIG_APM is not set
CONFIG_IO_DELAY_0XED=y
CONFIG_ECRYPT_FS=m
CONFIG_UNION_FS=m
CONFIG_UNION_FS_XATTR=y
CONFIG_DEFAULT_RELATIME=y
CONFIG_DEFAULT_RELATIME_VAL=1
CONFIG_BOOST_PRIVILEGED_TASKS=y
Tem várias coisas que retirei pois sei que pesam no kernel (principalmente algumas partes obsoletas). Deixar dessa forma acima não vai deixar o tamanho em 1,4 visto que eu tirei muita coisa e está na config.
Acho que alterando o makefile e carregando a config do slack e colocando pequenas alterações vai...
14-05-2008 por willianpts
Na mosca
Hqxriven, estou postando do kernel novo. Já notei um ganho de performance ao abrir os programas e as partições, até o glxgears está mais rápido. Agora vou ter de recompilar algumas vezes até chegar ao ponto ideal, pois desta vez me assustei: 4,2MB.
http://img213.imageshack.us/img213/1899/kernelhz3.png
Acho que o problema é essse .config do slack current, que deixa tudo ativado por padrão.
Falando nisso, sabe como deixar o KDE mais leve? Ele já boota usando 240Mb de ram, e é só eu abrir o Amarok e o Firefox para ele consumir todos os meus 640Mb de ram.
Agora sim dá gosto de usar Linux, pois deixa o XP comendo poeira no quesito velocidade.
Muito obrigado por toda a ajuda!
14-05-2008 por Hqxriven
willianpts 4.2 MB no slack com essa config gigante é normal!!
tente a config do zenwalk e veja se funcione porém lembre-se de mudar o nome do kernel antes!!
http://distro.ibiblio.org/pub/linux/...ls/scsi/config
Talvez dê uns 2.8 MB de tamanho (chute!!)
Mais uma coisa veja se o seu kde está assim?? (vou colocar no wordpress um artigo assim fica mais organizado)
Pretendo se a net discada não cair (rsrs) e se o adrive me ajudar colocar disponível daqui há 1 hora e meia uma nova versão do omnislash que será base 2.6.24.7 se quiser esperar até amanhã terá um kernel mais atualizado e mais seguro, com várias correções de bugs!!
http://www.guiadohardware.net/comuni...5/#post3732568
EDIT 1
Omnislash 4 corrigido dessa vulnerabilidade aqui
http://www.guiadohardware.net/comuni...5/#post3733696
Hqx
02-06-2008 por willianpts
Bom, fiquei 3 semanas sem net por isso não postei antes. Consegui reduzir o kernel do Slack para 2,2MB com 3 compilações. Infelizmente, desisti dele. O alto consumo de ram não era culpa do kde, pois sem nem mesmo iniciar o X o sistema já consumia 200Mb de ram.
Ontem compilei seu kernel no Ubuntu 7.10, mas como usei o seu .config, obtive um kernel panic. À noite vou refazer o processo com o .config do próprio Ubuntu. Aliás, em qual distro foi gerado o seu .config? Seria fácil adaptá-lo ao Kurumin NG?
Desculpe por incomodar mais.
Obrigado.
02-06-2008 por DJ.
Citação:
Postado Originalmente por willianpts
Ontem compilei seu kernel no Ubuntu 7.10, mas como usei o seu .config, obtive um kernel panic. À noite vou refazer o processo com o .config do próprio Ubuntu. Aliás, em qual distro foi gerado o seu .config? Seria fácil adaptá-lo ao Kurumin NG?
Desculpe por incomodar mais.
Obrigado.
|
Mas você alterou alguma coisa na config que já tinha?? Não tirou nada importante não?? E como compilou ele ??(usou o make-kpkg ou a forma genérica ?)
02-06-2008 por willianpts
Tenho certeza de que não tirei nada importante. Eu apenas alterei o tipo de processador e desativei drivers bluetooth. Também verifiquei o suporte ao sistema de arquivos, e o EXT3 estava certo. Pra compilar, desempacotei o kernel, criei o link simbólico para /usr/src/linux, rodei o makexconfig e por último make-kpkg. Na verdade, é a primeira vez que compilo num derivado do Debian, antes só tinha feito no Slackware.
Quanto ao erro, é o mesmo que obtive ao compilar o kernel no Slackware, com o .config do Omnislash.