Skip to main content
OPERATING SYSTEMS · EMBEDDED LINUX

What Is the Yocto Project?

The Yocto Project is an open-source set of tools for building a custom Linux operating system for one embedded device. Instead of installing a ready-made distribution, you describe the hardware, software and settings you need in layers and recipes, and the BitBake build engine produces a small, repeatable image for that device.

01

How the Yocto Project works

The Yocto Project is an open-source collaboration, hosted by the Linux Foundation since 2010, that provides the tools, metadata and processes to build a custom Linux operating system for an embedded device. It is not a Linux distribution you download and install. It is the kit you use to make your own.

With a general-purpose distribution such as Ubuntu or Debian, you start with a large prebuilt system and remove what you do not need. With Yocto, you start from nothing and describe what the device should contain: the target processor and board, the kernel and its configuration, the libraries, the services and your application. The build system then fetches the source code for every component, cross-compiles it for the target and assembles a bootable image.

The result is an operating system that holds only what the product needs, built the same way every time. That is why Yocto is common on industrial controllers, gateways, medical devices, vehicle systems and edge AI computers that ship in volume and stay in service for years.

02

The parts of a Yocto build

Yocto has its own vocabulary. Most of it describes how the build instructions are organised, so that hardware support, the distribution policy and your own software stay in separate, reusable pieces.

  • //
    BitBake. The task engine at the centre of every build. It reads the metadata, works out the dependencies and runs the fetch, compile and packaging steps in parallel.
  • //
    OpenEmbedded-Core (OE-Core). The shared base of recipes and classes for the core of a Linux system, maintained jointly with the OpenEmbedded community.
  • //
    Recipes and layers. A recipe (a .bb file) says how to fetch, configure and build one piece of software. Recipes are grouped into layers, usually named meta-something, and a build stacks the layers it needs.
  • //
    BSP layers and machine configuration. Board support layers from the silicon or board vendor add the bootloader, kernel, drivers and device tree for specific hardware, such as meta-intel for x86 or meta-tegra for NVIDIA Jetson.
  • //
    Poky. The Yocto Project’s reference distribution: BitBake, OE-Core and example settings bundled as a starting point, rather than a product in its own right.
  • //
    Outputs. A bootable image, a matching SDK for application developers, package feeds and, in current releases, a software bill of materials in SPDX format.
FAQ · 01
What is a board support package?
A board support package (BSP) is the low-level software that lets an operating system run on a particular board: the bootloader, kernel, device drivers and hardware description such as the device tree. In a Yocto build, the BSP arrives as one or more vendor layers.
Read the full FAQ —
03

How Yocto compares with Ubuntu and Buildroot

Yocto is one of several ways to put Linux on an embedded device. The right choice depends on how many devices you will ship, how long they must be supported and how much in-house Linux experience you have.

Approach What you get Image size and control Updates in the field Typical fit
Yocto Project A distribution built from source for one device Small; every package chosen Whole-image updates, often A/B Products shipped in volume with long lifecycles
Buildroot A simple root filesystem built from source Very small; simple configuration Whole-image updates; no package manager Small, single-purpose devices
Ubuntu or Debian A prebuilt binary distribution Large; trimmed by removing packages Package updates with apt Prototypes, low volumes, fast development
Ubuntu Core A prebuilt, transactional distribution Medium; apps packaged as snaps Transactional updates with rollback Connected devices needing managed updates

Ubuntu is the quickest route to a working system, which is why most development kits ship with it. The cost is variability: packages change over time, so two devices updated on different days may not run identical software. Yocto takes longer to set up, but every device in a fleet runs the same validated image, and that image can be rebuilt exactly years later. Buildroot is simpler than Yocto and quick to learn, but it suits smaller, fixed devices better than a range of products sharing common layers.

04

Yocto on NVIDIA Jetson, x86 and Arm boards

Most processor vendors now publish Yocto support for their silicon. Intel maintains meta-intel for x86 boards, and Intel’s real-time and time-sensitive networking features are often delivered as Yocto layers on industrial PCs. NXP builds its official Linux releases with Yocto, so most NXP i.MX 8M boards list a Yocto BSP alongside Android or Debian.

On NVIDIA Jetson, the community meta-tegra layer from the OpenEmbedded for Tegra (OE4T) project has supported Jetson modules for years. With JetPack 7.2, NVIDIA made Yocto a supported operating system path for Jetson AGX Orin, Orin NX and Jetson Thor, alongside its Ubuntu-based Jetson Linux. Our article on JetPack 7.2 and Yocto on Jetson Orin covers what that changes for deployed fleets. Rugged Jetson computers such as the JCO-1000-ORN series already run JetPack 7.2, so the same hardware can carry either image.

Whatever the processor, a custom carrier board or added interface still needs its drivers and device tree in a BSP layer, so ask the board maker which Yocto release its layers support before you commit.

FAQ · 02
What is Linux for Tegra (L4T)?
Linux for Tegra, now called Jetson Linux, is the NVIDIA operating system for Jetson modules: an Ubuntu-based Linux plus the board support package that makes it run on Jetson hardware. Yocto builds for Jetson reuse its kernel, firmware and drivers through the meta-tegra layer.
Read the full FAQ —
05

Releases, security and the Cyber Resilience Act

Yocto publishes a new release every six months, in April and October, and names each one. Every two years an April release becomes a long-term support (LTS) release, maintained with security and bug fixes for typically four years. Scarthgap (5.0, April 2024) and Wrynose (6.0, April 2026) are the current LTS lines, and most products should be built on one of them.

Security is now a main reason teams choose Yocto. Because every component is built from known source, a build can produce a licence manifest, a software bill of materials (SBOM) in SPDX format and a report of known vulnerabilities (CVEs) for the exact image you ship. In the EU, the Cyber Resilience Act requires manufacturers of most connected products to handle vulnerabilities and document their software components, and that applies to UK and US companies selling into the EU. In the US, federal software buyers increasingly ask suppliers for an SBOM. Yocto does not make a product compliant on its own, but it makes that evidence far easier to produce.

06

Quick answers on Yocto

The Yocto Project: common questions

What is Yocto used for?

Building custom embedded Linux images. It is used for devices that ship in volume and must run the same validated software for years, from industrial controllers and gateways to medical, automotive and edge AI systems.

Is Yocto an operating system?

No. Yocto is a set of build tools and metadata. The operating system is what you build with it, often described as Yocto Linux, and every product’s image is different.

Why use Yocto instead of Ubuntu?

For control and repeatability. Yocto gives a smaller image, an exact record of every component and identical software on every device. Ubuntu is faster to start with and has a larger choice of ready-built packages.

Is Yocto Linux real-time?

It can be. Yocto can build a kernel with the PREEMPT_RT patches, which have been part of the mainline Linux kernel since version 6.12. Hard real-time control usually still runs on a separate microcontroller or real-time core.

How long does a Yocto build take?

Hours the first time, minutes afterwards. A first full build typically takes one or more hours and tens of gigabytes of disk space. The shared-state cache then reuses unchanged results, so later builds are much quicker.

We supply our Jetson and industrial computers configured and imaged as standard. Tell us whether your fleet runs Ubuntu or Yocto, and we will match the hardware to a board support package that suits your release.