Embedded Linux Platform Development with Yocto Project (LFD460)

In this 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.

$3250 Enroll Get A Quote

Course Overview

This course will teach you how 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.

Show More

You’ll 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.

The information in this course will work with any major Linux distribution.

Schedule

Instructor-Led
6/8/2020 - 6/10/2020
VIRTUAL
$3250 Add to cart Generate A Quote
Instructor-Led
7/20/2020 - 7/22/2020
VIRTUAL
$3250 Add to cart Generate A Quote
Instructor-Led
8/24/2020 - 8/26/2020
VIRTUAL
$3250 Add to cart Generate A Quote
Instructor-Led
9/28/2020 - 9/30/2020
VIRTUAL
$3250 Add to cart Generate A Quote
If none of these fits your schedule, check out our Partner offerings >

Course Outline

    1. 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
    2. Preliminaries
      • Linux Distributions
      • Procedures
      • Labs
    3. 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
    4. The Yocto Project and OpenEmbedded
      • What is the Yocto Project?
      • What is OpenEmbedded?
      • The Yocto Project Family
      • Yocto Project Terms
      • Resources
    5. Poky
      • Pronouncing Poky
      • Poky and BitBake Concepts
      • Yocto/OE Architecture
    6. Bitbake
      • Obtaining and Installing
      • Metadata
      • Metadata Layers
      • Metadata Syntax
      • Events
      • Variants
      • File Downloads
      • Fetchers

{subsection{6.8.1Local File Fetcher

{subsection.6.8.1
{subsection{6.8.2CVS Fetcher

{subsection.6.8.2
{subsection{6.8.3HTTP/HTTPS/FTP Fetcher

{subsection.6.8.3
{subsection{6.8.4SFTP Fetcher

{subsection.6.8.4
{subsection{6.8.5SVN Fetcher

{subsection.6.8.5
{subsection{6.8.6GIT Fetcher

{subsection.6.8.6
{subsection{6.8.7Other Fetchers

{subsection.6.8.7

 

  • Built-in Default Metadata
  • Checksums
  • Event Implementation
  • Tasks
  • Project Layout
  • Provisioning and Dependency Handling
  • BitBake Command Line
  • Labs

 

    1. 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
    2. Building an x86 Emulation Image
      • Build Environment Structure
      • Labs
    3. Troubleshooting Build Failures
      • When Things Break
      • Task Logs
      • Running Specific Tasks
      • Debug Statements
      • Dependency Graphs
      • Displaying Variables and Metadata
      • Bitbake Debug Output
      • Developer Shell
    4. Customizing Images
      • Extending a Pre-defined Image

{subsection{10.1.1 Extending an Image using the Local Configuration Method

{subsection.10.1.1
{subsection{10.1.2 Extending an Image using the Recipe Method

{subsection.10.1.2

 

  • Inheriting from Core-Image
  • Package Groups
  • Using Image Features
  • Labs

 

    1. Toaster
      • What is Toaster?
      • Dependencies and Set Up of Toaster
      • Running Toaster (local)
      • Remote or hosted Setup
      • Labs
    2. Adding Packages
      • Recipe Conventions and Best Practices

{subsection{12.1.1 Guidelines

{subsection.12.1.1
{subsection{12.1.2 Recipe Style Checklist

{subsection.12.1.2
{subsection{12.1.3 Layers

{subsection.12.1.3

 

  • Single C-File Package
  • Makefile-based Package
  • Autotooled Package
  • Labs

 

    1. Layers
      • Why Layers?
      • Working with Layers

{subsection{13.2.1 Conventions and Best Practices for Layers

{subsection.13.2.1
{subsection{13.2.2 Layers as-easy-as 1-2-3

{subsection.13.2.2
{subsection{13.2.3 Managing Layers

{subsection.13.2.3

 

  • Labs

 

  1. Kernel Recipes
    • Yocto Kernel Recipes
    • Configuring the Yocto Project Kernel
    • Building a Custom Kernel
    • Extending the Yocto Project Kernel
    • Labs
  2. Introduction to selected BBCLASSes
    • rm_work.bbclass
    • allarch.bbclass
    • buildhistory and buildstats
    • cve-check.bbclass
    • archiver.bbclass
  3. Development Tools
    • devtool
    • wic
  4. Licensing and Compliance
    • License Management with Yocto
    • License Tracking
    • Enabling Commercially Licensed Recipes
    • Labs
  5. Closing and Evaluation Survey
    • Evaluation Survey

 

Appendices

 

**
These sections may be considered in part or
in whole as optional. They contain either background reference
material, specialized topics, or advanced subjects. The
instructor may choose to cover or not cover them depending on
classroom experience and time constraints.

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.

Testimonials

Excellent overview of Yocto/Open-embedded, with a good level of detail.”  Mar 2020

 

“I did come away with a somewhat better understanding of the Yocto environment.”  Mar 2020

 

Very thorough introduction to the fundamentals of Yocto, helped me to clarify some of the assumptions I’ve made in the past, and I learned a few new tricks to help me get my work done quicker.”  Mar 2020

 

As someone who has been using Yocto for a long time without any training in it, it answered a lot of “why”s, as I had been doing something without
really understanding why I was doing it that way or what the alternatives were.”  Mar 2020

At a Glance

Delivery Method

Live Online (Virtual)

Includes

  • 3 days of Instructor-led class time
  • Hands-on Labs & Assignments
  • Resources & Course Manual
  • Certificate of Completion
  • Digital Badge
  • Free Chromebook

Experience Level

   Advanced

Course Rating

   

Pro-Tip

Training 5 or more individuals?
Get a Corporate Quote >

chromebook
$3250 Enroll Get A Quote