Get in Touch

Course Outline

Introduction to OpenBMC

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

OpenBMC Architecture

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

Setting Up the Development Environment

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

Essentials of Yocto and BitBake

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

Building Your First BMC Image

  • Selecting the appropriate machine target
  • Executing the bitbake command for obmc-phosphor-image
  • Interpreting the layout of build outputs
  • Flashing the generated image to physical hardware or QEMU

Customization and Configuration Techniques

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

Debugging and Troubleshooting Strategies

  • Resolving build failures and debugging bitbake processes
  • Utilizing journalctl on the BMC
  • Accessing via SSH and performing console debugging
  • Addressing common porting issues and their solutions

Recent Updates and Modern Best Practices

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

Requirements

  • Fundamental knowledge of Linux system administration
  • Basic familiarity with embedded systems concepts
  • Practical experience using Git and version control systems

Target Audience

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

Number of participants


Price per participant

Testimonials (4)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories