Pular para o conteúdo

Compile e empacote o kernel com processadores ociosos em sua rede utilizando distcc, ccache e kernel-package no Debian

Se você resolve compilar e empacotar o kernel em uma máquina isoladamente, o tempo para a execução e finalização da tarefa tende ao infinito. Que tal usar os processadores de sua rede para agilizar o processo?! Neste artigo você saberá como fazer isso.
Marco Sinhoreli msinhore
Hits: 25.159 Categoria: Linux Subcategoria: Kernel
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 4: Usando o compile cluster

Algumas dicas importantes:
  • Para personalizar o seu pacote, edite o arquivo /etc/kernel-pkg.conf;
  • Se o cluster pode ser utilizado por qualquer pessoa que tenha uma conta shell em seu computador, inclua os hosts que pertencem ao cluster distcc no /etc/distcc/hosts, caso contrário coloque em ~/.distcc/hosts;
  • Você pode utilizar o aplicativo distccmon-gnome para visualizar as tarefas distribuídas no seu compile farm;
  • Para processador em SMP em seu farm, repita-o duas vezes no arquivo hosts do distcc.

Arquivo ~/.distcc/hosts:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
# em localhost tenho um processador Intel com tecnologia Hyper Threading
localhost
localhost
192.168.0.1
192.168.0.2
# Neste host tenho 2 processadores
192.168.0.3
192.168.0.3
192.168.0.4
192.168.0.5
# Total de processadores: 8

Comando:

# CC="ccache gcc"
# CONCURRENCY_LEVEL=8
# PATH=/usr/lib/ccache:"${PATH}"
# CCACHE_PREFIX="distcc"
# make-kpkg --rootcmd fakeroot --append-to-version '-urna-amdgeode' --revision '0.99.1' kernel-image --initrd


Descrição das variáveis:
  • CC: diz ao make-kpkg que é o compilador C que será utilizado, neste caso o ccache;
  • CONCURRENCY_LEVEL: informa ao make-kpkg em quantas tarefas será dividida o processo de compilação;
  • PATH: até meu avô sabe dessa :)
  • CCACHE_PREFIX: informa quem o ccache deverá chamar para a função de compilação.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Descrição das aplicações utilizadas
   2. Tudo que você precisa no nó central
   3. Tudo que você precisa nos nós escravos
   4. Usando o compile cluster
   5. Conclusão

Debmirror: Criando um repositório Debian na rede local

Kernel 2.6.9 em 20 passos

Kernel 2.6.7 compilado e configurado para nVIDIA

O Kernel Linux

Instalando o kernel 2.6.13 pré-compilado no Slackware 10.2

Kernel-BALA

#1 Comentário enviado por removido em 21/04/2006 - 11:54h
Ótimo artigo, vou testar em breve.
Só achei que o artigo foca a instalação usando apt. Poderia ser dado exemplos de instação em Fedora com uso de YUM, e até mesmo compilação manual via fonte.
Além do mais, faltou citar que as portas envolvidas no trabalho devem ser liberadas no firewall.
Abraços e parabéns :)
#2 Comentário enviado por msinhore em 21/04/2006 - 13:46h
Olá Otavio,

Eu trabalho somente com Debian e por esse motivo não citei como configurar em outras distribuições. Acredito que os passos para configuração dos aplicatívos deva ser a mesma.
Com relação ao firewall, ele não era objeto do artigo e por esse motivo não citei sua configuração.

Abraços e sucesso.
#3 Comentário enviado por psabs em 21/04/2006 - 20:04h
Olá,

Antes de mais nada , parabéns pelo artigo.

Vc saberia se o distcc e o ccache funcionariam para compilar outros projetos tal como OpenOffice, gnome etc... ? Ou ele apenas serve pra compilar kernel ?

[]
#4 Comentário enviado por removido em 21/04/2006 - 20:31h
O homem enlouqueceu!!!!!!!!!!!...........
Realmente, não faltava mais nada...
O que esse tal de linux não é capaz, hein???
;-P
#5 Comentário enviado por thelinux em 24/04/2006 - 08:46h
Ao Marco Sinhoreli - Parabéns pelo ótimo tutorial.

Ao otavio - cara, isto aqui não é curso. O cara fez um excelente tutorial.
#6 Comentário enviado por msinhore em 24/04/2006 - 10:33h
Olá psabs,

Sem nenhuma restrição para compilar outros códigos. Lembre-se de declarar e exportar as mesmas variaveis antes de chamar o gcc.

Abraços
#7 Comentário enviado por removido em 24/04/2006 - 17:29h
thelinux, não me leve a mal. Realmente é um ótimo artigo.
Apenas expressei uma ideia complementar ao artigo.
Afinal, esse espaço é exatamente para isso, para discução de ideias que possam não apenas elogiar o artigo, mas agregar mais informação :)
Abraços
#8 Comentário enviado por thelinux em 24/04/2006 - 17:43h
Tranquilo otavio. Grande abraço. Bola para frente.
#9 Comentário enviado por israel_miranda em 13/12/2007 - 15:36h
UAU!!!
Cara, eu sei da existência do projeto do bewolf para computação distribuida, mas não fazia idéia que havia um software assim para GCC!!!

Muito bom o artigo, meus parabéns!!!

Contribuir com comentário

Entre na sua conta para comentar.