The previous section described the user configurations that define BitBake's global behavior. This section takes a closer look at the layers the build system uses to further control the build. These layers provide Metadata for the software, machine, and policies.
In general, three types of layer input exists. You can see them below the "User Configuration" box in the general workflow figure:
Metadata (.bb
+ Patches):
Software layers containing user-supplied recipe files,
patches, and append files.
A good example of a software layer might be the
meta-qt5
layer from the
OpenEmbedded Layer Index.
This layer is for version 5.0 of the popular
Qt
cross-platform application development framework for
desktop, embedded and mobile.
Machine BSP Configuration:
Board Support Package (BSP) layers (i.e. "BSP Layer"
in the following figure) providing machine-specific
configurations.
This type of information is specific to a particular
target architecture.
A good example of a BSP layer from the
Poky Reference Distribution
is the
meta-yocto-bsp
layer.
Policy Configuration:
Distribution Layers (i.e. "Distro Layer" in the
following figure) providing top-level or general
policies for the images or SDKs being built for a
particular distribution.
For example, in the Poky Reference Distribution the
distro layer is the
meta-poky
layer.
Within the distro layer is a
conf/distro
directory that
contains distro configuration files (e.g.
poky.conf
that contain many policy configurations for the
Poky distribution.
The following figure shows an expanded representation of these three layers from the general workflow figure:
![]() |
In general, all layers have a similar structure.
They all contain a licensing file
(e.g. COPYING.MIT
) if the layer is to be
distributed, a README
file as good
practice and especially if the layer is to be distributed, a
configuration directory, and recipe directories.
You can learn about the general structure for layers used with
the Yocto Project in the
"Creating Your Own Layer"
section in the Yocto Project Development Tasks Manual.
For a general discussion on layers and the many layers from
which you can draw, see the
"Layers" and
"The Yocto Project Layer Model"
sections both earlier in this manual.
If you explored the previous links, you discovered some areas where many layers that work with the Yocto Project exist. The Source Repositories also shows layers categorized under "Yocto Metadata Layers."
BitBake uses the conf/bblayers.conf
file,
which is part of the user configuration, to find what layers it
should be using as part of the build.