D-Bus interface

A commonly requested feature for the GPIO character device was state persistence after releasing the lines (as a kernel feature) or providing a central authority (in user-space) that would be in charge of keeping the lines requested and in a certain state (similarily to how the sysfs ABI works). GPIO D-Bus API has been provided to address this requirement. We define an interface covering the majority of the GPIO chardev’s functionality and implement it from both the server and client sides in the form of the gpio-manager daemon and the gpiocli command-line utility for talking to the manager. It enables relatively efficient, asynchronous control of GPIO lines, offering methods for configuring, monitoring, and manipulating GPIOs.

Note

DBus support can be built by passing --enable-dbus to configure. The daemon is bundled with a systemd unit file and an example configuration file for the io.gpiod1 interface that allows all users to access basic information about the GPIOs in the system but only root to request lines or change their values.