Global training solutions for engineers creating the world's electronics

Designing Embedded Systems with Yocto

This course is available Live Online worldwide: View the Live Online full course description »

Standard Level - 4 days

The Yocto Project is ideal for rapid prototyping and provides the tools and processes required to develop an embedded Linux-based product. The collaboration has widespread support from leading hardware manufacturers, open-source operating systems vendors, and electronics companies looking to address the challenges of developing embedded technology.

This course from Doulos Embedded has been designed to help you understand how to use the Yocto Project tools to manage key components of a Linux distribution: Toolchains, bootloaders, kernels and package management systems. You will learn how to use a Yocto Project based toolchain and tools to develop, debug and test your software, as well as how to use Yocto to customize and maintain an Embedded Linux distribution for multiple boards.

  • Engineers who are migrating to a Yocto Project based distribution environment
  • Project managers and engineers who are evaluating the use of Linux for their projects
  • Project managers and engineers who are considering supporting their own Linux distribution and tools
  • Engineers responsible for build systems and software releases


Project managers: This course is designed for those looking to maximise their effectiveness in utilising Yocto to complete embedded systems projects on time and in budget. New Linux projects and projects which will require a long term maintenance cycle would benefit from investigating the components of the Yocto Project. The Yocto Project infrastructure is suitable for Linux projects of any size. Starting from a minimal Linux system, it can be scaled up by integrating additional software in a managed environment. 

Engineers: This course outlines how development teams can directly benefit from the tools and SDKs produced by the build system. It clearly separates development cycle tasks from the tasks required to integrate, maintain and distribute software.

Delegates must have attended Developing with Embedded Linux or an equivalent course, or have some experience of using Linux for Embedded Systems. Please contact Doulos to discuss and assess your specific experience against the pre-requisites.

Doulos course materials are renowned for being the most comprehensive and user friendly available. Their unique style, content and coverage has made them sought after resources in their own right. The materials include fully indexed class notes creating a complete reference manual.

Yocto Kick-start

  • Understand components of the Yocto Project
  • Embedded Linux components
  • Host setup requirements
  • Building U-Boot, Linux and the root filesystem
  • Booting Linux on an emulated board (QEMU)


The Yocto Build System

  • An automated build system
  • Metadata file types:
    • Recipes, classes and configuration files
  • Layers
  • Configuration file types


Yocto Outputs

  • The deploy directory
  • The work directory
  • The cross toolchain
  • Package feeds
  • Generating an SDK


Layers and Recipes

  • Adding custom layers
  • Example recipe
  • Using recipetool
  • Application integration


Manage Custom Layers

  • Adding custom layers
  • Example recipe
  • Using recipetool
  • Application integration
  • Managing package users


Working With Sources and Recipes

  • Steps in the build process
  • More on recipetool
  • The devshell
  • The devtool


Development Workflow

  • More on the SDK
  • Extensible SDK
  • Development tools and features
  • Managing sources and layers
  • Target infrastructure


Systems Integration

  • Kernel configuration and build
  • Initial board support
  • Machine configuration file
  • In and out of tree kernel development
  • Kernels in Yocto
  • U-Boot configuration and build


Package Management

  • Package distribution through HTTP or FTP
  • Linux package management tools
  • Package groups
  • Package release versioning
  • Over the Air Updates



  • The global datastore
  • Conditional variable assignment
  • Functions and tasks
  • Bitbake commands
  • Log files and logging functions


Building Secure Systems

  • Yocto security features
    • Standard features
    • Meta-security and other layers
  • License management and open source compliance
    • Managing licenses
    • SPDX and SBOMs


Working With The Build System

  • QA system
  • Package testing
  • The BuildHistory
  • Toaster
  • Useful commands and tips

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request