mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-09-04 00:33:24 +00:00
Many users are reluctant to use libgpiod instead of the deprecated /sys/class/gpio interface. The gpiod-sysfs-proxy project aims at making the transition easier by implementing a compatibility layer in user-space using FUSE and python3-gpiod. This way we can eat the cookie by disabling the sysfs ABI and have the users have it too by sticking to their existing scripts. The project itself is a very simple setuptools-based python package but the recipe is quite complex due to comprehensive distro integration. By default we use /run/gpio as mountpoint. For full backward compatibility with the kernel interface, the user must explicitly add the 'sys-class-mount' switch to PACKAGECONFIG. We do this because, depending on whether CONFIG_GPIO_SYSFS Kconfig option is enabled, /sys/class/gpio will either be non-empty or not exist at all. In the latter case, we need to somehow create the /sys/class/gpio and, since user-space is not allowed to mkdir() inside sysfs, we use overlayfs for that. As this is rather non-standard, we want the user to be aware of this. We support both systemd and sys V init managers. We also provide a ptest package which uses an external gpio-sysfs-compat-tests script. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 lines
516 B
SYSTEMD
17 lines
516 B
SYSTEMD
# SPDX-License-Identifier: CC0-1.0
|
|
# SPDX-FileCopyrightText: 2024 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
|
|
|
|
[Unit]
|
|
Description=Overlay on top of /sys/class adding the gpio class directory
|
|
Before=gpiod-sysfs-proxy.service
|
|
After=run-gpio-sys.mount
|
|
ConditionPathExists=!/sys/class/gpio
|
|
|
|
[Mount]
|
|
RuntimeDirectory=gpio/class/gpio
|
|
DirectoryMode=0755
|
|
What=overlay
|
|
Where=/sys/class
|
|
Type=overlay
|
|
Options=upperdir=/run/gpio/class,lowerdir=/run/gpio/sys/class,workdir=/run/gpio/work,ro,nosuid,nodev,noexec,relatime
|