Designing Embedded Systems with Yocto

A hands-on course to enable you to write device drivers for hardware peripherals and devices in an embedded Linux system.

COVID-19 Update: View Bicard COVID News Updates
This course is available Live Online worldwide: View the Live Online full course description

Limited In-Person schedule available in Europe from March 2021

Standard Level - 3 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 Bicard 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 Bicard to discuss and assess your specific experience against the pre-requisites.

Please contact the Bicard team to discuss your specific project and hardware requirements.

Bicard 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

  • What is Yocto?
  • Host setup & system requirements
  • Downloading Yocto
  • Embedded Linux components
  • Using Yocto to build U-Boot, a Linux kernel and a filesystem
  • Booting the system


Yocto Build System

  • Bitbake and OpenEmbedded
  • Metadata file types
  • User configuration files
  • Layers, recipes and classes
  • Using Toaster to monitor builds


Yocto Outputs

  • A closer look at the deploy directory
  • The sysroot directories
  • The working directories
  • The Yocto SDKs   


Manage Custom Layers

  • Creating a layer
  • Working with the devshell
  • Working with the devtool
  • Image and package recipes
  • Finding new layers


Development Workflow

  • Development and debug image features
  • Local build mirror servers
  • Managing the source code
  • TFTP boot and NFS root filesystems


Systems Integration

  • Creating a new BSP layer
  • Patching existing kernel/U-boot code
  • Linux-yocto compatible kernels
  • Kernel out-of tree module recipes
  • Managing multiple board configurations


Application Integration

  • Creating a new application package layer
  • Managing package dependencies
  • Masking recipes
  • Managing licence files


Package Management

  • Linux package management tools
  • Package updates through HTTP
  • Package release versioning


The BitBake Tool

  • The global datastore
  • Conditional variable assignment
  • Functions and tasks
  • Bitbake commands


Build System Trouble Shooting

  • BitBake log files
  • Generating error messages
  • QA & testing

Get Course Details

You have reached the limit

Looking for team-based training, or other locations?

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

Enquiry Form