Yocto on Jetson Platforms#

Beginning with JetPack 7.2, NVIDIA supports Yocto on Jetson platforms. This support provides a path to build custom, reproducible Linux images for Jetson while continuing to use Jetson Linux and JetPack components. The work is aligned with the OpenEmbedded for Tegra (OE4T) project, and NVIDIA is contributing back to that community.

What Is Yocto?#

The Yocto Project is an open source build framework for creating custom Linux-based systems. Yocto is not a Linux distribution by itself. Instead, it provides the tools, metadata, and workflow used to build a distribution that is tailored for a specific product, hardware platform, and update model.

A Yocto build starts from metadata and produces deployable artifacts such as a root file system, kernel image, bootloader content, packages, and software development kits. This approach differs from starting with a prebuilt desktop or server image and modifying it after installation. With Yocto, the intended system image is described up front and rebuilt repeatedly.

Basic Yocto Concepts#

  • BitBake is the build engine. It reads metadata, resolves dependencies, and runs build tasks.

  • Recipes describe how to fetch, configure, build, package, and install software components.

  • Layers group related recipes, configuration, classes, and board support metadata so that they can be shared or customized independently.

  • Machine configuration describes hardware-specific settings such as the target SoC, boot flow, kernel choices, and image output requirements.

  • Image recipes define what goes into the final target image, including packages, services, and product-specific configuration.

  • A distribution configuration captures policy decisions such as package format, init system, security settings, and update strategy.

Why Use Yocto on Jetson?#

JetPack provides a complete, NVIDIA-validated software stack for Jetson, including Jetson Linux, accelerated libraries, tools, and samples. Many developers use the standard JetPack flow directly. Yocto is intended for teams that need tighter control over the operating system image that ships in a product.

A Yocto-based Jetson image can be minimized to the packages a product requires, integrated into continuous integration, reproduced from source and metadata, and customized for production needs such as Secure Boot, over-the-air updates, package feeds, and long-term maintenance.

Jetson Yocto Model#

Yocto support for Jetson builds on the Jetson Linux BSP and the OpenEmbedded ecosystem. At a high level, the Yocto layer stack brings together upstream Yocto and OpenEmbedded layers, Jetson-specific BSP metadata, NVIDIA user-space components, and product or customer layers.

OE4T has provided community support for building OpenEmbedded and Yocto images for NVIDIA Tegra and Jetson platforms. With JetPack 7.2, NVIDIA is moving from a community-only model to an officially supported NVIDIA path while continuing to work in the open with OE4T where changes belong upstream.

Layer

Role in a Jetson Yocto Build

Product layer

Defines image recipes, applications, services, and product policy.

meta-tegra-community

Optional community and partner extensions, sample images, and board-specific extras.

meta-tegra

Provides Jetson BSP metadata: machine configuration, kernel and boot-flow integration, NVIDIA user-space components, and flashing support.

meta-openembedded

Provides common middleware, libraries, networking, Python, and other reusable packages.

Poky, OE-Core, and BitBake

Provides the build foundation: BitBake engine, core metadata, toolchain, base system, and package workflow.

What NVIDIA Provides#

  • A documented and validated path for building Yocto images that include Jetson Linux and JetPack components.

  • Jetson-focused metadata, recipes, and configuration aligned with the OE4T layer model.

  • Guidance for selecting supported machines, building images, flashing Jetson devices, and customizing images for product use.

  • A contribution model in which appropriate fixes and enablement are contributed back to OE4T rather than maintained only in a private downstream fork.

Typical Development Flow#

  1. Prepare a supported Linux build host and install the required host packages.

  2. Fetch the Yocto layer sources, including the Jetson/OE4T layers for the target JetPack release.

  3. Select the target machine, distribution, and image configuration for the Jetson module.

  4. Build the image with BitBake and review the generated deployment artifacts.

  5. Flash the resulting image to the Jetson device and validate boot, drivers, accelerators, and product services.

  6. Add product-specific layers or recipes and rebuild the image as part of the development and release process.

Step

Action

Purpose

1

Prepare host

Install Yocto build dependencies on a supported Linux host.

2

Fetch layers

Get Poky/OE-Core, meta-openembedded, meta-tegra, and any product layers.

3

Configure target

Select the machine, distro, local configuration, and image recipe.

4

Build image

Run BitBake to create packages, root file system, kernel, and deploy artifacts.

5

Flash Jetson

Use generated artifacts and the supported flashing workflow for the target module or developer kit.

6

Validate and customize

Boot, test accelerators and services, then add product-specific recipes.

Where to Go Next#

Use the OE4T GitHub repositories as the next stop for detailed documentation, reference image recipes, and current build and flashing instructions. The OE4T repositories provide the Jetson/Tegra layer sources, reference and demonstration distro material, community-maintained extensions, and examples that complement the Jetson Linux Developer Guide.