Book Image

Embedded Linux Development Using Yocto Project - Third Edition

By : Otavio Salvador, Daiane Angolini
Book Image

Embedded Linux Development Using Yocto Project - Third Edition

By: Otavio Salvador, Daiane Angolini

Overview of this book

The Yocto Project is the industry standard for developing dependable embedded Linux projects. It stands out from other frameworks by offering time-efficient development with enhanced reliability and robustness. With Embedded Linux Development Using Yocto Project, you’ll acquire an understanding of Yocto Project tools, helping you perform different Linux-based tasks. You’ll gain a deep understanding of Poky and BitBake, explore practical use cases for building a Linux subsystem project, employ Yocto Project tools available for embedded Linux, and uncover the secrets of SDK, recipe tool, and others. This new edition is aligned with the latest long-term support release of the aforementioned technologies and introduces two new chapters, covering optimal emulation in QEMU for faster product development and best practices. By the end of this book, you’ll be well-equipped to generate and run an image for real hardware boards. You’ll gain hands-on experience in building efficient Linux systems using the Yocto Project.
Table of Contents (20 chapters)

Dependencies

From the BitBake point of view, there are three different dependency types:

  • Build time
  • Execution time
  • Tasks

An application that needs some other package, such as a library, has a build dependency for a successful compilation. Build dependencies include compilers. libraries, and native build tools (such as CMake). In addition, a build dependency has an execution dependency whenever an application is needed only during execution time. Runtime dependencies include fonts, icons, dynamically opened libraries, and language interpreters.

Tip

The convention inside Poky is to use -native suffixes for recipe names. This is because those tools are aimed to be run during the build process, in the host building system, and are not deployed into the target.

The task dependencies create order in the chaos of task execution – for example, to compile a package, the source code needs to be downloaded. Under the hood, all the dependencies are task dependencies...