Get in Touch

Course Outline

Yocto Project Foundations for OpenBMC

  • Overview of the Yocto Project and OpenEmbedded.
  • OpenBMC-specific layers: meta-phosphor, meta-aspeed, meta-arm.
  • Understanding layer priorities and dependencies.
  • poky, oe-core, and OpenBMC distribution policy.

BitBake Deep Dive

  • Recipe syntax and structure.
  • Tasks, dependencies, and variable flags.
  • Inheritance mechanisms and bbclass files.
  • Debugging recipes using devtool.

Machine and BSP Layers

  • Creating a new machine configuration.
  • Device tree integration for ARM BMC SoCs.
  • Customizing kernel recipes.
  • Configuring U-Boot for BMC boot processes.

Customizing Images

  • Image recipes and FEATURES flags.
  • Adding and removing packages.
  • Managing partition layouts and flash sizes.
  • Integrating initramfs and systemd.

Package Management

  • Writing recipes for custom C++ sdbusplus services.
  • Packaging Python applications.
  • Deploying systemd unit files.
  • Ensuring license compliance and managing COPYING files.

Build Optimization

  • Configuring the shared state cache (sstate).
  • Utilizing pre-mirrors and local downloads.
  • Tuning parallel build processes.
  • Managing build host resources.

SDK and Cross-Compilation

  • Generating the OpenBMC SDK.
  • Cross-compiling applications outside of bitbake.
  • Using the devtool add/modify workflow.
  • Testing binaries on target hardware.

Layer Maintenance and Upgrades

  • Updating layer dependencies.
  • Handling upstream Yocto releases.
  • Backporting patches and security fixes.
  • Implementing version pinning strategies.

Requirements

  • Proficiency with the Linux command line and shell scripting.
  • Fundamental knowledge of embedded Linux build systems.
  • Experience with Git and standard Git workflows.

Audience

  • Embedded Linux developers.
  • Yocto/OpenEmbedded practitioners.
  • Firmware engineers transitioning to OpenBMC.
 14 Hours

Testimonials (5)

Upcoming Courses

Related Categories