Lesson
Introduction to the Yocto Project
An Introduction to the Yocto Project - What, Why and Where
The Yocto Project, powered by OpenEmbedded, is a framework for building a custom Linux distribution around your actual product requirements:
- your hardware
- your kernel configuration
- the packages you need
- only the packages you need
Why Create a Yocto Project?
The main reason is that it has become the industry standard for creating embedded Linux distributions. Most hardware vendors provide a board support package layer for their hardware.
- Flexible
- Strong vendor support
- Reproducible builds
- Scalable
- Compliance
- Flexible
- Steep learning curve
- Length of first build time
- Can be hard to debug
Compliance
There are many regulated industries, such as Automotive or Medical, where detailed records of the system need to be kept.
A Yocto project eases some of the burden by including a detailed Software Bill of Materials (SBOM) by default.
Also, because just about all of the packages are built from source, it is therefore possible to trace the full build of a system all the way through from the source location to the final product.
Reproducible Builds
If a problem is found with a product many years after release, as long as there is a good git history and the sources have been cached, it is possible to recreate the exact build that was used. This means that bugs can be patched and fixes released more easily.
The Reality of a Yocto Project
Yocto is not hard only because it is complex. It is hard because it is unforgiving of poor setup.
What is What?

BitBake
This is the build engine itself. It contains the main bitbake script along
with the supporting tools used to execute builds.
OpenEmbedded Core
This provides the core metadata and recipes needed to start a project.
While it is possible to build a project with just these two components, it will not be very useful. Additional layers will be required to add machine definitions or additional software.
What about Poky?
Before 2025, this was always a source of confusion, because Poky referred both to the core setup used to get started and to a reference distribution.
In 2025, this was split into two separate repositories:
- bitbake
- the build tools and setup
- meta-yocto, which contains two layers
meta-poky- the Poky reference distributionmeta-yocto-bsp- configuration for reference hardware- generic x86
- generic Arm
- BeagleBone Black
Hopefully, this split will reduce the confusion and make future maintenance easier.
What about OpenEmbedded?
A Yocto Project is the name of the Linux Foundation Collaborative Project. It makes use of the OpenEmbedded build framework to create Linux distributions, mainly for embedded devices.
In short:
The Yocto Project uses OpenEmbedded to get the job done.
Summary
The Yocto Project gives you a structured way to build a Linux distribution that is tailored to your hardware, software, and long-term maintenance needs.
The main ideas from this lesson are:
- the Yocto Project is a framework for creating custom Linux distributions
- BitBake is the build engine that executes the build tasks
- OpenEmbedded Core provides the base metadata and recipes
- Poky is a reference starting point and should not be the final production distro
- With a modern setup, you do not even need Poky
- success with Yocto depends heavily on good structure and discipline
Check your understanding
Quick quiz: introduction
A few checks on the core Yocto concepts from this lesson.