gBMCWeb is Google's Redfish server with several added features on top of OpenBMC BMCWeb.
To enable gBMCWeb for your machine. Include the meta-gbmc-staging layer, and add the following config to your build (e.g., MACHINE.conf).
# Use gBMCWeb DISTRO_FEATURES:append = " gbmcfork"
The following is an alphabetical list of added features.
Google enabled multi-threading, which turns the single-threaded process into a fully multithreaded daemon, greatly improved performance for GET requests, especially on multi-core (4+) BMCs.
See go/multithread-gbmcweb for details.
Enable it by adding bmcweb_multithread to your DISTRO_FEATURES.
WIP
We pre-ported some features from https://github.com/CodeConstruct/bmcweb for OOB NVMe storage management:
Our contractor CodeConstruct will upsteam these features to OpenBMC.
Google has built a plugin system for BMCWeb to support machine specific features or behaviors. Please see Plugins.md for detailed user guide.
# switch to the folder:
cd /opt/bmc/gbmc/build/${MACHINE}/workspace/sources/bmcweb
# create a volume for the build folder:
docker volume create build_volume
# pull the container from:
docker pull gcr.io/gbmc-builders/openbmc-ubuntu-unit-test:latest
# run the openbmc docker:
docker run -v `pwd`:/workspace -v build_volume:/workspace/_build -it gcr.io/gbmc-builders/openbmc-ubuntu-unit-test:latest bash
# build (within the running container ^):
cd /workspace && meson setup _build && ninja install -C _build && ninja test -C _build
For more information you can follow go/build-gbmcweb-workstation to find the steps on how to build and run unit tests for gBMCWeb locally.