Get in Touch
 Duration 35 hours

Course Outline

Embedded Linux Fundamentals and Platform Overview

  • Introduction to Embedded Linux
    • Differences from desktop Linux
    • Typical use cases and constraints
  • i.MX6 platform architecture overview
    • SoC blocks and boot process (ROM, SPL, U-Boot, kernel)
    • The concept of Device Tree and its application on i.MX6
  • Hardware or emulator setup: board layout, interfaces, JTAG/serial, and SD/eMMC boot

Build Environment and Yocto Project Basics

  • Introduction to the Yocto Project
    • Poky and BitBake
    • Layers
    • Metadata (recipes, bbfiles)
  • Setting up the host build environment
    • Prerequisites
    • Toolchains
    • Repository synchronization
  • Exploring the Yocto directory structure
    • meta
    • poky
    • meta-classes

Customizing Images and Adding Packages

  • Understanding layers
    • BSP layer
    • Board-specific components
    • Application layer
  • Adding packages to the image
    • Writing simple recipes
    • Including them in the image
  • Image customization
    • rootfs size
    • Services
    • Kernel modules

Kernel, Device Tree, and Board Support on i.MX6

  • Kernel build workflow
    • Configuration
    • Cross-compilation
    • Modules
  • Device Tree details
    • Formatting
    • Nodes
    • Overlays
    • Enabling peripherals on i.MX6
  • i.MX6 BSP specifics
    • Bootloader (U-Boot)
    • Board-specific patches
    • Memory layout

Troubleshooting and Optimization

  • Common build and boot failures and debugging methods
    • Serial console
    • U-Boot debugging
    • Kernel oops
    • rootfs issues
  • Optimization tips
    • Image size
    • Boot time
    • Power management basics (Overview only)

Conclusion

  • Summary and conclusion
  • Key takeaways
  • Next steps for participants (driver development, advanced BSP work)
  • Feedback and Q&A

Requirements

Participants are expected to possess the following:

  • Strong proficiency in Embedded C or C++ programming (mandatory)
  • Fundamental familiarity with microcontroller and embedded system concepts, such as:
    • UART, I2C, SPI, and GPIO
    • Conceptual understanding of cross-compilation and toolchains
  • Basic Linux usage experience (preferred but not mandatory), such as executing standard terminal commands like cd, ls, cp, mkdir, and chmod

Note: Extensive Linux knowledge is not required, as the course begins with the fundamentals of Embedded Linux.

Target Audience

  • Embedded engineers proficient in Embedded C++ who are new to Linux on embedded platforms
  • Engineers preparing to work on Linux-based systems using i.MX6 or i.MX9 hardware
  • Team members looking to build custom Linux images, configure kernels, manage BSPs, and deploy solutions on embedded boards

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories