[yocto] Procedure to setup icecc for performing a distributed build

Paul Eggleton paul.eggleton at linux.intel.com
Thu Sep 6 03:17:53 PDT 2012


On Thursday 16 August 2012 00:30:15 Elvis Dowson wrote:
> 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-r
> 2/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
> 

Elvis, did you have any further luck with this?

Otherwise, Dmitry, any suggestions? I'm assuming you made use of icecc.bbclass 
since you made some changes to it a while ago...

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list