Yocto: A Powerful Tool for Embedded Developers

Yocto: A Powerful Tool for Embedded Developers

Source | Yocto

Various embedded development teams, for different reasons, wish to build embedded systems that meet their development needs. Yocto is such a tool, any vendor can customize their system based on Yocto.

What is Yocto?

Official website:
https://www.yoctoproject.org/
Yocto is a umbrella project focused on creating embedded Linux distributions through an open embedded kernel, unrestricted by hardware architecture. Yocto itself is not a distribution but a framework that helps you build Linux distributions. Yocto has become an indispensable tool. Developers and embedded system manufacturers can tailor the most suitable Linux version according to their own hardware and software limitations and actual applications.
More importantly, Yocto comes with various existing tools and has a wealth of open-source support, known for its flexibility. A rich set of tools, maintenance, templates, and community products can help you accomplish various unparalleled special build tasks.

Three Key Components of Yocto

• BitBake — essentially the build system engine of Yocto. It is responsible for creating recipes — a list of tasks needed to build a specific system — as well as parsing metadata and executing recipes.
Developers interested in how to decompose and accelerate the BitBake build process can register for Incredibuild’s latest event (scan the code at the bottom of the article to get the registration link).

Yocto: A Powerful Tool for Embedded Developers

• OpenEmbedded-Core — metadata. It stores the basic recipes, related files, and classes necessary to create systems. It is set to be general during the build to apply to various OpenEmbedded-based systems.
• Poky — includes a Linux-based cross-platform build tool and various other technologies that help teams quickly develop new systems reliably. Poky generates filesystem images based on various architectures. A typical example is QEMU full system emulation, an exceptional embedded software testing platform.

Yocto: A Powerful Tool for Embedded Developers

Yocto Build Workflow
Yocto also supports other key components (such as QT, Chromium, LLVM etc.) built into embedded distributions, which is one of the reasons for its popularity.

Why Choose Yocto

Although Yocto is more complex to operate, it has significant advantages.
  • A wide user base, an active development community, supported by the Linux Foundation.
  • Can achieve hierarchical levels, for various tasks, highly customizable, can add special features, custom browsers, etc.
  • Among similar projects, it can support the most compatible devices, allowing for the addition of a large number of SDKs, tools, and features.
It is these elements that make Yocto highly customizable, while also having strong support, making it very friendly for developers who wish to customize builds of embedded systems.

Disadvantages of Yocto

Even so, Yocto has its drawbacks. On the one hand, the learning curve at the beginning is a bit steep. For time-limited small single projects or small teams, using this tool may not be very meaningful. On the other hand, Yocto’s build time is long. This reduces the iteration frequency, making it less ideal for time-sensitive projects, but using acceleration tools like Incredibuild can significantly speed up the development process.
In the Yocto framework, BitBake is a crucial concept, and due to the complexity of Yocto project builds, correctly utilizing the sstate cache is particularly important. The Incredibuild technology community IncrediClub will hold an online seminar on embedded development with Yocto on July 14th. Developers currently using or planning to use Yocto can register to participate (technical sharing is free). Details of the meeting can be found in the poster below.
Registrants can contact Penny to receive:
“Yocto Overview” (English version)
“BitBake Manual” (Chinese version)
“Decomposing and Accelerating BitBake Complex Builds” (Bilingual)
“Using Ccache to Enhance sstate Cache” (Bilingual)

Yocto: A Powerful Tool for Embedded Developers

Leave a Comment