Learning Paths
Not sure where to start? Choose a learning path based on your experience level or role.
Table of Contents
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.