<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.koansoftware.com/index.php?action=history&amp;feed=atom&amp;title=Yocto_build_on_a_cluster_with_IceCC</id>
	<title>Yocto build on a cluster with IceCC - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.koansoftware.com/index.php?action=history&amp;feed=atom&amp;title=Yocto_build_on_a_cluster_with_IceCC"/>
	<link rel="alternate" type="text/html" href="https://wiki.koansoftware.com/index.php?title=Yocto_build_on_a_cluster_with_IceCC&amp;action=history"/>
	<updated>2026-04-17T18:12:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://wiki.koansoftware.com/index.php?title=Yocto_build_on_a_cluster_with_IceCC&amp;diff=251&amp;oldid=prev</id>
		<title>Koan: Created page with &quot;== Yocto build on a cluster with IceCC ==  This section is copied from https://www.openembedded.org/wiki/Using_IceCC  == IceCC and OE == It is possible to compile on a cluster...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.koansoftware.com/index.php?title=Yocto_build_on_a_cluster_with_IceCC&amp;diff=251&amp;oldid=prev"/>
		<updated>2020-04-08T09:31:15Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Yocto build on a cluster with IceCC ==  This section is copied from https://www.openembedded.org/wiki/Using_IceCC  == IceCC and OE == It is possible to compile on a cluster...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Yocto build on a cluster with IceCC ==&lt;br /&gt;
&lt;br /&gt;
This section is copied from https://www.openembedded.org/wiki/Using_IceCC&lt;br /&gt;
&lt;br /&gt;
== IceCC and OE ==&lt;br /&gt;
It is possible to compile on a cluster of machines with OE, and quite easily so. To do so add the following to your local.conf:&lt;br /&gt;
&lt;br /&gt;
 ICECC_PARALLEL_MAKE = &amp;quot;-j 24&amp;quot;&lt;br /&gt;
 INHERIT += &amp;quot;icecc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
General consensus is that ICECC_PARALLEL_MAKE should be between 2x to 4x the number of cores your CPU has. Too many and your PC will be unusable, too few and you won&amp;#039;t keep the cluster busy.&lt;br /&gt;
&lt;br /&gt;
=== Icecc and sstate interaction ===&lt;br /&gt;
&lt;br /&gt;
Inheriting icecc will change the hashes for all tasks, so you cannot share sstate between builds that have icecc inherited and those that don&amp;#039;t. The recommended solution is add support for icecream to all builds as follows:&lt;br /&gt;
&lt;br /&gt;
 INHERIT += &amp;quot;icecc&amp;quot;&lt;br /&gt;
 ICECC_DISABLED ??= &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now, users that want to use icecream can enable it by setting ICECC_DISABLED = &amp;quot;0&amp;quot;, but everyone can still share sstate.&lt;br /&gt;
&lt;br /&gt;
=== Recipe build failures ===&lt;br /&gt;
&lt;br /&gt;
Many recipes may fail to build under icecream for a variety of reasons. If you find a recipe that does so, you can add it to ICECC_USER_PACKAGE_BL in local.conf.&lt;br /&gt;
&lt;br /&gt;
We try to keep the system blacklist (ICECC_SYSTEM_PACKAGE_BL) up to date, but packages sometimes get missed (or aren&amp;#039;t part of oe-core and don&amp;#039;t get tested at all).&lt;br /&gt;
&lt;br /&gt;
Note that any recipe that disables PARALLEL_MAKE by setting it to &amp;quot;&amp;quot; will automatically have icecream disabled.&lt;br /&gt;
&lt;br /&gt;
=== Dedicating a scheduler ===&lt;br /&gt;
By default, icecream will pseudo-randomly assign one of the compile nodes to be the scheduler (the node that decides where all the compiles get distributed). In some cases, it may be desirable&lt;br /&gt;
to dedicate a specific computer to be the scheduler. You may want to do this if:&lt;br /&gt;
* The cluster is large. The CPU time required to do scheduling can be noticable&lt;br /&gt;
* The cluster has a lot of mobile devices (e.g. laptops). If one of these happens to be assigned to be the scheduler and then goes offline, it can take an while to recover.&lt;br /&gt;
&lt;br /&gt;
=== Network Bandwidth Considerations ===&lt;br /&gt;
Icecream performance is very dependent on the speed of the network between the cluster nodes. As a rule of thumb, 1 Gpbs or better is ideal, and with anything less than 100 Mbps, it&amp;#039;s probably not worth using at all. Wifi is dubiously useful at any speed.&lt;br /&gt;
&lt;br /&gt;
=== Credits ===&lt;br /&gt;
Icecream support was originally implement by zecke, improved by Ifaistos, and most recently by Joshua Watt (JPEW)&lt;br /&gt;
&lt;br /&gt;
=== Utilities ===&lt;br /&gt;
There are several useful utilities when dealing with icecream:&lt;br /&gt;
* [https://github.com/icecc/icemon icemon] - A gui tool for monitoring the cluster&lt;br /&gt;
* [https://github.com/JPEWdev/icecream-sundae icecream-sundae] - A command line tool for monitoring the cluster&lt;br /&gt;
&lt;br /&gt;
[[Category:User]]&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
=== More Information ===&lt;br /&gt;
* [https://www.youtube.com/watch?v=VpK27pI64jQ&amp;amp;list=PLbzoR-pLrL6ol7Cf1g_4rsCda23OiLh8d&amp;amp;index=26 Sweeten Your Yocto Build Times with Icecream] - Joshua Watt, Embedded Linux Conference North America 2019 ([https://drive.google.com/file/d/1SKI9P86fx-IHLoststTn9kh22xaln6AA/view?usp=sharing slides])&lt;/div&gt;</summary>
		<author><name>Koan</name></author>
	</entry>
</feed>