a reference bmc
TRANSCRIPT
A reference BMC
Chris AustenPower Systems [email protected]
DevilsintheDetails
• Wespendalotof
2
3
4
WhatisaBMC?
• BMC– BaseboardManagementController• SystemOnaChip• ManagesProcs,DIMMs,Fans,PowerSupplies,etc• Reportsexternallytomanagement software• DataandManagementseparateoperators
11/16/16 5
WhatisOpenBMC
• Providessimplifiedmanagementof:• Environment• Inventory• Sensorsandeventlogs
• BasedonOpenEmbedded technologiesbuiltviaYocto• EmbeddedLinuxstack• LinuxKernel4.6,Yocto 2.1,python, SSH
• ApplicationscommunicateviaD-Bus• UserscommunicateviaREST
11/16/16 6
WhatisOpenBMC
• 100%compatiblewithOpenPOWER Hostboot/Opal• AkaBIOS• https://github.com/open-power/op-build
• Cansimplybeareference implementation
• Currentlyrunson…• AST2400andAST2500BMChardware
11/16/16 7
WhattheheckisD-Bus
WithoutD-Bus
11/16/16 8
WithD-Bus
inter-processcommunication(IPC)andremoteprocedurecall(RPC)mechanism thatallowscommunicationbetweenmultiplecomputerprograms(that is,processes)concurrentlyrunningonthesamemachine
FeaturesofOpenBMC
• Dbus istheheart• SwapouthardwareandUserInterfaces• Bindings forC/C++,pythonandmore
11/16/16 9
ManagementController
X
ManagementController
Y
Kernel
Apps
DBusSensors REST
OpenBMC Dbus InterfaceExamples
• Attachaninterface,getthebenefits
• Org.openbmc.Service• Obtaininformationabouttheservice• “status”,“information”
• Org.openbmc.delete• TheParentinterface isdelete’able
• Org.openbmc.InventoryItem• Properties forall inventory• “Fault”,“Present”
11/16/16 10
Applications
11/16/16 11
Chassis_control
Powercontrol
Hardware
ChassisIdentify OCC
gpio LED
Sensormgmt andcache
AmbienttempFan(n) IPMI
HoststatusBoot
Progress
Inventory
FRU(n)
OCCI2C
I2C host
EventLogDB
FanControl
REST
C/C++ Python
ParameterDB
BMC Flash
BIOS Flash
NVRAM
PowerButton
Flashcontrol
SystemPolicyAgent
RTC
BMCEEPROMFRUformat
I2C
ConnectviaREST
• https://github.com/openbmc/docs/blob/master/rest-api.md
• <uri>Showpropertiesofthisuri
• <uri>/Showchildren
• <uri>/listRecursivelyshowchildren
• <uri>/enumerateRecursivelyshowchildrenuri’swithallproperties
• <uri>/attr/<property>Set/Getsingleproperty
• <uri>/action/<method>Callamethod(POST/PUT)
• <uri>/schemaShowthemethodsandproperties
11/16/16 12
Letsseesomeexamples!!!
• Login• curl -c cjar -b cjar -k -H "Content-Type: application/json" -X POST https://<ip>/login -d "{\"data\": [ \"root\", \"0penBmc\" ] }"
• Temperaturesok?• curl -c cjar -b cjar -k https://<ip>/org/openbmc/sensors/temperature/ambient
• PowerOntheServer• curl -c cjar -b cjar -k -H "Content-Type: application/json" -X POST https://<ip>/org/openbmc/control/chassis0/action/powerOn -d "{\"data\": [] }"
11/16/16 13
Whereisthiscode?
• Github repository:• https://github.com/openbmc
• GetStarted- Readme• https://github.com/openbmc/openbmc
• Schema• https://github.com/openbmc/docs/blob/master/dbus-interfaces.md
11/16/16 14
NoHardwareRequired
• OpenBMC simulationdoesnotrequirehardware• Usefulfornonhardwarespecificapplications.• EventLogs,userid creation/policies• RESTinteractions• EarlyPOCdev
11/16/16 15
AutomatedBuildVerification
11/16/16 16
§ https://github.com/openbmc/openbmc• Codeisavailabletoeveryone
§ https://openpower.xyz• AutomatedJenkinsserver• Everycommit…tested
Interfaceprogression
OPAL
HB
OCC
IPMI
IPMI
IICVGA SSHConsole
KVMOS
OSBMCREST
OpenBMC
OPAL KVMOS
OS
HB
OCC
IPMI
IPMI
IICVGA
BMCSPNEXT
SSHConsole
REST
OpenBMC v2
IPMIHTTP
Featureswearedeveloping
• ErrorandTraceLogs• CodeUpdate• SLPSupport• OpenFSI debugsupport• Virtualizedinterfacetohost• “outofband”IPMI• UserInterfaceß lookingforSponsorUsers
JoinUs
• Possibleareasfeatureenhancements…• OpenStackIronic• Redfish• WebUserInterface• RemoteIPMI• EnergyScaleutilities• Designsbeyond thedatacenter• QEMUenhancementsforboard• Documentation
• SponsorUsersneeded
11/16/16 19
ThankYou
• ChrisAusten• [email protected]
• Code:• https://github.com/openbmc
• IRC• IRCFreenode.net#openbmc
11/16/16 20