HOWTO Compile Kernel With Distcc and CCache

Uit Gentoo Linux Wiki

Ga naar: navigatie, zoeken

HOWTO Kernel compilatie met Distcc en CCache


Inhoud

[bewerken] HOWTO Kernel compilatie met Distcc en CCache

Dit artikel legt uit hoe je een linux kernel kan compileren met twee of meer Pc’s gebruik makend van distcc.

[bewerken] Vereisten

Dit opzet vereist 2 of meer linux hosts met dezelfde basis van gcc op een IP network, bij voorkeur een privé netwerk. Distcc moet geïnstalleerd staan op alle hosts (zie [1]).

Het gebruik van ccache is optioneel.

(see [2]) Zie www.delorenzo.info


[bewerken] Installatie

In dit voorbeeld veronderstellen we dat we een of meerdere server machines hebben die een distcc daemon werkend hebben, en een client machine waarop de kernel compilatie zal gebeuren. De client machine kan mogelijks deelnemen aan de kernelcompilatie. Indien niet, dan zal de kernel door de servers worden gecompileerd.

[bewerken] Op de server(s)

Nu bekijken we de configuratie eigenschappen op de server(s).

Het bestand /etc/conf.d/distccd

DISTCCD_OPTS="-j2" #Het aantal bestanden verwerkt door distcc
[...]
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"  #Netwerk poort config
[...]
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level critical" #Syslog config
[...]
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24" #Netwerk config. Dit is het net waar de server de aanvragen opvangt 
[...]
DISTCCD_NICE="15"

Start tenslotte de distcc server

[user@system ~] /etc/init.d/distccd start

[bewerken] Als de client mee de kernel zou moeten compileren...

In dit geval kunnen we de kernel op deze wijze compileren:

[user@system ~] export DISTCC_HOSTS="localhost 192.168.0.10" #localhost is de client host; De 192.168.x.x is de distcc server
[user@system ~] cd /usr/src/linux
[user@system ~] make CC="distcc gcc" -j4

[bewerken] Als de client de kernel niet compileert...

In dit geval compileren we de kernel als volgt:

[user@system ~] export DISTCC_HOSTS="192.168.0.10"
[user@system ~] cd /usr/src/linux
[user@system ~] make CC="distcc" -j4

[bewerken] Ccache toevoegen

Installeer Ccache:

emerge -av ccache

Stel Ccache in om alle make commando’s met distcc te laten voorafgaan:

[user@system ~] export CCACHE_PREFIX='distcc'

Als de client mee de kernel zou moeten compileren met Ccache

In dit geval kunnen we de kernel op deze wijze compileren:

[user@system ~] export DISTCC_HOSTS="localhost 192.168.0.10" #localhost is de client host; De 192.168.x.x is de distcc server
[user@system ~] cd /usr/src/linux
[user@system ~] make CC="ccache gcc" -j4

Als de client de kernel niet compileert maar toch Ccache gebruikt

In dit geval kunnen we de kernel op deze wijze compileren:

[user@system ~] export DISTCC_HOSTS="192.168.0.10"
[user@system ~] cd /usr/src/linux
[user@system ~] make CC="ccache gcc" -j4

[bewerken] Bronnen

Distcc Home Page
Ccache Home Page
Gentoo Distcc Documentation
Speed up compiling software with distcc
Speeding up recompilation with ccache

Afkomstig van de Nederlandstalige Gentoo Wiki, het vrije Gentoo handboek. "http://nl.gentoo-wiki.com/HOWTO_Compile_Kernel_With_Distcc_and_CCache"
Persoonlijke instellingen
Andere talen