This section contains the high-level procedure you can
follow to create a BSP.
Although not required for BSP creation, the
meta-intel
repository, which
contains many BSPs supported by the Yocto Project,
is part of the example.
For an example that shows how to create a new
layer using the tools, see the
"Creating a New BSP Layer Using the bitbake-layers
Script"
section.
The following illustration and list summarize the BSP creation general workflow.
![]() |
Set up Your Host Development System to Support Development Using the Yocto Project: See the "Preparing the Build Host" section in the Yocto Project Development Tasks Manual for options on how to get a system ready to use the Yocto Project.
Establish the
meta-intel
Repository on Your System:
Having local copies of these supported BSP layers
on your system gives you access to layers you
might be able to leverage when creating your BSP.
For information on how to get these files, see the
"Preparing Your Build Host to Work with BSP Layers"
section.
Create Your Own BSP Layer Using the
bitbake-layers
Script:
Layers are ideal for isolating and storing work
for a given piece of hardware.
A layer is really just a location or area in which you
place the recipes and configurations for your BSP.
In fact, a BSP is, in itself, a special type of layer.
The simplest way to create a new BSP layer that is
compliant with the Yocto Project is to use the
bitbake-layers
script.
For information about that script, see the
"Creating a New BSP Layer Using the bitbake-layers
Script"
section.
Another example that illustrates a layer is an application. Suppose you are creating an application that has library or other dependencies in order for it to compile and run. The layer, in this case, would be where all the recipes that define those dependencies are kept. The key point for a layer is that it is an isolated area that contains all the relevant information for the project that the OpenEmbedded build system knows about. For more information on layers, see the "The Yocto Project Layer Model" section in the Yocto Project Overview and Concepts Manual. You can also reference the "Understanding and Creating Layers" section in the Yocto Project Development Tasks Manual. For more information on BSP layers, see the "BSP Layers" section.
Five hardware reference BSPs exist
that are part of the Yocto Project release
and are located in the
poky/meta-yocto-bsp
BSP
layer:
Texas Instruments Beaglebone
(beaglebone-yocto
)
Freescale MPC8315E-RDB
(mpc8315e-rdb
)
Ubiquiti Networks EdgeRouter Lite
(edgerouter
)
Two general IA platforms
(genericx86
and
genericx86-64
)
Three core Intel BSPs exist as part of
the Yocto Project release in the
meta-intel
layer:
intel-core2-32
,
which is a BSP optimized for the Core2
family of CPUs as well as all CPUs
prior to the Silvermont core.
intel-corei7-64
,
which is a BSP optimized for Nehalem
and later Core and Xeon CPUs as well
as Silvermont and later Atom CPUs,
such as the Baytrail SoCs.
intel-quark
,
which is a BSP optimized for the
Intel Galileo gen1 & gen2
development boards.
When you set up a layer for a new BSP,
you should follow a standard layout.
This layout is described in the
"Example Filesystem Layout"
section.
In the standard layout, notice the suggested
structure for recipes and configuration
information.
You can see the standard layout for a BSP
by examining any supported BSP found in the
meta-intel
layer inside
the Source Directory.
Make Configuration Changes to Your New
BSP Layer:
The standard BSP layer structure organizes the
files you need to edit in
conf
and several
recipes-*
directories
within the BSP layer.
Configuration changes identify where your new
layer is on the local system and identifies the
kernel you are going to use.
When you run the
bitbake-layers
script,
you are able to interactively configure many
things for the BSP (e.g. keyboard, touchscreen,
and so forth).
Make Recipe Changes to Your New BSP
Layer:
Recipe changes include altering recipes
(*.bb
files), removing
recipes you do not use, and adding new recipes
or append files (.bbappend
)
that support your hardware.
Prepare for the Build:
Once you have made all the changes to your BSP
layer, there remains a few things you need to
do for the OpenEmbedded build system in order
for it to create your image.
You need to get the build environment ready by
sourcing an environment setup script
(i.e. oe-init-build-env
)
and you need to be sure two key configuration
files are configured appropriately: the
conf/local.conf
and the
conf/bblayers.conf
file.
You must make the OpenEmbedded build system aware
of your new layer.
See the
"Enabling Your Layer"
section in the Yocto Project Development Tasks Manual
for information on how to let the build system
know about your new layer.
Build the Image: The OpenEmbedded build system uses the BitBake tool to build images based on the type of image you want to create. You can find more information about BitBake in the BitBake User Manual.
The build process supports several types of images to satisfy different needs. See the "Images" chapter in the Yocto Project Reference Manual for information on supported images.