Get in Touch

Course Outline

Introduction to OpenBMC

  • Understanding what a Baseboard Management Controller (BMC) is
  • History of the OpenBMC project and Linux Foundation governance
  • Supported platforms: x86, ARM, and OpenPOWER
  • Overview of the OpenBMC software stack

OpenBMC Architecture

  • Phosphor application framework and D-Bus
  • Systemd integration and service management
  • Entity Manager and inventory management
  • Key repositories and component relationships

Development Environment Setup

  • Installing dependencies on Ubuntu
  • Leveraging Docker containers for reproducible builds
  • Cloning the OpenBMC source tree
  • Configuring Gerrit for code review

Yocto and BitBake Basics

  • OpenEmbedded layer structure: meta-phosphor, meta-aspeed
  • Understanding recipes, bbappend, and configuration files
  • Building a reference image for QEMU
  • Working with local.conf and bblayers.conf

Building Your First BMC Image

  • Selecting a machine target
  • Executing bitbake obmc-phosphor-image
  • Interpreting the build output layout
  • Flashing the image to real hardware or QEMU

Customization and Configuration

  • Adding new machine layers
  • Customizing D-Bus interfaces using YAML descriptors
  • Entity Manager JSON configuration for new hardware
  • Modifying systemd service files

Debugging and Troubleshooting

  • Addressing build failures and debugging bitbake
  • Utilizing journalctl on the BMC
  • SSH access and console debugging
  • Common porting issues and solutions

Recent Updates and Modern Practices

  • Migration to C++ sdbusplus bindings
  • New web UI (Vue.js) and bmcweb Redfish server
  • Modern testing frameworks and CI integration

Requirements

  • Foundational knowledge of Linux system administration
  • Familiarity with embedded systems concepts
  • Proficiency with Git and version control

Target Audience

  • Embedded firmware engineers
  • System administrators handling server hardware
  • DevOps engineers responsible for data center infrastructure
 14 Hours

Testimonials (3)

Related Categories