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
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

Learning Path
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
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.

Get training and a FREE Chromebook
For a limited time, we are including a free Chromebook with the purchase of select Linux Foundation instructor-led training courses to help you get the most out of your training experience.
Learn more >