Yocto Support
The NXP i.MX95 Technical Guide documentation from RidgeRun is presently being developed. |
Information in this section is based on the Toradex Embedded Linux documentation and the Yocto Project documentation.
Yocto Project Overview
The Yocto Project is an open-source collaboration that provides tools, templates, and methods for building custom Linux-based systems for embedded devices.
Yocto itself is not a Linux distribution. Instead, it provides a framework for creating custom embedded Linux distributions tailored for specific hardware platforms.
The Yocto build system is based on the OpenEmbedded build framework and uses BitBake as the build engine. Together, these tools allow developers to generate complete Linux images from source code, including the Linux kernel, bootloader, system libraries, and user-space applications.
Yocto Ecosystem for Verdin i.MX95
The Verdin i.MX95 platform support is built using several Yocto layers maintained by different organizations.
The main contributors are:
- The Yocto Project community, which maintains the OpenEmbedded core infrastructure and build tools.
- NXP, which provides support for the i.MX processor family.
- Toradex, which provides board support packages (BSP) and integration layers for their System on Modules.
In Yocto, software components are organized into layers. Each layer contains metadata and recipes that define how software is fetched, configured, compiled, and packaged into the final Linux image.
Core Yocto Layers
The base layers of the Yocto Project provide the core build infrastructure.
poky
Poky is the reference distribution of the Yocto Project. It includes:
- The OpenEmbedded build system
- BitBake, the task execution engine
- Core metadata used to generate Linux distributions
Poky provides a stable starting point for building embedded Linux systems.
meta-openembedded
meta-openembedded is a collection of community-maintained layers that provide additional packages, libraries, and development tools commonly used in embedded Linux systems.
These layers extend the functionality provided by the Yocto core layers.
NXP i.MX BSP Layers
NXP provides Yocto layers that enable support for i.MX processors.
meta-freescale
The meta-freescale layer provides hardware support and configurations for NXP i.MX processors. It includes:
- Kernel recipes
- Hardware support packages
- Device tree support
- Processor-specific configuration
meta-freescale-3rdparty
The meta-freescale-3rdparty layer adds support for third-party hardware platforms based on NXP i.MX processors.
meta-freescale-distro
This layer provides example distributions and image recipes designed for the development and evaluation of i.MX platforms.
Toradex BSP Layers
Toradex provides additional Yocto layers that integrate their System-on-Modules with the Yocto build system.
meta-toradex-bsp-common
This layer contains common board support configurations shared across Toradex modules.
It includes:
- Common kernel configuration
- Shared device tree components
- Common hardware support code
meta-toradex-nxp
This layer provides hardware support for Toradex modules based on NXP processors, including the Verdin i.MX95.
It contains:
- Machine configuration files
- Kernel configuration
- Bootloader integration
- Device tree support
- Hardware-specific drivers
meta-toradex-distro
This layer provides Toradex Linux distributions and reference images built on top of the Toradex BSP layers.
Toradex Manifest
Toradex provides a repo manifest called toradex-manifest which defines the set of Yocto layers required to build Toradex Linux distributions.
The manifest automatically downloads and configures all required repositories for building images using the OpenEmbedded build system.
This simplifies setting up the Yocto development environment for Toradex hardware.
Reference Images
Toradex provides two reference images that can be built using the Yocto build system. These images are intended for development, evaluation, and as starting points for custom Linux distributions.
Reference Minimal Image
A minimal Linux system that boots into a command-line interface and includes only essential services and utilities. The name used with bitbake is tdx-reference-minimal-image
Reference Multimedia Image
A feature-rich image that includes graphical support, multimedia frameworks, and development tools used to evaluate hardware acceleration capabilities. The name used with bitbake is tdx-reference-multimedia-image.
Torizon OS
In addition to the reference images, Toradex also provides Torizon OS, a Linux distribution built on top of the same Yocto BSP layers.
Torizon OS includes:
- Container support for application deployment
- OTA update capabilities
- Integration with the Torizon development ecosystem
Development Workflow
Using Yocto for the Verdin i.MX95 typically involves the following steps:
- Setting up the host build environment.
- Downloading the required Yocto layers using the Toradex repo manifest.
- Configuring the build system for the target Verdin i.MX95 module.
- Building a Linux image using BitBake.
- Deploying the generated image to the target device.
The following sections describe how to set up the Yocto build environment and generate images for the Verdin i.MX95 platform.