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.