Andrew Geissler andrewg@us..com What is a BMC?

▶ BMC – Baseboard Management Controller ▶ Separate uproc (eg. AST 2500) with dedicated RAM and Flash ▶ Provides ▶ System Power/thermal control ▶ Out of Band management ▶ IPMI, REST, etc ▶ Data collection ▶ Debug ▶ GUI and Command line ▶ Interfaces to Host/OCC ▶ System error logging ▶ Based on OpenEmbedded technologies built via Yocto ▶ Embedded Linux stack ▶ Linux Kernel 4.10….4.18, Yocto 2.3…2.6, python, SSH ▶ Applications communicate via D-Bus ▶ Users communicate via REST, IPMI and GUI ▶ Reports externally to management entity ▶ No customer network functional interaction What is the OpenBMC Project

Free open source software management Linux distribution designed for the embedded environment … OpenPOWER Eco-system Enablement Industry Collaboration Quality Solutions Reduce Redundant Effort Openness -- provides proof of security

Part of What is OpenBMC

▶ 100% compatible with OpenPOWER Hostboot/Opal/OCC

▶ Aka BIOS ▶ https://github.com/open-power/op-build

▶ Can simply be a reference implementation

▶ Currently runs on…

▶ Barreleye, S822LC, S822LC For HPC, P8 Reference ▶ Witherspoon -- P9 AC922LC Power AI and CORAL ▶ P9 reference boards ▶ AST2400 and AST2500 BMC hardware Core Infrastructure of the OpenBMC Project

Control the Functions in your OpenBMC… ▶ Built on Yocto-Linux ▶ YAML/XML input for system configuration

Infrastructure at the ready ▶ Process management Systemd ▶ IPC via D-Bus ▶ External Interfaces via REST, IPMI, GUI ▶ Journaling for Trace/debug ▶ Code update ▶ Code stack security OpenBMC development customizations

Data Driven approach

▶ Recipes for pulling in desired functions - Modularity

▶ Hardware configuration

▶ IPMI entity IDs and Sensor Definitions

▶ Define environmental limits

▶ Human readable properties Views of Community Success

▶ Core enables industry to produce solutions

▶ Feature advances come from everywhere

, IBM, , , , etc

▶ System management software supports OpenBMC

▶ Diverse architectures can be managed similarly in the datacenter

▶ Developer Training and Full Devops Environment

▶ Prebuilt images (QEMU, various platforms) with automated Build Verification

▶ Use of Gerrit for Code Reviews

▶ Use of QEMU Simulation OpenBMC Community Links

Code: Contacts:

https://github.com/openbmc ▶ Mail: [email protected]/listinfo/openbmc IRC: #openbmc on freenode.net Continuous Testing: ▶ Riot: #openbmc:matrix.org https://openpower.xyz Servers provided by Rackspace, IBM, Google, ITRenew OpenBMC Tutorials:

▶ https://github.com/openbmc/docs/development Code Reviews: ▶ Development Environment Setup ▶ Hello World with the SDK

http://gerrit.openbmc-project.xyz ▶ Web UI Customization

▶ Creating a new System Monday Community Call: https://github.com/openbmc/openbmc/wiki/Wee kly-Community-Telecon#access-information Backup What is D-Bus

§ Inter-Process Communication (IPC) mechanism § Well defined interfaces between applications/processes • Modularity, Encapsulation, Abstraction

▶ Rapid community collaboration

▶ Rapid Prototyping

▶ Bindings for C/C++, Python, etc

▶ Complete IPC integration with systemd

Without D-Bus With D-Bus User Interface – Systems Overview

▶ Client Rendered

▶ HTML5

▶ No java User Interface - Login Prebuilt images Automated Build Verification

• Dedicated Test Development Team • Every commit… tested Code Reviews Simulation (QEMU) == No Hardware Required

AST2400 and AST2500 supported