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 (5)
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)
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Course - The Yocto Project - An Overview - hands-on
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.