The gpio-control
interface provides privileged access to all aspects of GPIO pins. For accessing specific GPIO pins with limited scope, see The gpio interface instead.
Due to its wide-ranging access, it is a super-privileged interface, and as such, is restricted by default. This interface requires modification of its snap declaration for distribution via the Snap Store.
This interface is used for:
Auto-connect: no
Super-privileged: yes
The gpio-control
interface grants read-write access to the following paths:
/sys/class/gpio/
paths for exporting, setting direction, toggling values, and more:
/sys/class/gpio/{,un}export
/sys/class/gpio/gpio\[0-9\]\*/{active\_low,direction,value,edge}
/sys/devices/platform/\*\*/gpio/gpio\[0-9\]\*/{active\_low,direction,value,edge}
/dev/gpiochip\[0-9\]\
paths for direct hardware interaction through the gpiod API.The following UDev rules are applied to enable device access:
SUBSYSTEM=="gpio", KERNEL=="gpiochip[0-9]*"
Requires snapd version 2.41+. gpoichip\*
access requires snapd version 2.65+.
The following is an example of a snapcraft.yaml configuration for the GPIO control interface, following the descriptive interface reference practice for clarity:
name: gpio-control-app
version: '1.0'
summary: An example snap for controlling GPIO pins
description: |
This snap demonstrates how to use the GPIO Control interface to manage GPIO hardware for custom applications.
grade: stable
confinement: strict
plugs:
gpio-pins-control:
interface: gpio-control
apps:
gpio-app:
command: bin/gpio-app
plugs:
- gpio-pins-control
After building and installing the snap, use the following command to connect the interface manually:
sudo snap connect gpio-control-app:gpio-pins-control
This ensures clarity and aligns with the best practices for naming interface references when using snap connections
, snap interfaces
, snap connect
, or snap disconnect
.
Last updated 2 days ago.