Skip to content

sdnvx/opendmi

OpenDMI

OpenDMI is a cross-platform, commercial-grade DMI/SMBIOS framework, focused on functionality and ease of use. It provides direct access to all of the DMI/SMBIOS data, command line tools, bindings for major programming languages and even more.

The project is under active development, see ROADMAP and CHANGELOG for details.

Highlights

  • Platform-agnostic access to DMI/SMBIOS structures.
  • Full SMBIOS support up to version 3.9.
  • Bindings for C, C++, Python, Go and Rust languages.
  • Modular extensions for handling OEM-specific structures.
  • JSON, XML and YAML output support for automation purposes.
  • Works on Linux, MacOS, BSD and Windows platforms.
  • Small footprint, no external dependencies.

Components

  • opendmi - Command line tool to query DMI/SMBIOS data
  • opendmi-dbus - D-bus service providing access to DMI/SMBIOS data
  • libopendmi - C library providing direct interface to DMI/SMBIOS
  • libopendmi-go - Go bindings for libopendmi
  • libopendmi-python - Python bindings for libopendmi
  • libopendmi-rust - Rust bindings for libopendmi
  • libopendmi++ - Pure C++ version of libopendmi

Building from sources

Prerequisites

  • GCC, CLang or MSVC compiler
  • CMake 3.30 or newer
  • AsciiDoctor (used to generate documentation and man pages)
  • CppCheck (optional)

Dependencies

opendmi

  • libxml2 — optional, only when XML support is enabled
  • libyaml — optional, only when YAML support is enabled

libopendmi

  • None

Configuring

Use the following command to configure OpenDMI build:

$ ./build.sh configure

This produces a debug build by default. Optimization isn't enabled, and debug assertions are included. Pass --release to configure a release build:

$ ./build.sh configure --release

For advanced configuration options, see usage:

$ ./build.sh --help

Building

Use the following command to build OpenDMI:

$ ./build.sh build

Testing

OpenDMI uses the CTest framework for testing. You can simply run it to ensure that build was successful:

$ ./build.sh test

Contributing

Please feel free to test it and create create bug reports or feature requests on GitHub. You can also help the project by sending SMBIOS dumps to the authors. To get the dump you can use the following command:

$ dmidecode --dump-bin <filename>

Authors

Licensing

OpenDMI is licensed under BSD 3-clause license. See LICENSE for details.

About

Cross-platform DMI/SMBIOS framework

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •