Get in Touch

Course Outline

Introduction to OpenBMC

  • Definition and function of a Baseboard Management Controller (BMC)
  • History of the OpenBMC project and governance by the Linux Foundation
  • Supported hardware platforms: x86, ARM, and OpenPOWER
  • Summary of the OpenBMC software stack

OpenBMC Architecture

  • The Phosphor application framework and D-Bus communication
  • Integration with systemd for service management
  • Role of the Entity Manager in inventory management
  • Key repositories and their inter-component relationships

Setting Up the Development Environment

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

Basics of Yocto and BitBake

  • Structure of the OpenEmbedded layer, including meta-phosphor and meta-aspeed
  • Understanding recipes, bbappend files, and configuration settings
  • Constructing a reference image for QEMU
  • Managing local.conf and bblayers.conf files

Creating Your First BMC Image

  • Choosing a machine target
  • Executing the command 'bitbake obmc-phosphor-image'
  • Navigating the build output directory structure
  • Flashing the generated image onto real hardware or QEMU

Customization and Configuration

  • Incorporating new machine layers
  • Tailoring D-Bus interfaces using YAML descriptors
  • Configuring the Entity Manager via JSON for new hardware support
  • Modifying systemd service files as needed

Debugging and Troubleshooting

  • Addressing build failures and debugging with bitbake
  • Utilizing journalctl on the BMC
  • Accessing via SSH and performing console debugging
  • Common porting challenges and their solutions

Recent Updates and Modern Practices

  • Transition to C++ sdbusplus bindings
  • Introduction of the new web UI (built with Vue.js) and the bmcweb Redfish server
  • Modern testing frameworks and Continuous Integration (CI) integration

Requirements

  • Foundational knowledge of Linux system administration
  • Knowledge of embedded systems principles
  • Proficiency in using Git and version control systems

Target Audience

  • Firmware engineers working with embedded systems
  • System administrators managing server hardware
  • DevOps engineers responsible for data center infrastructure
 14 Hours

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories