Get in Touch

Course Outline

Introduction to OpenBMC

  • Definition and function of a Baseboard Management Controller (BMC).
  • History of the OpenBMC project and its governance under 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.
  • Systemd integration and service management mechanisms.
  • Entity Manager and inventory management features.
  • Key repositories and their component relationships.

Development Environment Setup

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

Yocto and BitBake Essentials

  • Structure of OpenEmbedded layers: meta-phosphor and meta-aspeed.
  • Understanding recipes, bbappend files, and configuration settings.
  • Building a reference image for QEMU simulation.
  • Working with local.conf and bblayers.conf configuration files.

Constructing Your First BMC Image

  • Selecting an appropriate machine target.
  • Executing bitbake obmc-phosphor-image.
  • Analyzing the build output directory structure.
  • Flashing the image onto real hardware or a QEMU instance.

Customization and Configuration

  • Incorporating new machine layers.
  • Tailoring D-Bus interfaces using YAML descriptors.
  • Configuring Entity Manager 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 for logs.
  • SSH access and console-based debugging techniques.
  • Common porting challenges and their solutions.

Recent Updates and Modern Practices

  • Migration to C++ sdbusplus bindings.
  • Introduction of the new web UI (Vue.js) and bmcweb Redfish server.
  • Implementation of modern testing frameworks and CI integration.

Requirements

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

Audience

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

Number of participants


Price per participant

Testimonials (4)

Upcoming Courses

Related Categories