[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