Book Image

Embedded Linux Development using Yocto Projects - Second Edition

By : Otavio Salvador, Daiane Angolini
Book Image

Embedded Linux Development using Yocto Projects - Second Edition

By: Otavio Salvador, Daiane Angolini

Overview of this book

Yocto Project is turning out to be the best integration framework for creating reliable embedded Linux projects. It has the edge over other frameworks because of its features such as less development time and improved reliability and robustness. Embedded Linux Development using Yocto Project starts with an in-depth explanation of all Yocto Project tools, to help you perform different Linux-based tasks. The book then moves on to in-depth explanations of Poky and BitBake. It also includes some practical use cases for building a Linux subsystem project using Yocto Project tools available for embedded Linux. The book also covers topics such as SDK, recipetool, and others. By the end of the book, you will have learned how to generate and run an image for real hardware boards and will have gained hands-on experience at building efficient Linux systems using Yocto Project.
Table of Contents (22 chapters)
Title Page
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
7
Diving into BitBake Metadata
Index

Preferring and providing recipes


The dependency relation between recipes is essential to BitBake and Poky. It is defined inside each recipe file, with a variable that describes on what a recipe depends (DEPENDS) and what a recipe provides to the system (PROVIDES). These two variables together build the dependency graph used by BitBake during dependency resolution.

So, if a recipe called foo_1.0.bb depends on bar, BitBake lists all recipes providing bar. The bar dependency can be satisfied by the following:

  • A recipe with the bar_<version>.bb format, because every recipe provides itself
  • A recipe where the PROVIDES variable includes bar

A dependency can be satisfied by several recipes (for example, if two or more recipes have PROVIDES += "bar"). In this case, we must inform BitBake which specific provider to use.

The virtual/kernel provider is a clear example where this mechanism is used. The virtual/ namespace is the convention adopted when we have a set of commonly overridden providers.

All...