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> |
||
|---|---|---|
| .. | ||
| conf | ||
| dynamic-layers/meta-python/recipes-support/gpiod-sysfs-proxy | ||
| files | ||
| recipes-filesystems | ||
| recipes-support | ||
| recipes-utils | ||
| COPYING.MIT | ||
| README.md | ||
| SECURITY.md | ||
This README file contains information on the contents of the filesystems layer.
Please see the corresponding sections below for details.
Dependencies
This layer depends on:
URI: git://git.openembedded.org/openembedded-core layers: meta branch: master
URI: git://git.openembedded.org/meta-openembedded layers: meta-oe branch: master
Patches
Please submit any patches against the filesystems layer to the OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org) with '[meta-filesystems]' in the subject.
Layer maintainer: Khem Raj raj.khem@gmail.com
When sending single patches, please use something like:
git send-email -1 -M
--to openembedded-devel@lists.openembedded.org
--subject-prefix='meta-filesystems][PATCH'
Table of Contents
I. Adding the filesystems layer to your build II. Misc
I. Adding the filesystems layer to your build
In order to use this layer, you need to make the build system aware of it.
Assuming the filesystems layer exists at the top-level of your yocto build tree, you can add it to the build system by adding the location of the filesystems layer to bblayers.conf, along with any other layers needed. e.g.:
BBLAYERS ?= "
/path/to/yocto/meta
/path/to/yocto/meta-oe
/path/to/yocto/meta-filesystems
"
II. Misc
--- physfs --- A library to provide abstract access to various archives
--- fuse --- Filesystem in Userspace (FUSE) is a simple interface for userspace programs to export a virtual filesystem to the Linux kernel.
--- ifuse --- A fuse filesystem to access the contents of an iPhone or iPod Touch
--- sshfs-fuse --- A filesystem client based on the SSH File Transfer Protocol
--- owfs --- An easy way to use the 1-Wire file system
--- ntfs-3g-ntfsprogs --- The ntfs-3g is a freely available read/write NTFS driver for Linux and ntfsprogs includes utilities for doing all required tasks to NTFS partitions.
--- cramfs --- Builds cramfs filesystems for embedded systems
--- smbnetfs --- SMBNetFS is a Linux/FreeBSD filesystem that allow you to use samba/microsoft network in the same manner as the network neighborhood in Microsoft Windows.
--- fuse-exfat --- A read and write exFAT driver for FUSE
--- exfat-utils --- Utilities to create, check, label and dump exFAT filesystem
--- f2fs-tools --- Tools needed for creating and managing f2fs partitions
--- xfsprogs --- It provides XFS filesystem utilities.