Andrew Geissler andrewg@us.ibm.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 Linux Foundation 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
▶ Google, IBM, Facebook, Microsoft, Intel, 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