Hands-On With Embedded Linux and Yocto
Dates: May 5 – May 8, 2025
Time: 9 – 1 PM
Location:
250 Moonachie Road, Suite 301 Moonachie, NJ 07074
Looking to get hands-on experience with Embedded Linux and The Yocto Project/OpenEmbedded? In this in-person course, participants will learn how to get started customizing Embedded Linux, developing a custom distribution with The Yocto Project/OpenEmbedded, and deploying it to commercial hardware.
In this course, you will learn about the different components that make up a complete Embedded Linux system, from the bootloader to rich, full-featured GUI applications. You will learn how to apply a simple customization to each component and confirm its operation on the target hardware.
Additionally, you will learn how to build an Embedded Linux distribution from a vendor-provided board support package (BSP) based on The Yocto Project/OpenEmbedded. You will also learn how to best apply the customizations learned previously to the vendor-provided BSP to create your own custom distribution!
Each session will consist of a lecture with slides and a lab portion. Participants will have their own properly configured laptop and hardware to successfully complete each lab.
The following outlines what will be covered in each session:
- Day 1:
- Embedded Linux system architecture and components
- The Embedded Linux boot process
- U-Boot Software Architecture
- Environment variables in U-Boot
- U-Boot Commands
- Lab: Customizing U-Boot
- Day 2
- The Different Types of Kernels: Micro vs Monolithic vs Modular
- The Linux Kernel Overview, Architecture, and Components
- Different Subsystems in the Linux Kernel
- Kconfig: How to Enable Features In the Linux Kernel
- How the Linux Kernel Uses the Devicetree to Learn About Hardware
- Devicetree Overlays
- Linux Kernel Modules
- Lab: Implementing an Out-Of-Tree Module to Interact with Hardware
- Day 3
- Kernel-space vs User-space
- Cross-compiling Applications to Run On Embedded Systems
- Systemd: Launching Applications on Startup
- The Yocto Project/OpenEmbedded Overview
- Understanding the Mechanics of The Yocto Project
- Building a Vendor-Provided BSP and Flashing It To Our Board
- Lab: Creating an Application To Interact With Our Hardware
- Day 4
- Creating Our Own Layer In The Yocto Project BSP
o Applying Our U-Boot Customization and Validating It
- Incorporating Our Devicetree Overlay and Kernel Module
- Adding Our Custom Application And Ensuring It Starts On Boot
- Trimming the Fat: Reducing Our RFS Size
- Shared State: Improving Build Speeds
- Lab: Creating a Custom Linux Distribution Using The Yocto Project