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 (4)

Upcoming Courses

Related Categories