Intel Atom® SoC E3900 Family (Formerly known as Apollo Lake-I), Intel Celeron® Processor N3350, Intel Pentium® Processor N4200

Board Info

Leaf Hill
Processor Family: Intel x86-64
Organization: Intel Corporation


Built with: Yocto Project 2.0.3 – Jethro
Compatible with: Jethro 2.0.x
Release Date: 03/10/2017
MD5 sum: 1a54b5e0d76a016ce844449108962473

Clone with Git (preferred)

git:// -b jethro

Release Notes

Table of Contents

I. Steps for building BSP layer for Leaf Hill (Apollo Lake-I) BSP
II. Installing Image to Media
III. Best Known Configuration
IV. Features Supported in this Release

I. Steps for building BSP layer for Leaf Hill (Apollo Lake-I) BSP

Getting source code
1. Please download Poky build system to your development machine.
$ git clone -b jethro git://

2. Download the corresponding BSP tarball from ‘Board Support
Package (BSP) Downloads’ page of Yocto Project website.
Extract the downloaded BSP tarball.
$ tar -xvjf leafhill-4.0-jethro-2.0.tar.bz2

3. Rename the folder of extracted BSP tarball to meta-intel.
Note: Ignore this step if the extracted folder has the same name.
$ mv leafhill-4.0-jethro-2.0 meta-intel

4. Create a build folder at the same level of “poky” directory.
$ mkdir build
$ cd build

5. Assuming that you have downloaded the BSP tarball and extracted the content at top level of your
development build tree, you need to prepare the build environment using the “source” command.
$ source ../poky/oe-init-build-env .

6. You can build an image for Leaf Hill by adding the location of meta-intel layer to
bblayers.conf, for example:
/path/poky/meta \
/path/poky/meta-yocto \
/path/poky/meta-yocto-bsp \
/path/meta-intel \

7. To build a 64-bit image, add “intel-corei7-64” MACHINE and “leafhill” BSP_SUBTYPE to local.conf:
MACHINE = “intel-corei7-64″

Suggested settings for better graphic support
meta-intel contains support for the i915 graphics driver. However, they are dependent on gstreamer
plugins and ffmpeg plugins. These gstreamer plugins require license flags in order to be included
in the build. Add “commercial” in the LICENSE_FLAGS_WHITELIST in local.conf. For example:

To enable full hardware acceleration for video decode support, GStreamer 1.x base
and GStreamer-VAAPI packages need to be included as part of the Yocto Project build output image.
This can be done by adding the meta-intel as part of the bblayers.conf (as mentioned above).
The default GStreamer packages do not come with full codecs support.
Some additional plugins need to be added manually in local.conf to support certain playback.
For example:
IMAGE_INSTALL_append =+ ” gstreamer1.0-plugins-ugly gstreamer1.0-libav”

Graphics features with Leaf Hill is best compiled with Intel customized graphics user space Yocto Project recipes.
Please refer to for customizing your build.

To enable multilib support
For those who required to execute a 64-bit standalone application on Yocto,
multilib environment need to be turned on in build/conf/local.conf as the configuration below.
require conf/multilib.conf
DEFAULTTUNE = “corei7-64”
MULTILIBS = “multilib:lib32”
DEFAULTTUNE_virtclass-multilib-lib32 = “corei7-32″

To enable 32-bit libraries into final bootable image, you need to add the following settings in
IMAGE_INSTALL_append = ” lib32-glib-2.0 lib32-gcc”

Enable FreeGLUT
This BSP supports FreeGLUT library and it is not enabled by default. To enable FreeGLUT library support,
add the following line in build/conf/local.conf.
IMAGE_INSTALL_append = ” freeglut”
Note: Additional meta-openembedded layer is required. Please clone this layer by using command:
git clone -b jethro
This layer needs to be added to layer.conf, for example:
/path/poky/meta \
/path/poky/meta-yocto \
/path/poky/meta-yocto-bsp \
/path/meta-intel \
/path/meta-openembedded \

Complete customization and start building BSP

Once the configurations are added, build an image by invoking “bitbake” command.
$ bitbake core-image-sato

For building an image with the development tools, type the following command.
$ bitbake core-image-sato-sdk

A bootable image will be generated in build/tmp/deploy/images/intel-corei7-64/ once the compilation
successful. Expected file name that will be generated is:

II. Installing image to USB flash drive

At the end of a successful build, you should have a live image that can be used to directly boot
Yocto off of a USB flash drive. Under Linux host machine, insert a USB flash drive. Assuming the
USB flash drive takes device /dev/sdf, use dd to copy the live image to it. For example:
$ dd if=core-image-sato-intel-corei7-64.hddimg of=/dev/sdf
$ sync
$ eject /dev/sdf

This should give you a bootable USB flash device. Insert the device into a bootable USB socket on
the platform, and power on. This should result in a system booted to the Sato graphical desktop.
The default root password is empty on the Poky reference distribution images.

Note: All prebuilt binaries utilize a time-limited kernel. Yocto Project users should build their
own kernel image in their end product.

III. Best Known Configuration
Supported platform: Leaf Hill CRB Fab C
SoC: Intel Atom® SoC E3900 B1/B2/D0 Step
BIOS/Firmware Version: APLI_IFWI_X64_R_168_10

IV. Features Supported in this Release
• Linux kernel version 4.1.27
• Support integrated graphics (i915)
• Support I/O devices
• Storage: SATA, SD card, eMMC, USB 2/3 host, USB device, SPI NOR Flash
• Audio: HD Audio
• Intel® Integrated Sensor Solution
• Onboard ethernet: Intel® I210 Gigabit Ethernet
• Single display (HDMI or DP)
• Support Media Players (GStreamer-VAAPI)
• Power Management: S3, S4, S5, Intel P-state driver, S0ix
• USB dual role HW detection
• Full duplex LPSS HS-UART