Get in Touch

Course Outline

Introduction to OpenBMC

  • Definition and role 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

  • Phosphor application framework and D-Bus communication.
  • Systemd integration and service management protocols.
  • Entity Manager functionality and inventory management.
  • Key repositories and the relationships between components.

Setting Up the Development Environment

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

Fundamentals of Yocto and BitBake

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

Building Your First BMC Image

  • Selecting the appropriate machine target.
  • Executing the bitbake obmc-phosphor-image command.
  • Interpreting the layout of build outputs.
  • Flashing the generated image onto real hardware or QEMU instances.

Customization and Configuration Techniques

  • Incorporating new machine layers.
  • Defining custom D-Bus interfaces using YAML descriptors.
  • Configuring Entity Manager JSON for new hardware components.
  • Modifying systemd service files to suit specific needs.

Debugging and Troubleshooting Strategies

  • Troubleshooting build failures and using bitbake diagnostic tools.
  • Utilizing journalctl for BMC logs.
  • Establishing SSH access and performing console debugging.
  • Addressing common porting challenges and their solutions.

Recent Updates and Modern Practices

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

Requirements

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

Target Audience

  • Embedded firmware engineers.
  • 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