Get in Touch
 Duration 14 hours

Course Outline

Fundamentals of OpenBMC

  • Defining the role of a Baseboard Management Controller (BMC)
  • The evolution of the OpenBMC project and its governance by the Linux Foundation
  • Supported architectures: x86, ARM, and OpenPOWER
  • High-level view of the OpenBMC software stack

Architectural Deep Dive

  • The Phosphor application framework and D-Bus communication
  • Integration with Systemd for service oversight
  • Role of the Entity Manager and hardware inventory management
  • Interdependencies among key repositories and components

Establishing the Development Environment

  • Configuring dependencies on Ubuntu
  • Leveraging Docker containers for consistent, reproducible builds
  • Retrieving the OpenBMC source code
  • Setting up Gerrit for collaborative code review

Yocto and BitBake Essentials

  • Exploring the OpenEmbedded layer structure, including meta-phosphor and meta-aspeed
  • Interpreting recipes, bbappend mechanisms, and configuration files
  • Generating a reference image for QEMU
  • Managing local.conf and bblayers.conf settings

Compiling Your Initial BMC Image

  • Choosing an appropriate machine target
  • Executing the bitbake obmc-phosphor-image command
  • Analyzing the structure of the build output
  • Flashing the generated image to physical hardware or QEMU

Customization and Configuration Strategies

  • Introducing new machine layers
  • Adapting D-Bus interfaces via YAML descriptors
  • Configuring Entity Manager JSON for new hardware components
  • Tuning systemd service definitions

Debugging and Problem Resolution

  • Diagnosing build failures and utilizing bitbake debugging tools
  • Inspecting system logs via journalctl on the BMC
  • Performing debugging through SSH and console access
  • Addressing common porting challenges and their resolutions

Current Trends and Modern Best Practices

  • Transitioning to C++ sdbusplus bindings
  • Implementing the new web UI (Vue.js) and bmcweb Redfish server
  • Integrating modern testing frameworks with CI pipelines

Requirements

  • Foundational knowledge of Linux system administration
  • Understanding of embedded systems principles
  • Proficiency with Git and version control systems

Target Audience

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

Number of participants


Price per participant (excl. VAT)

Testimonials (4)

Upcoming Courses

Related Categories