Training > IoT & Embedded Development > Embedded Linux Platform Development with Yocto Project (LFD460)
INSTRUCTOR-LED COURSE

Embedded Linux Platform Development with Yocto Project (LFD460)

In this instructor-led course, you’ll obtain a solid understanding of how to build a repeatable embedded Linux target using the Yocto Project. In addition to learning the build system, you will learn about more advanced tools like toaster, devtool, wic, eSDK, and eclipse IDE integration. This course builds on the Embedded Linux topics learned in the LFD450 class.

Who Is It For

This course is primarily intended for experienced embedded Linux engineers who are interested in learning how to repeatably build an embedded Linux system. This course assumes you have basic knowledge of Embedded Linux systems such as building and install boot loaders, kernels and user space software. You should also be familiar with building code from the command line, basic Linux utilities and text editors. Some experience with Python is helpful but not required.
read less read more
What You’ll Learn

In this Yocto training course you will learn how to use the Poky and Bitbake build process, with its recipes and layers to customize Linux kernel and packages for a custom embedded application, how to build Linux on an embedded board, how to use emulators for verification, how to create board support packages (BSP) for target hardware, and more.
read less read more
What It Prepares You For

This course prepares you to take advantage of the Yocto Project – the open source collaboration effort that provides templates, tools and methods to help you create and maintain custom Linux-based systems for embedded products regardless of the specific hardware architecture.
read less read more
Course Outline
Expand All
Collapse All
Introduction
Objectives
Goals
Audience
Who You Are
The Linux Foundation
Linux Foundation Training
Certification Programs and Digital Badging
Linux Distributions
Platforms
Preparing Your System
Things change in Linux
Documentation and Links
Course Registration
Preliminaries
Linux Distributions
Procedures
Labs
How to Work in OSS Projects **
Overview on How to Contribute Properly
Stay Close to Mainline for Security and Quality
Study and Understand the Project DNA
Figure Out What Itch You Want to Scratch
Identify Maintainers and Their Work Flows and Methods
Get Early Input and Work in the Open
Contribute Incremental Bits, Not Large Code Dumps
Leave Your Ego at the Door: Don’t Be Thin-Skinned
Be Patient, Develop Long Term Relationships, Be Helpful
The Yocto Project and OpenEmbedded
What is the Yocto Project?
What is OpenEmbedded?
The Yocto Project Family
Yocto Project Terms
Resources
Poky
Pronouncing Poky
Poky and BitBake Concepts
Yocto/OE Architecture
Bitbake
Obtaining and Installing
Metadata
Metadata Layers
Metadata Syntax
Events
Variants
File Downloads
Fetchers
Built-in Default Metadata
Checksums
Event Implementation
Tasks
Project Layout
Provisioning and Dependency Handling
BitBake Command Line
Labs
Setting up the Yocto Project Build System
The Yocto Project Reference System Structure
A. Poky Core Components
B. OpenEmbedded-Core Metadata Layer
C. Poky Metadata Layer
D. Yocto Board Support Package (BSP) Layer
Labs
Building an x86 Emulation Image
Build Environment Structure
Labs
Troubleshooting Build Failures
When Things Break
Task Logs
Running Specific Tasks
Debug Statements
Dependency Graphs
Displaying Variables and Metadata
Bitbake Debug Output
Developer Shell
Customizing Images
Extending a Pre-defined Image
Inheriting from Core-Image
Package Groups
Using Image Features
Labs
Toaster
What is Toaster?
Dependencies and Set Up of Toaster
Running Toaster (local)
Remote or hosted Setup
Labs
Adding Packages
Recipe Conventions and Best Practices
Single C-File Package
Makefile-based Package
Autotooled Package
Labs
Layers
Why Layers?
Working with Layers
Labs
Kernel Recipes
Yocto Kernel Recipes
Configuring the Yocto Project Kernel
Building a Custom Kernel
Extending the Yocto Project Kernel
Labs
Introduction to selected BBCLASSes
rm_work.bbclass
allarch.bbclass
buildhistory and buildstats
cve-check.bbclass
archiver.bbclass
Development Tools
devtool
wic
Licensing and Compliance
License Management with Yocto
License Tracking
Enabling Commercially Licensed Recipes
Labs
Closing and Evaluation Survey
Evaluation Survey

Prerequisites
This course is primarily intended for experienced embedded Linux engineers who are interested in learning how to repeatably build an embedded Linux system. This course assumes you have basic knowledge of Embedded Linux systems such as building and install boot loaders, kernels and user space software (the kinds of things you learn in LFD450: Embedded Linux Development). You should also be familiar with building code from the command line, basic Linux utilities and text editors. Some experience with Python is helpful but not required.
Reviews
Jul 2021
I came into the course having a bit of self taught Yocto knowledge, but it was helpful having a summary structured in this manner to fill in any of the gaps I had.
Jul 2021
As a beginner user, I received a very good understanding of overall Yocto architecture.
Jul 2021
Great labs, and pre-provided material (Yocto source, solution files) that saved a ton of time and frustration.
Jul 2021
Definately the labs, especially everything involving bitbake.
Jul 2021
I liked learning about all that Yocto can do.
May 2021
Being hands-on in the labs is always a plus.
May 2021
The labs were really great towards understanding all the theory, and to be able to play with Yocto.
Feb 2021
Karl! Always willing to help, and accommodates any questions. Also extended himself to help us with our specific solution to make the material even more relevant.
Jan 2021
Karl was personable and easy to work with.
Nov 2020
Everything was great. Thanks for the great course, and keep up the good work.
Nov 2020
Really enjoyed it, and going to recommend it.
Nov 2020
I enjoyed the labs very much, and mostly Tom's guidance. It was great to learn how to use bitbake and yocto properly, and to learn good practices.
Nov 2020
Definitely liked Tom King's patience in answering all our questions.
Sep 2020
I liked the instructor's expertise, and that there were a low number of attendees.