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.

 35 Hours

Number of participants


Price per participant

Testimonials (5)

Upcoming Courses

Related Categories