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)

Understanding common use cases

Nowadays, projects usually have a set of layers to provide the required features. We certainly need to make changes on top of them to adapt them to our specific needs. They may be cosmetic or substantive changes, but the way to make them is the same.

We must create a .bbappend file to change a preexisting recipe in our project layer. For example, suppose the original recipe was named <original-layer>/recipes-core/app/app_1.2.3.bb. When you create a .bbappend file, you can use the % wildcard character to allow for matching recipe names. So, the .bbappend file could have the following different forms:

  • App_1.2.3.bbappend: This applies the change only for the 1.2.3 version
  • app_1.2.%.bbappend: This applies the change only for the 1.2.y version
  • app_1.%.bbappend: This applies the change only for the 1.x and 1.x.y versions
  • app_%.bbappend: This applies the change for any version

We can have multiple .bbappend files, depending...