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.
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.
# 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
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.
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 :)