EmbeddedRelated.com
Books

Embedded Linux Development Using Yocto Project Cookbook: Practical recipes to help you leverage the power of Yocto to bu

Alex González 2018

Over 79 hands-on recipes for professional embedded Linux developers to optimize and boost their Yocto Project know-how

Key Features

  • Optimize your Yocto setup to speed up development and debug build issues
  • Use what is quickly becoming the standard embedded Linux product builder framework-the Yocto Project
  • Recipe-based implementation of best practices to optimize your Linux system

Book Description

The Yocto Project has become the de facto distribution build framework for reliable and robust embedded systems with a reduced time to market.

You'll get started by working on a build system where you set up Yocto, create a build directory, and learn how to debug it. Then, you'll explore everything about the BSP layer, from creating a custom layer to debugging device tree issues. In addition to this, you'll learn how to add a new software layer, packages, data, scripts, and configuration files to your system. You will then cover topics based on application development, such as using the Software Development Kit and how to use the Yocto project in various development environments. Toward the end, you will learn how to debug, trace, and profile a running system. This second edition has been updated to include new content based on the latest Yocto release.

What you will learn

  • Optimize your Yocto Project setup to speed up development and debug build issues
  • Use Docker containers to build Yocto Project-based systems
  • Take advantage of the user-friendly Toaster web interface to the Yocto Project build system
  • Build and debug the Linux kernel and its device trees
  • Customize your root filesystem with already-supported and new Yocto packages
  • Optimize your production systems by reducing the size of both the Linux kernel and root filesystems
  • Explore the mechanisms to increase the root filesystem security
  • Understand the open source licensing requirements and how to comply with them when cohabiting with proprietary programs
  • Create recipes, and build and run applications in C, C++, Python, Node.js, and Java

Who This Book Is For

If you are an embedded Linux developer with the basic knowledge of Yocto Project, this book is an ideal way to broaden your knowledge with recipes for embedded development.

Table of Contents

  1. The build system
  2. The BSP layer
  3. The software layer
  4. Application development
  5. Debugging, tracing and profiling


Why Read This Book

You will get 79+ hands‑on, recipe‑style solutions that take you from setting up a Yocto build to shipping optimized, reproducible embedded Linux images for products. The book focuses on practical troubleshooting, BSP/kernel integration, SDKs, and build‑system optimizations so you can work faster and avoid common Yocto pitfalls in real projects.

Who Will Benefit

Intermediate embedded Linux engineers, firmware developers, and system integrators who need to build, customize, and maintain Yocto‑based Linux images for production devices.

Level: Intermediate — Prerequisites: Comfortable with Linux command line and shell scripting, basic cross‑compilation concepts, familiarity with Git and C (or experience building Linux device stacks); prior exposure to embedded Linux is recommended.

Get This Book

Key Takeaways

  • Set up and configure a Yocto Project build environment (Poky/OpenEmbedded) and create reproducible build directories
  • Create and adapt BSP and kernel recipes to support custom hardware and board bring‑up
  • Optimize build performance using sstate, ccache, parallel builds, and layer management
  • Debug BitBake builds and diagnose common build, dependency, and packaging issues
  • Customize images, create SDKs and packagegroups, and integrate system services (systemd, udev, etc.)
  • Integrate deployment workflows for devices and use tooling (Devtool, Toaster, SDKs) for iterative development

Topics Covered

  1. Introduction to the Yocto Project and OpenEmbedded concepts
  2. Setting up Poky, BitBake and your build directory
  3. Understanding layers, recipes, and metadata (meta‑layers, layer priority)
  4. Board Support Packages (BSP): creating and maintaining layers for hardware
  5. Kernel and bootloader recipes: customizing and building the Linux kernel and U‑Boot
  6. Image recipes and package management: creating minimal and product images
  7. Software development workflows: SDKs, cross‑toolchains, and devtool
  8. Build optimization: sstate, ccache, tmpfs, and parallelization
  9. Debugging and troubleshooting BitBake and recipe failures
  10. Packaging, reproducible builds, and release engineering
  11. Security and hardening: secure boot, package signing, and runtime hardening
  12. Containers, CI/CD and Yocto: using Docker, Toaster, and automated builds
  13. Advanced topics: Layer conflict resolution, upstreaming, and Yocto for IoT devices
  14. Appendices: common recipe snippets, useful commands, and community resources

Languages, Platforms & Tools

Shell (Bash)BitBake recipe syntax (BB, BBAPPEND)Python (BitBake and recipe helpers)C (kernel and native packages)ARM (Cortex‑A)x86/x86_64RISC‑V (introductory coverage)Generic embedded SoCs supported by YoctoYocto Project / PokyBitBakeOpenEmbedded Core (OE‑Core)GCC cross‑toolchainsQEMUDocker (for isolated builds/CI)GDBDevtool and ToasterGit

How It Compares

More practical and recipe‑focused than the official Yocto Project documentation and the Yocto reference manual; compared with Karim Yaghmour's 'Building Embedded Linux Systems' this book is narrower in scope but far more hands‑on for Yocto workflows.

Related Books

Bryant, Randal, O'Hallaron,...