[yocto] Procedure to setup icecc for performing a distributed build
Elvis Dowson
elvis.dowson at gmail.com
Wed Aug 15 13:30:15 PDT 2012
Hi,
I followed these steps to setup and configure icecc and yocto, for performing a distributed build between two Ubuntu 12.04 64-bit machines, with one machine configured as the scheduler and daemon, and the other with only the icecc daemon.
I run a bitbake core-image-minimal, but get no tasks running on the second machine. Processor and CPU utilization is nearly zero, and both machines iceccd.log and icecc_scheduler.log are zero bytes.
Nothing happens when I run the yocto build, and no compilation tasks get distributed to the second machine in the build cluster. I am able to ping them both, however.
Step 01.00: Install required packages for performing a distributed build.
Step 01.01: Install icecc on all the machines.
$ sudo apt-get install icecc
On the scheduler machine, type the following commands:
$ sudo gedit /etc/default/icecc
# Defaults for icecc initscript
# sourced by /etc/init.d/icecc
START_ICECC="true"
START_ICECC_SCHEDULER="true"
Configure the build network name:
$ sudo /etc/init.d/icecc stop
$ sudo gedit /etc/init.d/icecc.conf
#
# Identification for the network the scheduler and daemon run on.
# You can have several distinct icecc networks in the same LAN
# for whatever reason.
#
# ICECC_NETNAME=""
ICECC_NETNAME="YoctoBuildNetwork"
#
# If the daemon can't find the scheduler by broadcast (e.g. because
# of a firewall) you can specify it.
#
# ICECC_SCHEDULER_HOST=""
ICECC_SCHEDULER_HOST="eos"
Start the scheduler with:
$ sudo /etc/init.d/icecc start
Make sure the service starts at boot time:
$ sudo update-rc.d icecc defaults
Step 02.00: Configure yocto for distributed compilation.
Step 02.01: Modify local.conf
#
# Parallelism Options
#
# These two options control how much parallelism BitBake should use. The first
# option determines how many tasks bitbake should run in parallel:
#
BB_NUMBER_THREADS = "8"
#
# The second option controls how many processes make should run in parallel when
# running compile tasks:
#
PARALLEL_MAKE = "-j 14"
# Setup yocto to use icecc for distributed compilation.
INHERIT += "icecc"
ICECC_PATH = "/usr/bin/icecc"
ICECC_ENV_EXEC = "/tool/yocto/poky/build/tmp/work/x86_64-linux/icecc-create-env-native-0.1-r2/icecc-create-env"
ICECC_USER_CLASS_BL = " native"
Copy the icecc-create-env script to the build output staging folder, by running the icecc-create-env-native.bb recipe.
$ cd /tool/yocto/poky;source oe-init-build-env build
$ bitbake icecc-create-env-native
The icecc-create-env script will automatically be copied to the build output staging folder.
Step 02.02: Start a bit bake build.
$ bitbake core-image-minimal
Best regards,
Elvis Dowson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20120816/b31cba1d/attachment.html>
More information about the yocto
mailing list