Get in Touch

Course Outline

Introduction to OpenBMC

  • Understanding Baseboard Management Controllers (BMCs)
  • The history of the OpenBMC project and its governance under the Linux Foundation
  • Supported hardware platforms: x86, ARM, and OpenPOWER
  • An overview of the OpenBMC software stack

OpenBMC Architecture

  • The Phosphor application framework and D-Bus messaging
  • Integration with Systemd for service management
  • Entity Manager functionalities and inventory tracking
  • Key repositories and inter-component relationships

Setting Up the Development Environment

  • Installing necessary dependencies on Ubuntu
  • Leveraging Docker containers to ensure reproducible builds
  • Cloning the OpenBMC source code repository
  • Configuring Gerrit for efficient code review processes

Essentials of Yocto and BitBake

  • Navigating the OpenEmbedded layer structure: meta-phosphor, meta-aspeed
  • Comprehending recipes, bbappend files, and configuration settings
  • Constructing a reference image for QEMU emulation
  • Managing local.conf and bblayers.conf files effectively

Constructing Your Initial BMC Image

  • Selecting an appropriate machine target
  • Executing the bitbake command for obmc-phosphor-image
  • Interpreting the build output directory structure
  • Flashing the generated image onto physical hardware or QEMU instances

Customization and Configuration Strategies

  • Introducing new machine layers into the system
  • Tailoring D-Bus interfaces using YAML descriptors
  • Configuring Entity Manager JSON for integration with new hardware
  • Modifying systemd service files as required

Debugging and Troubleshooting Techniques

  • Troubleshooting build failures and debugging with bitbake
  • Utilizing journalctl logs on the BMC system
  • Establishing SSH access and performing console-level debugging
  • Addressing common porting challenges and their solutions

Recent Updates and Modern Practices

  • Transitioning to C++ sdbusplus bindings for improved performance
  • Exploring the new web UI (Vue.js) and the bmcweb Redfish server
  • Implementing modern testing frameworks and continuous integration (CI) workflows

Requirements

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

Target Audience

  • Embedded firmware engineers
  • System administrators managing server hardware
  • DevOps engineers overseeing data center infrastructure
 14 Hours

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories