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 (3)
The trainer's presentation and way of communicating.
Gianpiero Arico - Urmet Spa
Course - Embedded Linux Systems Architecture
I understood the process of the operating system and how do we link all factors together information of network as well so now I have an obvious and full picture about what is going on these computers how they communicate with each others ultimately gained knowledge about the most important operating system which is Linux and how do we implement our own embedded Linux
Rawda Alnaqbi - beamtrail
Course - Introduction to Embedded Linux (Hands-on training)
The knowledge of the trainer. He was able to answer all of my questions, even questions about our platform. He also continued to help until we all understood the material.