Course Outline
Embedded Linux Fundamentals & Platform Overview
-
Introduction to Embedded Linux
-
differences vs desktop Linux
-
use-cases, constraints
-
-
Overview of i.MX6 platform architecture
-
SoC blocks, boot process (ROM, SPL, U-Boot, kernel)
-
Device Tree concept and how it applies to i.MX6
-
-
Hardware/Emulator setup: board layout, interfaces, JTAG/serial, SD/eMMC boot
Build Environment & Yocto Project Basics
-
Introduction to Yocto Project
-
Poky, BitBake
-
Layers
-
Metadata (recipes, bbfiles)
-
-
Setting up host build environment
-
prerequisites
-
toolchains
-
repo sync
-
-
Exploring Yocto directory structure
-
meta
-
poky
-
meta-classes
-
Customizing Images & Adding Packages
-
Understanding layers
-
BSP layer
-
board-specific
-
application layer
-
-
Adding packages to image
-
writing simple recipe
-
inserting into image
-
-
Customising image
-
rootfs size
-
services
-
kernel modules
-
Kernel, Device Tree & Board Support on i.MX6
-
Kernel build flow
-
configuration
-
cross-compile
-
modules
-
-
Device Tree
-
formatting
-
nodes
-
overlays
-
how to enable a peripheral on i.MX6
-
-
BSP specifics for i.MX6
-
bootloader (U-Boot)
-
board-specific patches
-
memory layout
-
Troubleshooting and Optimization
-
Common build/boot failures and how to debug them
-
serial console
-
u-boot debug
-
kernel oops
-
rootfs issues
-
-
Optimization tips
-
image size
-
boot time
-
power management basics (Overview Only)
-
Wrap Up
-
Summary and Conclusion
-
Key take-aways
-
Next steps for participants (driver development, advanced BSP work)
-
Feedback & Q&A
Requirements
Participants should have:
-
Good knowledge of Embedded C or C++ programming (mandatory)
-
Basic familiarity with microcontrollers / embedded systems concepts, such as:
-
UART, I2C, SPI, GPIO
-
Cross-compilation or toolchains (at least conceptually)
-
-
Basic understanding of Linux as a user (preferred, not mandatory)
e.g., ability to use terminal commands like cd, ls, cp, mkdir, chmod
Note: Deep Linux knowledge is not mandatory — the course starts from Embedded Linux basics.
Audience
-
Embedded engineers proficient in Embedded C++ but new to Linux on embedded platforms.
-
Engineers who will work on Linux-based systems on i.MX6/i.MX9 hardware.
-
Team members preparing to: build custom Linux images, configure kernel, manage BSPs, deploy on embedded boards.
Testimonials (4)
Maybe more exercises could be better for lerning but the time was to little
Gianpiero Arico' - Urmet Spa
Course - Embedded Linux Systems Architecture
I thought the content (both theory and practical) was excellent, and exactly what we were wanting/expecting. The exercises were challenging but achievable.
Mike Kleinau - iVolve
Course - Introduction to Embedded Linux (Hands-on training)
I really enjoy having a virtual PC online, I can do exercises whenever I want
Dongfu Li - Northforge Innovations Inc
Course - Yocto Project
I liked the hands-on nature of it.