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
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 2
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
Creating Our Own Layer In The Yocto Project BSP
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