Search by Tags

Yocto Project

 

Article updated at 23 Jul 2020
Compare with Revision




Subscribe for this article updates

Introduction

"The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded and IOT products, regardless of the hardware architecture." (quoted from: About the Yocto Project).

OpenEmbedded is a build framework for embedded Linux. It is adopted as the Yocto build system and is co-maintained by the Yocto Project and the OpenEmbedded Project.

Note: Often Toradex documentation refers to OpenEmbedded instead of Yocto. When using the developer website search, please search for both terms for a better result overview.

Toradex is a Yocto Project participant company that makes use of the main Yocto infrastructure - especially the OpenEmbedded build system - to provide production-quality BSP Layers for Yocto Project, which makes it simple to get started. You can leverage Toradex's Reference Images for Yocto Project as a base for developing your embedded Linux systems with the Yocto Project, or use TorizonCore which is a ready-to-use distribution maintained by Toradex and built on top of our BSP Layers.

Keep in mind that our Reference Images for Yocto Project are not ready for deployment in production environments, whereas TorizonCore is. You are discouraged from building your own version of TorizonCore unless you have a strong reason for doing it.

How to Build a Yocto / OpenEmbedded Image

The comprehensive Toradex guides to building a Yocto/OpenEmbedded embedded Linux image are:

A summary of the steps to follow from configuration to deployment is provided below. Please see the technical articles above for the actual commands and exact steps you have to execute:

  1. Install the prerequisites. Make sure you install and configure git, and that proxy/firewall does not block access to any required URL.
  2. Download the required repositories using the Repo tool.
  3. Export the environment setup script
  4. Setup your machine, which tells OpenEmbedded for which Toradex computer on module you are building.
  5. Use bitbake to build the image. This takes a lot of time during the first build. For later builds, only the packages you customize will be re-built which makes it much faster.
  6. Deploy the resulting image to the computer on module.

Related content

Toradex has a Blog and Webinars pages where you can find content related to Yocto, aimed to help your embedded Linux development with Yocto Project. Check periodically for most up-to-date articles and if you would like to read a blog post that is not yet written, leave your feedback using the Feedback developer website button.

Blogs

Webinars

External resources

Partners

Details

This section provides a follow-up to the introduction.

Yocto Project

The Yocto Project provides infrastructure such as:

  • OpenEmbedded core, a basic set of recipes to build the distribution (e.g. C-Library, Shell, Busybox).
  • BitBake, a Python powered build engine that interprets the recipes and builds a root file system directly from sources.
  • AutoBuilder, a continuous integration system to assure QA.
  • Various BSPs, provided by the participants.
  • Poky, a reference distribution that includes Sato, a GTK based reference user interface.
  • CROPS, a containerized environment for Yocto builds.

There are other open-source components and tools which are developed under the umbrella of Yocto, see the Software: Components and Tools page of Yocto.

Toradex and Yocto Project Relationship

Toradex makes use of the main infrastructure of Yocto, namely:

  • OpenEmbedded core and BitBake, our BSPs use the OpenEmbedded core recipes.
  • AutoBuilder, we use AutoBuilder internally to build some of our BSPs.
  • CROPS, we use CROPS internally to build some of our BSPs.

TorizonCore

We provide our TorizonCore manifest and layers on https://github.com/toradex.

Toradex BSP Layers for Yocto Project

We provide our Toradex BSP Layers for Yocto Project as OpenEmbedded layers available at http://git.toradex.com.

  • toradex-bsp-platform: the Repo manifest containing all layers used by the Toradex BSP (in-house and third party ones), which is used to setup the build environment.
  • meta-toradex-bsp-common: layer common to all Toradex computer on modules.
  • meta-toradex-demos: layer that provides recipes used for our demo images.
  • meta-toradex-nxp: layer that provides support for the computer on modules that use NXP SoCs.
  • meta-toradex-tegra: layer that provides support for the computer on modules that use NVIDIA Tegra SoCs.
  • meta-toradex: legacy layer used in Toradex embedded Linux BSP 2.6 and earlier.

Note: From Toradex embedded Linux BSP 2.7, meta-toradex was split into several layers: meta-toradex-bsp-common, meta-toradex-demos, meta-toradex-nxp and meta-toradex-tegra. Note: From Toradex embedded Linux BSP 3.0, Toradex began to provide two embedded Linux offerings based-off the same BSP layers: TorizonCore and Toradex Reference Images for Yocto Project.

Starting with BSP V3.0 we have used:

  • A Poky-based distribution for our Toradex Reference Images for Yocto Project.
  • A minimal distribution with OTA capabilities and a container engine for TorizonCore. TorizonCore and the Torizon ecosystem were created to provide a great out-of-the-box experience and an easy migration path for Windows CE users.

Legacy

Up-to BSP 2.8 we opted to use the Yocto compatible Ångström distribution with an LXDE desktop environment.


  • Toradex LXDE based Desktop

    Toradex LXDE based Desktop

Qt

Toradex also recommends to use Qt to build appealing user interfaces, which are possible to run with or without Desktop environment (see How to set up Qt Creator to cross-compile for embedded Linux). There are several options to use Qt on Toradex modules:

Sato

With some configuration effort, it is also possible to use the Yocto reference distribution Sato, if preferred. Toradex does not provide any instructions for doing it, therefore if you plan to do it make sure that you have an advanced understanding of how to use Yocto.


  • Poky Sato interface

    Poky Sato