Learning Paths

Not sure where to start? Choose a learning path based on your experience level or role.

Table of Contents

  1. Skill-Based Paths
    1. Beginner Path
    2. Intermediate Path
    3. Advanced Path
  2. Role-Based Paths
    1. Software Developer Path
    2. System Operator Path
    3. Hardware Engineer Path
    4. RAS / Validation Engineer Path
    5. Security Engineer Path
  3. Not Sure Which Path?

Skill-Based Paths

Choose based on your OpenBMC experience level.

Beginner Path

For: New to OpenBMC, want to understand fundamentals and get a working environment.

Prerequisites: Basic Linux command line, some C/C++ familiarity.

# Guide What You’ll Learn
1 Introduction What OpenBMC is and why it matters
2 Environment Setup Set up your development machine
3 First Build Build and run OpenBMC in QEMU
4 OpenBMC Overview Understand the system architecture
5 D-Bus Guide Learn the core communication mechanism
6 State Manager Understand BMC and host state management
7 Systemd Boot Ordering How services start and depend on each other

Next Steps: Continue to the Intermediate path, or explore Core Services based on your interests.


Intermediate Path

For: Comfortable with OpenBMC basics, ready to work with core services and interfaces.

Prerequisites: Completed Beginner path or equivalent experience.

# Guide What You’ll Learn
1 D-Bus Sensors Expose sensor data via D-Bus
2 Entity Manager Dynamic hardware configuration
3 GPIO Management Monitor and control GPIO signals
4 I2C Device Integration Add I2C devices to device tree
5 Power Management Control host power states
6 Fan Control Thermal management and fan policies
7 Redfish Guide Modern REST API for BMC management
8 IPMI Guide Legacy management interface
9 Devtool Workflow Advanced recipe development with devtool

Next Steps: Continue to the Advanced path, or dive into specific interfaces and services.


Advanced Path

For: Experienced OpenBMC developers ready for complex topics and platform porting.

Prerequisites: Solid understanding of D-Bus, services, and interfaces.

# Guide What You’ll Learn
1 MCTP/PLDM Guide Platform-level data model communication
2 Firmware Update BMC and host firmware update mechanisms
3 Secure Boot & Signing Image signing and hardware root of trust
4 Unit Testing GTest/GMock for OpenBMC code
5 Robot Framework Integration and system testing
6 Performance Optimization Optimize for constrained BMC environments
7 Porting Reference Complete platform porting guide
8 Machine Layer Create Yocto machine layer
9 Device Tree Configure BMC hardware in DTS

Next Steps: Explore specialized topics like SPDM, eSPI, multi-host, or vendor-specific debug tools.


Role-Based Paths

Choose based on your job function or project goals.

Software Developer Path

For: Developers writing OpenBMC services, daemons, or applications.

Focus: D-Bus programming, service development, testing.

# Guide What You’ll Learn
1 Environment Setup Set up your development machine
2 First Build Build and run in QEMU
3 D-Bus Guide Core IPC mechanism
4 Custom D-Bus Services Build your own D-Bus service with sdbus++
5 D-Bus Sensors Service implementation patterns
6 Entity Manager Configuration-driven services
7 Devtool Workflow Advanced recipe development with devtool
8 Unit Testing GTest/GMock for your code
9 Logging Guide phosphor-logging patterns
10 Gerrit Contribution Submit patches upstream via Gerrit

System Operator Path

For: Operators managing BMC-enabled servers, using IPMI/Redfish for administration.

Focus: Management interfaces, user management, network configuration.

# Guide What You’ll Learn
1 Introduction OpenBMC capabilities overview
2 OpenBMC Overview System architecture
3 IPMI Guide ipmitool commands and operations
4 Redfish Guide REST API for modern management
5 Redfish Events & Telemetry Event subscriptions and metric reports
6 WebUI Guide Browser-based management
7 User Manager User accounts and LDAP
8 LDAP Integration LDAP/Active Directory authentication
9 Network Guide Network configuration
10 Console Guide Serial-over-LAN access

Hardware Engineer Path

For: Engineers porting OpenBMC to new platforms or integrating BMC hardware.

Focus: Platform porting, device tree, hardware configuration.

# Guide What You’ll Learn
1 Environment Setup Development environment
2 First Build Build for reference platform
3 Porting Reference Complete porting overview
4 Machine Layer Yocto machine configuration
5 Device Tree DTS for your hardware
6 I2C Device Integration Add I2C devices and drivers
7 Flash Layout Optimization SPI flash partitioning and image sizing
8 U-Boot Bootloader customization
9 Entity Manager Advanced Hardware configuration files
10 Verification Testing your port

RAS / Validation Engineer Path

For: Engineers validating platform reliability, error handling, and crash dump mechanisms.

Focus: Error injection, crash dump analysis, POST code monitoring, debug tools.

# Guide What You’ll Learn
1 Environment Setup Development environment
2 OpenBMC Overview System architecture
3 PECI Thermal Monitoring CPU thermal interface and PECI commands
4 Intel ASD/ACD Debug access, crash dumps, error injection
5 Debug Dump Collection BMC diagnostic dump collection
6 POST Code Monitoring Boot progress tracking and diagnostics
7 Logging Guide Event logs and SEL entries
8 Robot Framework Automated RAS test suites

Security Engineer Path

For: Engineers implementing and validating BMC security features.

Focus: Secure boot, image signing, authentication, attestation.

# Guide What You’ll Learn
1 Environment Setup Development environment
2 OpenBMC Overview System architecture
3 Secure Boot & Signing Image signing and hardware root of trust
4 SPDM Guide Device attestation and measurement
5 Certificate Manager TLS/SSL certificate management
6 User Manager Accounts and privilege roles
7 LDAP Integration Enterprise directory authentication
8 SSH Security SSH hardening and access control

Not Sure Which Path?

If you want to… Start with
Learn OpenBMC from scratch Beginner Path
Write OpenBMC code Software Developer Path
Manage servers with BMC System Operator Path
Port to new hardware Hardware Engineer Path
Validate RAS / error handling RAS / Validation Engineer Path
Implement BMC security Security Engineer Path
Understand a specific topic Browse by section

These paths are suggestions, not requirements. Feel free to skip guides you already know or explore topics in any order that suits your learning style.


Back to top

OpenBMC Guide Tutorial is not affiliated with the OpenBMC project. Content is provided for educational purposes.

This site uses Just the Docs, a documentation theme for Jekyll.