Search by Tags

Yocto Project

 

Article updated at 30 Sep 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.


  • Relationship between TorizonCore, BSP Layers and Reference Images

    Relationship between TorizonCore, BSP Layers and Reference Images

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.

Note: From Toradex embedded Linux BSP 5, the repo manifest for TorizonCore has been changed from toradex-torizon-manifest to toradex-manifest.

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-manifest: the Repo manifest containing all layers used by the Toradex BSP (in-house and third party ones), Reference Images for Yocto Project and TorizonCore. It is used to setup the OpenEmbedded build environment.
  • meta-toradex-bsp-common: BSP layer common to all Toradex computer on modules.
  • meta-toradex-demos: BSP layer that provides recipes used by our reference images, and the recipes of the images themselves.
  • meta-toradex-distro: distribution layer that provides recipes used to build our reference images.
  • meta-toradex-nxp: BSP layer that provides support for the computer on modules that use NXP SoCs.
  • meta-toradex-tegra: BSP layer that provides support for the computer on modules that use NVIDIA Tegra SoCs.

Note: From Toradex embedded Linux BSP 5, the repo manifest for the BSP Layers and Reference Images for Yocto Project has been changed from toradex-bsp-platform to toradex-manifest. 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. 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.

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:

  • As a container on TorizonCore. Toradex provides a Qt Debian Container for Torizon.
  • From a custom Yocto image that integrates Qt to the Toradex BSP:
    • One example is the Boot2Qt image, provided and maintained by The Qt Company. The binary image is hosted by Toradex in the Toradex Easy Installer feeds, for your convenience. Read Partner Demo Image - Qt for Device Creation for more information.
    • Another example is to directly use our Toradex Reference Images for Yocto Project. Our Multimedia Reference Image already has Qt included.

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