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.

Pros
  • Flexible
  • Strong vendor support
  • Reproducible builds
  • Scalable
  • Compliance
Cons
  • Flexible
  • Steep learning curve
  • Length of first build time
  • Can be hard to debug

The Reality

Yocto is not hard only because it is complex. It is hard because it is unforgiving of poor setup.

What is What?

Simple overview of project components
Simple overview of project components.

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 distribution
    • meta-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

Quick quiz: introduction

A few checks on the core Yocto concepts from this lesson.

Question 1 What is BitBake in a Yocto-based workflow?
Question 2 What does OpenEmbedded Core provide?
Question 3 Why should `poky` usually not be your final production distro?