A BMC is a specialized controller embedded in servers. It often comes in the form of a system-on-chip (SoC), with its own CPU, memory, and storage and lots of IO. A BMC connects to sensors to read environmental conditions and to fans to control temperature. It also provides other system management functions, including remote power control, serial over LAN, and monitoring and error logging of the server host CPU and memory. By itself, BMC hardware is a computer system. Compared with modern computer systems, the hardware resources in a BMC are very limited. A slow CPU, less than 32 MB flash as storage, and less than 256 MB RAM are common in BMC hardware. Because of this, OpenBMC is designed as a complete Linux distribution, with flexibility to be customized to support different BMC SoC or boards. The OpenBMC image includes a bootloader (u-boot), a Linux kernel, open source packages, and board-specific packages: - Both the bootloader and the Linux kernel include various hardware drivers for the BMC SoC, including an i2c driver, USB driver, PWM driver, and SPI driver. - The open source packages include common applications such as BusyBox, i2c-tools, lm-sensors, OpenSSH, and Python. - The board-specific packages include initialization scripts and tools for a particular board. For example, it includes a tool to dump asset info from the EEPROM and a fan-controller daemon to control the fan speed based on environment readings. Please see https://code.facebook.com/posts/1601610310055392/introducing-openbmc-an-open-software-framework-for-next-generation-system-management/ for more information.

Git repository

https://github.com/facebook/openbmc web repo

Last commit: 6 years, 9 months ago (master branch)



The meta-openbmc layer depends upon:

Recipe name Version Description
at93cx6-util 0.1 Utilities for AT93Cx6 EEPROM
bcm5396-util 0.1 Utilities for BCM5396
bitbang 0.1 Device driver using GPIO bitbang
bottle 0.12.7 Bottle Web Framework
cfg-util 0.1 Configuration Utility
cherryPy 3.8.0 CherryPy HTTP framework
conf-util 0.1 Tool to restore configure
consoled 0.1 Serial Buffer
cpldupdate 0.1 CPLD Update Utilities
fan-ctrl 0.1 Fan controller
fan-util 0.1 Fan Utility
flashrom 0.9.8 flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips
fruid 0.1 IPMI FRUID Utilities
fscd 0.1 Configurable fan controller
healthd 0.1 Health Monitoring Daemon
ipmbd 0.1 ipmbd tx/rx daemon
ipmid 0.2 IPMI Daemon
jbi 2.2 ALTERA Jam STAPL Byte-Code Player
kernel-module-i2c-dev-sysfs 0.1 Wedge100 i2c device library
libcpldupdate-dll-echo 0.1 CPLD update echo DLL
libcpldupdate-dll-gpio 0.1 CPLD update GPIO DLL
libcpldupdate-dll-helper 0.1 CPLD update DLL helper
libedb 0.1 Embedded Database Library
libestr 0.1.10 some essentials for string handling (and a bit more)
libfastjson 0.99.2 A fork of json-c modified to be smaller, faster, and slightly less compliant
libfruid 0.1 IPMI FRUID Library
libgpio 0.1 GPIO access library
libipmb 0.1 IPMB Client Library
libipmi 0.2 IPMI Client Library
libkv 0.1 KV Store Library
liblog 0.1 Log util functions
liblogging 1.0.5 An easy to use logging library.
libsdr 0.1 SDR Library
linux-aspeed Linux Kernel for Aspeed
lldp-util 0.1 LLDP Utility
log-util 0.1 Log Utility
mTerm 0.1 Terminal Multiplexer
openbmc-gpio 0.1 OpenBMC GPIO utilies
openbmc-utils 0.1 OpenBMC Utilities
passwd-util 0.1 Tool to BMC's password
power-util 0.1 Power Utility
python-ply 3.8 Python ply: PLY is yet another implementation of lex and yacc for Python
rest-api 0.2 Rest API Daemon
rest-api 0.1 Rest API Daemon
rsyslog 8.18.0 Rsyslog is an enhanced multi-threaded syslogd
sensor-mon 0.1 Sensor Monitoring Daemon
sensor-util 0.1 Sensor Utility
spatula 0.1 Configure the BMC
stress 1.0.4 Deliberately simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system.
stress-ng 0.05.21 stress-ng will stress test a computer system in various selectable ways. It was designed to exercise various physical subsystems of a computer as well as the various operating system kernel interfaces.
tpm-tools 1.3.8 The tpm-tools package contains commands to allow the platform administrator the ability to manage and diagnose the platform's TPM.
trousers 0.3.13 TrouSerS - An open-source TCG Software Stack implementation.
watchdog-ctrl 0.1 Watchdog control utilities.