cloudparts

Yocto Project

Tools and metadata for building your own Linux distribution for an embedded device, from source: kernel, toolchain, packages, root filesystem image and SDK, reproducibly and with licence records.

Linux Foundation project
What it is
Build tools
Type
Open source
Made by
Yocto Project (Linux Foundation), with OpenEmbedded
Foundation
The Linux Foundation, joined October 2010. A Linux Foundation project that shares BitBake and OpenEmbedded-Core with the OpenEmbedded community
License
Metadata MIT; BitBake GPL-2.0-only; each recipe’s software under its own licence
Facts checked
28 October 2026

What it is

The Yocto Project is not a Linux distribution but a way to make one. Its build system, the OpenEmbedded build system, is driven by BitBake, a task scheduler that reads metadata and runs fetch, patch, configure, compile, package and image tasks in parallel. The metadata is mostly recipes (.bb files), each saying where a piece of software’s source comes from, which patches to apply, what it depends on and how to build it, and configuration that picks a target MACHINE and a DISTRO policy. Recipes are grouped into layers stacked in a set order: OpenEmbedded-Core for the essentials, a board support package (BSP) layer from the chip or board vendor, distribution and application layers of your own, with .bbappend files adjusting other layers’ recipes without editing them. From one build you get a cross toolchain, a kernel, packages in RPM, DEB or IPK format, a root filesystem image for the board and an SDK for application developers. Poky, defined in the meta-yocto layer, is the reference distribution used for testing and as a starting point; the project says it is not meant to be shipped as a product as it is.

Two features make it practical at scale. The shared state (sstate) cache stores each task’s output under a signature of its inputs, so later builds, on the same machine or from a shared mirror, reuse everything that hasn’t changed; and builds are reproducible, 99.8% for the core-image-minimal image. Every build also records the licence of each package and can emit SPDX SBOMs, which product teams use for compliance and, since 6.0, post-build CVE checks with sbom-cve-check. A new version comes out every six months, and every two years one is a long-term support (LTS) release with four years of support: 5.0 Scarthgap (April 2024, supported to April 2028) and 6.0 Wrynose (April 2026, supported to April 2030, with Linux 6.18 and GCC 15.2). 6.1 Blacksail was tagged on October 20, 2026. The combined poky repository is no longer updated for new releases: since 5.3 you set up a build with bitbake-setup, which fetches the layers you choose, or clone BitBake, OpenEmbedded-Core and meta-yocto separately. Wind River Linux, MontaVista and Siemens’ (formerly Mentor’s) embedded Linux products are built with it.

Why teams pick it

  • Full control of the image: you choose every package, version, compile option and init system, and get a minimal root filesystem for exactly one board
  • Silicon vendors ship BSP layers for it, so new boards usually come with a ready Yocto layer
  • Reproducible, cached builds: sstate reuses unchanged task outputs across machines, and identical inputs give near-identical binaries
  • Compliance built in: licence manifests, source archives and SPDX SBOMs come out of every build, and LTS releases get four years of fixes

Watch out for

  • Steep learning curve: BitBake’s syntax, variable overrides, layer priorities and task dependencies take time to learn, and errors can be hard to trace
  • Heavy first builds: the 6.x quick start asks for at least 140 GB of disk, 32 GB of RAM and 16 cores, and a build from scratch compiles the whole toolchain and distribution
  • You own the distribution: security updates, kernel patches and package upgrades are yours to track and rebuild, unlike a general-purpose distribution
  • Releases outside the LTS line get only six months of support, so products should follow an LTS branch and plan migrations every two to four years

Alternatives

What all build tools have in common →Compare side by side →

How it fits with other technologies

Build and boot an image for an emulated x86-64 machine, from the Yocto 6.0 quick start · bash

git clone https://git.openembedded.org/bitbake ./bitbake
./bitbake/bin/bitbake-setup init --non-interactive \
  poky-master poky-with-sstate distro/poky machine/qemux86-64
source poky-master-poky-distro_poky-machine_qemux86-64/build/init-build-env

bitbake-config-build enable-fragment core/yocto/sstate-mirror-cdn   # reuse prebuilt task outputs
bitbake core-image-sato     # toolchain, kernel, packages and a root filesystem image
runqemu snapshot            # boot it in QEMU without changing the image

# later: add a board's BSP layer and your own layer
bitbake-layers add-layer ../layers/meta-raspberrypi
bitbake-layers create-layer ../layers/meta-mylayer

Supported releases (October 2026)#

Products should track an LTS branch; the others are replaced every six months.

ReleaseReleasedSupported until
6.1 BlacksailOctober 2026April 2027
6.0 Wrynose (LTS)April 2026April 2030
5.0 Scarthgap (LTS)April 2024April 2028
  • 4.0 Kirkstone, the previous LTS, reached end of life with 4.0.33 in February 2026. 6.2 Garburn is planned for April 2027.

See it in a real stack

No architecture uses Yocto Project yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2003–2026

In 2001 Sharp’s Zaurus PDA shipped with embedded Linux, and Chris Larson founded OpenZaurus to replace its software, using the Buildroot build system. In January 2003 Larson, Michael Lauer and Holger Schurig started a more general build system for embedded Linux, OpenEmbedded, by porting hundreds of OpenZaurus packages to it; its task runner, BitBake, was inspired by Gentoo’s Portage. Richard Purdie built Poky as a stabilised branch of OpenEmbedded, with a core set of recipes for a limited set of architectures, at OpenedHand, which Intel bought in 2008.

Embedded Linux developers still faced different build systems and software from one architecture and vendor to the next. In October 2010 the Linux Foundation announced the Yocto Project to give them more consistent software and tools across architectures, built on Poky. It agreed to work with OpenEmbedded on a shared core, OpenEmbedded-Core, maintained together with BitBake. Release 1.0 followed on April 6, 2011, with a steering group of Dell, Intel, Mentor Graphics, OpenEmbedded e.V., Texas Instruments, Timesys and Wind River.

The project settled into two releases a year with LTS versions every two years, and added sstate mirrors, SPDX SBOMs and CVE tooling as compliance became part of shipping a device. In 2025 it stopped updating the combined poky repository for new releases in favour of bitbake-setup.

Why it’s built this way

A build system, not a distribution
Embedded products differ in hardware, size and licensing needs, so the project ships the means to build a tailored distribution, with Poky only as a reference, instead of one image for everyone.
Layers stacked in priority order
Separating BSP, distribution and application metadata lets a vendor’s board support, a company’s policy and a product’s software be maintained by different people and combined, with .bbappend files changing other layers without forking them.
Share the core with OpenEmbedded
Rather than compete with OpenEmbedded, the Yocto Project agreed on a common, tested core metadata set, OE-Core, so both communities maintain one set of essential recipes and one BitBake.
Cache by input signature
Compiling a whole distribution takes hours. Storing each task’s output under a signature of its inputs lets builds reuse results from earlier builds or a shared mirror and rebuild only what changed.

Timeline

  1. 2003

    OpenEmbedded started by Chris Larson, Michael Lauer and Holger Schurig (January)

  2. 2008

    Intel buys OpenedHand, maker of the Poky build system

  3. 2010

    Linux Foundation announces the Yocto Project (October)

  4. 2011

    Yocto Project 1.0 and its steering group (April 6)

  5. 2024

    5.0 Scarthgap LTS released (April)

  6. 2025

    The combined poky repository stops for new releases; bitbake-setup replaces it

  7. 2026

    6.0 Wrynose LTS (April); 6.1 Blacksail tagged (October 20)

Sources13 · facts checked 28 October 2026

Improve this page on GitHub