HOWTO : Compilar Novo Kernel

Iniciado por iGama, 15 de Junho de 2006, 20:06

tópico anterior - próximo tópico

iGama

*Pequena actualização*

Fiz este guia baseado em NESTE

Podem encontra-lo em http://www.ubuntupt.org/wiki/index.php/Compilar_Ultimo_Kernel

:arrow:  Quem tiver mais dicas/opiniões/criticas , é tudo bem vindo.

Nota: Pacote usado como exemplo será : linux-2.6.16.tar.bz2 , atenção para usar o vosso correcto

Compilar Kernel Novo

1. Instala os pacotes necessarios para configurar o Kernel.

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev

2. Existem 2 hipoteses para compilar o kernel, ou usar a última versão ( Kernel.org ou usar a versão do Ubuntu ( que é o que eu recomendo ). Para fazer download da source do kernel do Ubuntu, ir ao synaptic e procurar por "Linux Source" que devem encontrar o pacote.

3. Agora vamos mover o Kernel que baixou e descompactar. (Nota: se baixou pelo Synaptic não é preciso mover, pois já ta na pasta /usr/src)

sudo cp linux-2.6.16.tar.bz2 /usr/src

4. Agora vamos para /usr/src

cd /usr/src

e descompactar:

sudo tar -xvjf linux-2.6.16.tar.bz2

5. Agora vamos tirar o link para a pasta linux:

sudo rm -rf linux

6. Criar um novo link para o novo Kernel:

sudo ln -s /usr/src/linux-2.6.16 linux

7. Move to the Linux directory:

cd /usr/src/linux

8. Mudar para root:

sudo -s -H

9. Agora vamos importar a configuração actual do kernel:

uname -r

10. Agora vamos importar: Tem a atenção para mudar a versão do Kernel no comando seguinte por aquela do uname -r.

cp /boot/config-2.6.15-26-686 .config

11. Configurar o Kernel novo:

make xconfig

Aqui vão uns conselhos de desempenho:

CitarEm "General Setup" activa:

-Support for paging of anonymous memory (swap)
--Support for prefetching swapped memory

Em "Processor type and features":

-Processor family Escolhe o modelo do teu processador.

Activa:

-Preemption Model
--Voluntary Kernel Preemption (Desktop)

-High Memory Support
--off -Se tens menos de 1GB de Ram
--1GB Low Memory Support -Se tens 1 GB de Ram
--4GB -Se tens mais do que 1GB Ram

Em "Device drivers" vai a "Block devices" e dentro de "IO Schedulers" deixa so o "CFQ I/O scheduler" activado, que dá melhor desempenho.

Em "Kernel hacking" uncheck "Kernel debugging".

Para manter o usplash funcionando faça as seguintes alterações abaixo:

Citar
Graphics support:
-VGA 16-color graphics support - module (m)
-VESA VGA graphics support - build in kernel (y)

Console display driver support:
-VGA text console e Video mode selection support- build in kernel (y)
-MDA text console-module (m)
-Framebuffer Console e Framebuffer Console Rotation support-build in kernel (y)

Ctrl+S para gravar a configuração do kernel e fecha a janela.

Nota: Nem todas as opções vão ser iguais em Kernels mais novos.

12. Vamos criar o Kernel: Confirma que tas em /usr/src/linux com permissões de acesso root. Confirma. Isto vai criar um ficheiro debian que podes instalar.

Agora, no terminal faz o seguinte:

make-kpkg clean

make-kpkg -initrd --revision=686 kernel_image kernel_headers modules_image


Nota: Muda "686" para o que gostares. como "386" ou "k7"

13. Instala o .deb que se encontra em /usr/src. No terminal faz:

sudo dpkg -i <nome do ficheiro>

14. Agora reinicia e entra no novo Kernel.

Lembrem-se que será preciso instalar o wireless a seguir de novo para o novo kernel.  :)

niitsu

Valeu iGama. E deixa eu perguntar, compilar o kernel desta forma resulta em um ganho de desempenho, correto?
Porque eu compilei o Fluxbox aqui e o mesmo ficou muito mais rápido do que a versão instalada pelo pacote .DEB.

Abraço!

iGama

Ter um Kernel ou um programa compilados para a tua proprioa maquina é sempre mais rapido do que usar os pré-compilados que estão nos repositorios.

Espero que funcione tudo bem.

novidades para breve ;)

lfernandosg

Sim, e como eu faço para compilar no dapper que tem esses módulos: linux-restricted para cada processador?pelo o que entendi esse linux-restricted fica encarregado de carregar a wireless, fireware entre outros serviços.
Dell Xps M1330/c2d 2.0Ghz/4GB ddr2/320GB sata/etc...

biohazard

funciono lindamente !!!

biohazard agora com kernel 2.6.17.1 , a unica coisa que tive que voltar o driver da nvidia pra nv , tenho que mexe no mudulo pro kernel novo alguem sabe como?? e to sem splash no boot , tela preta ate entra no X, mais isso eu acho que eh so mexe no menu.list

vo ve isso agora!
Arch Linux Overlord
Kernel 2.6.25-ARCH

galactus

Senhores, fiz aqui também. Na primeira vez deu erro na compilação, acho que tirei mais coisa que devia.

Na segunda vez correu tudo bem na compilação, sem erros. Instalei e como aconteceu com o Biohazard, o X deu Pau. Já esperava por isso, já que tenho o driver da Nvidia instalado, mudei para "nv" e daí subiu o X.  O boot splash da inicialização não aparece mais, mas isso também era esperado, já que não compilei um boot Splash para o novo kernel.

Eu havia cronometrado os tempos com o Kernel mais novo do Ubuntu, o 2.6.15-25  k7 (se não me engano), depois cronometrei tudo com o kernel customizado, um 2.6.17.1-k7.

Resumindo:
O tempo de boot caiu drasticamente, reduziu-se em 11 segundos!   :shock:  O carregamento dos Menus do Gnome e do KDE estão mais rápidos (quando a gente clica no aplicações, por exemplo,  para aparecer os ícones e setas).  A navegação dentro do Nautilus e do Konqueror também está mais rápida.

Ele não montou meus outros dois HDs, ignorou o fstab que tenho. Não foi o caso de não compilar o suporte aos sistemas de arquivos. Não sei o que foi.

No mais, o tempo de carregamento das aplicações, em sua grande maioria, está igual ou mais lenta que no kernel padrão! :(

O que eu notei é que ele responde bem mais rápido, que o kernel padrão, depois que chamo a aplicação pela segunda vez. Mas na primeira vez não dá diferença ou piora. As aplicações do KDE no Gnome estão muito mais lentas para carregar da primeira vez. Mas depois que ele carrega as bibliotecas do KDE, fica bala, como se estivesse no próprio KDE.

Foram quase 50 minutos para compilar tudo. Não to vendo grande vantagem em usar esse kernel customizado,  a não ser para o boot, claro. Mas como eu quase não desligo minha máquina.....    

Foi ótimo para aprender, não imaginava como o kernel padrão está lotado de besteira que a gente não usa! Foi só desabilitar uma batelada de coisa que não uso que o tempo de boot caiu drasticamente, e olha que poderia tirar muito mais coisas.

O ideal seria fazer como li em um tutorial de compilação do kernel do Debian, logo após instalar o sistema, compilar um novo kernel customizado para você, e daí sim instalar Driver de placa de Vídeo e as demais aplicações, de preferência com uma instalação do sistema em modo texto bem enxuto. Daí acredito que a diferença seria realmente notável.  Estou voltando para o kernel padrão do Ubuntu!

Abraços!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

julianodorneles

Citação de: "biohazard"funciono lindamente !!!

biohazard agora com kernel 2.6.17.1 , a unica coisa que tive que voltar o driver da nvidia pra nv , tenho que mexe no mudulo pro kernel novo alguem sabe como?? e to sem splash no boot , tela preta ate entra no X, mais isso eu acho que eh so mexe no menu.list

vo ve isso agora!

Tem que habilitar o framebuffer !!
Para mim deu isso também ! :P

Uma pena que o CPiA para a Webcam não funcionou ... vou ver isso ...

Outra coisa ... desabilitei os drivers para SCSI e tal e meu HD SATA sumiu hehehhe ... parou na verificação do sistema root :P

Tive que fazer o processo denovo .... mas que nada, agora estou craque !

[ ]'s
[color=gray]AMD Athlon64 3000+, Abit AX8, 1Gb RAM (2x512Mb Dual Channel), GF 6800XTreme Edition 256Mb, HD SATA 80Gb Samsung, LG 1752TX LCD.[/color]

havocz

Bem... o que o Galactus disse é verdade. Para se obter um melhor desempenho geral é preciso desabilitar MUITA coisa desnecessária que vem no kernel padrão.

segue um link para um artigo que pode ajudar nessa tarefa árdua de escolher o que des/habilitar  :wink:

Destrinchando um PC (configurando um kernel)

Sorte a todos ! Lembrem-se de usar este artigo com moderação.  8)

oopa! Esqueci de mencionar

Para manter o usplash funcionando faça as seguintes alterações abaixo:

Graphics support:
-VGA 16-color graphics support - module (m)
-VESA VGA graphics support - build in kernel (y)

Console display driver support:
-VGA text console e Video mode selection support- build in kernel (y)
-MDA text console-module (m)
-Framebuffer Console e Framebuffer Console Rotation support-build in kernel (y)

:idea:
°v°
/( )\\ Linux User #433307
^ ^   Debian 7

felipe3

Alguém recompilou e obteve um sistema mais rápido e sem novos problemas?

iGama

Obrigado pelas dicas havocz vou adicionar ao howto.

tenho estado ocupado e sem tempo, mas daqui a uns tempo vou poder acabar e melhorar os guia.

Nota: Site mudou de endereço.

hypnnos

Fala, galera...
Tentei seguir o tutorial postado aqui pra compilar um novo kernel, mas não fui muito feliz. Explico: Baixei a versão 2.6.17.6, correu tudo bem (aparentemente). Ao reiniciar, ok, ficou um pouco mais rápido, consegui certa melhora no ambiente gráfico e nos aplicativos. O problema é, não consigo acessar minhas partições FAT32, coisa que não acontece quando uso o kernel padrão do Ubuntu 6.06.
Um modprobe mostrou que o módulo não foi encontrado, e um slocate me mostra que os módulos só estão presentes realmente na pasta libs/modules do kernel padrão (2.6.15-23).
Alguma idéia?
1st: RTFM
2nd: Google for it.
3rd: THEN ask.

Lamego

Ter um Kernel ou um programa compilados para a tua proprioa maquina é sempre mais rapido do que usar os pré-compilados que estão nos repositorios.
Isto é em alguns casos mero mito, a diferença entre processadores do mesmo tipo é muitas vezes minima do ponto de vista das optimizações que o compilador pode fazer, pelo que em muitos casos não se nota diferença nenhuma.
O activar/desactivar algumas opções que alteram o "programa" do kernel propriamente dito tal como é a sugestão de activar o "Voluntary Kernel Preemption" é que pode ter um maior impacto na performance.
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

joao.zanella

Estou seguindo passos deste check-list, e ocorreram os seguintes erros no terminal:

root@zanella-desktop:/usr/src/linux# make xconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/split-include
  HOSTCC  scripts/basic/docproc
  CHECK   qt
  HOSTCC  scripts/kconfig/conf.o
sed < scripts/kconfig/lkc_proto.h > scripts/kconfig/lkc_defs.h 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
  HOSTCC  scripts/kconfig/kconfig_load.o
  HOSTCC  scripts/kconfig/kxgettext.o
  HOSTCC  scripts/kconfig/mconf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/lex.zconf.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
/usr/bin/moc -i scripts/kconfig/qconf.h -o scripts/kconfig/qconf.moc
  HOSTCXX scripts/kconfig/qconf.o
  HOSTLD  scripts/kconfig/qconf
scripts/kconfig/qconf arch/i386/Kconfig
qconf: cannot connect to X server
make[1]: *** [xconfig] Error 1
make: *** [xconfig] Error 2


O que pode estar ocorrendo? Será que fiz algo errado?
Baixei o arquivo linux-2.6.17.tar.bz2 do Kernel.org.

Alguémmmm me ajuuudeee!!! ehehhee

Abc, Zanella.
O conhecimento amplia a vida.

Lamego

#13
O que pode estar ocorrendo? Será que fiz algo errado?
Baixei o arquivo linux-2.6.17.tar.bz2 do Kernel.org.

Alguémmmm me ajuuudeee!!! ehehhee

Abc, Zanella.

O make xconfig é para configurar em modo gráfico, pela mensagem você não tem o X a correr.
Tem que utilizar o "make menuconfig". (Acho que é esse o nome)

E amigo, não siga o efeito do rebanho, se você não sabe compilar o Kernel certamente vai perder tempo e vai encontrar  mais problemas do que soluções ou melhorias.
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

gaijin

Citação de: felipe3 online 27 de Junho de 2006, 18:12
Alguém recompilou e obteve um sistema mais rápido e sem novos problemas?

Eu consegui, aliás, estou usando incríveis 40 MB com o XFCE ligado. O tempo de boot reduziu quase pela metade. Mas fiz isso no Debian pois é minha partição teste, acredito que no ubuntu também funcione perfeitamente. Apenas leia bastante.
"Conhece-te a ti mesmo." Oráculo de Delfos

Como proceder quando tenho uma dúvida? (7 passos) http://ubuntuforum-pt.org/index.php?topic=8212.0