backport added… libgpiod (2.2.3-1bbbio0) · beagleboard/repos-armhf@a8011e1 · GitHub next lets try enabling the new options…
and pushed: libgpiod (2.2.3-1bbbio5) install gpiocli/gpio-manager under gpiod · beagleboard/repos-armhf@b199e17 · GitHub
voodoo@21-am335x-bbb:~$ sudo systemctl status gpio-manager.service
× gpio-manager.service - Centralized GPIO manager daemon
Loaded: loaded (/usr/lib/systemd/system/gpio-manager.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Mon 2026-06-08 13:27:57 CDT; 19s ago
Invocation: d8072be4b00642c29bcf16a6bcd36eac
Process: 5099 ExecStart=/usr/bin/gpio-manager (code=exited, status=217/USER)
Main PID: 5099 (code=exited, status=217/USER)
Jun 08 13:27:57 21-am335x-bbb systemd[1]: gpio-manager.service: Scheduled restart job, restart counter is at 5.
Jun 08 13:27:57 21-am335x-bbb systemd[1]: gpio-manager.service: Start request repeated too quickly.
Jun 08 13:27:57 21-am335x-bbb systemd[1]: gpio-manager.service: Failed with result 'exit-code'.
Jun 08 13:27:57 21-am335x-bbb systemd[1]: Failed to start gpio-manager.service - Centralized GPIO manager daemon.
voodoo@21-am335x-bbb:~$ uname -r
6.12.92-bone61
Okay, lets’ look at it:
sudo cat /usr/lib/systemd/system/gpio-manager.service
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2023-2024 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
[Unit]
Description=Centralized GPIO manager daemon
[Service]
Type=dbus
BusName=io.gpiod1
ExecStart=/usr/bin/gpio-manager
Restart=always
User=gpio-manager
CapabilityBoundingSet=
ReadOnlyDirectories=/
NoNewPrivileges=yes
RemoveIPC=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectHome=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
ProtectSystem=strict
ProtectClock=yes
Delegate=no
IPAddressDeny=any
KeyringMode=private
LockPersonality=yes
MemoryDenyWriteExecute=yes
NotifyAccess=main
PrivateMounts=no
PrivateNetwork=no
ProtectHostname=yes
RestrictNamespaces=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
SystemCallFilter=~@clock
SystemCallFilter=~@cpu-emulation
SystemCallFilter=~@debug
SystemCallFilter=~@module
SystemCallFilter=~@mount
SystemCallFilter=~@obsolete
SystemCallFilter=~@privileged
SystemCallFilter=~@raw-io
SystemCallFilter=~@reboot
SystemCallFilter=~@swap
[Install]
WantedBy=multi-user.target
Jun 08 13:29:53 21-am335x-bbb systemd[1]: Starting gpio-manager.service - Centralized GPIO manager daemon...
Jun 08 13:29:54 21-am335x-bbb (-manager)[614]: gpio-manager.service: Failed to determine user credentials: No such process
Jun 08 13:29:54 21-am335x-bbb (-manager)[614]: gpio-manager.service: Failed at step USER spawning /usr/bin/gpio-manager: No such process
Jun 08 13:29:54 21-am335x-bbb systemd[1]: gpio-manager.service: Main process exited, code=exited, status=217/USER
Jun 08 13:29:54 21-am335x-bbb systemd[1]: gpio-manager.service: Failed with result 'exit-code'.
Jun 08 13:29:54 21-am335x-bbb systemd[1]: Failed to start gpio-manager.service - Centralized GPIO manager daemon.
Jun 08 13:29:55 21-am335x-bbb systemd[1]: gpio-manager.service: Scheduled restart job, restart counter is at 5.
Jun 08 13:29:55 21-am335x-bbb systemd[1]: gpio-manager.service: Start request repeated too quickly.
Jun 08 13:29:55 21-am335x-bbb systemd[1]: gpio-manager.service: Failed with result 'exit-code'.
Should we stay with upstream with teh User=gpio-manager or map to User=gpio
Closer…
sudo useradd --system -M -s /usr/sbin/nologin -g gpio gpio-manager
Closer:
voodoo@21-am335x-bbb:~$ sudo systemctl status gpio-manager.service
● gpio-manager.service - Centralized GPIO manager daemon
Loaded: loaded (/usr/lib/systemd/system/gpio-manager.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-06-08 15:54:05 CDT; 2min 50s ago
Invocation: b095657bbdf345688b5e207a8556b42a
Main PID: 477 (gpio-manager)
Tasks: 4 (limit: 1012)
Memory: 4.2M (peak: 4.5M)
CPU: 808ms
CGroup: /system.slice/gpio-manager.service
└─477 /usr/bin/gpio-manager
Jun 08 15:53:58 21-am335x-bbb systemd[1]: Starting gpio-manager.service - Centralized GPIO manager daemon...
Jun 08 15:54:03 21-am335x-bbb gpio-manager[477]: initializing gpio-manager
Jun 08 15:54:03 21-am335x-bbb gpio-manager[477]: gpio-manager started
Jun 08 15:54:04 21-am335x-bbb gpio-manager[477]: failed to open GPIO chip /dev/gpiochip0: unable to open GPIO chip '/dev/gpiochip0': Permission denied
Jun 08 15:54:04 21-am335x-bbb gpio-manager[477]: failed to open GPIO chip /dev/gpiochip1: unable to open GPIO chip '/dev/gpiochip1': Permission denied
Jun 08 15:54:04 21-am335x-bbb gpio-manager[477]: failed to open GPIO chip /dev/gpiochip2: unable to open GPIO chip '/dev/gpiochip2': Permission denied
Jun 08 15:54:05 21-am335x-bbb systemd[1]: Started gpio-manager.service - Centralized GPIO manager daemon.
voodoo@21-am335x-bbb:~$ sudo udevadm info /dev/gpiochip0
P: /devices/platform/ocp/48000000.interconnect/48000000.interconnect:segment@0/4804c000.target-module/4804c000.gpio/gpiochip0
M: gpiochip0
R: 0
J: c254:0
U: gpio
T: gpio_chip
D: c 254:0
N: gpiochip0
L: 0
E: DEVPATH=/devices/platform/ocp/48000000.interconnect/48000000.interconnect:segment@0/4804c000.target-module/4804c000.gpio/gpiochip0
E: DEVNAME=/dev/gpiochip0
E: DEVTYPE=gpio_chip
E: OF_NAME=gpio
E: OF_FULLNAME=/ocp/interconnect@48000000/segment@0/target-module@4c000/gpio@0
E: OF_COMPATIBLE_0=ti,omap4-gpio
E: OF_COMPATIBLE_N=1
E: MAJOR=254
E: MINOR=0
E: SUBSYSTEM=gpio
voodoo@21-am335x-bbb:~$ ls -lha /dev/gpiochip*
crw-rw---- 1 root gpio 254, 0 Jun 8 15:54 /dev/gpiochip0
crw-rw---- 1 root gpio 254, 1 Jun 8 15:54 /dev/gpiochip1
crw-rw---- 1 root gpio 254, 2 Jun 8 15:54 /dev/gpiochip2
crw-rw---- 1 root gpio 254, 3 Jun 8 15:53 /dev/gpiochip3
voodoo@21-am335x-bbb:~$ cat /etc/udev/rules.d/
10-of-symlink.rules 81-add-SoftAp0-interface.rules 83-counter-noroot.rules 87-iio-noroot.rules
61-smsc95xx-mac-address.rules 81-pwm-noroot.rules 85-gpio-noroot.rules 88-leds-noroot.rules
80-gpio-noroot.rules 82-gpio-config-pin.rules 86-remoteproc-noroot.rules uio-pruss.rules
80-i2c-noroot.rules 82-SoftAp0-start-hostpad.rules 86-rpmsg-noroot.rules uio.rules
voodoo@21-am335x-bbb:~$ cat /etc/udev/rules.d/85-gpio-noroot.rules
# /etc/udev/rules.d/85-gpio-noroot.rules
#
# Corrects sys GPIO permissions on the BB so non-root users in the gpio group can manipulate bits
#
###needed for gpioinfo and friends...
###Before
###debian@bbb-pwr01-ser09:~$ ls -lha /dev/gpiochip*
###crw-rw---- 1 root root 254, 0 Jul 9 00:01 /dev/gpiochip0
###crw-rw---- 1 root root 254, 1 Jul 9 00:01 /dev/gpiochip1
###crw-rw---- 1 root root 254, 2 Jul 9 00:01 /dev/gpiochip2
###crw-rw---- 1 root root 254, 3 Jul 9 00:01 /dev/gpiochip3
###After
###debian@bbb-pwr01-ser09:~$ ls -lha /dev/gpiochip*
###crw-rw---- 1 root gpio 254, 0 Jul 9 00:01 /dev/gpiochip0
###crw-rw---- 1 root gpio 254, 1 Jul 9 00:01 /dev/gpiochip1
###crw-rw---- 1 root gpio 254, 2 Jul 9 00:01 /dev/gpiochip2
###crw-rw---- 1 root gpio 254, 3 Jul 9 00:01 /dev/gpiochip3
KERNEL=="gpiochip*", SUBSYSTEM=="gpio", MODE="0660", GROUP="gpio"
voodoo@21-am335x-bbb:~$ cat /usr/lib/*/udev/rules.d/90-gpio.rules
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2024 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
SUBSYSTEM=="gpio", KERNEL=="gpiochip[0-9]*", GROUP="gpio", MODE="0660"
Looks like a delay..
voodoo@21-am335x-bbb:~$ sudo systemctl restart gpio-manager.service
voodoo@21-am335x-bbb:~$ sudo systemctl status gpio-manager.service
● gpio-manager.service - Centralized GPIO manager daemon
Loaded: loaded (/usr/lib/systemd/system/gpio-manager.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-06-08 16:00:42 CDT; 2s ago
Invocation: b7f3da64abb54008a90147f3b920577d
Main PID: 1122 (gpio-manager)
Tasks: 5 (limit: 1012)
Memory: 908K (peak: 1.3M)
CPU: 667ms
CGroup: /system.slice/gpio-manager.service
└─1122 /usr/bin/gpio-manager
Jun 08 16:00:41 21-am335x-bbb systemd[1]: Starting gpio-manager.service - Centralized GPIO manager daemon...
Jun 08 16:00:41 21-am335x-bbb gpio-manager[1122]: initializing gpio-manager
Jun 08 16:00:41 21-am335x-bbb gpio-manager[1122]: gpio-manager started
Jun 08 16:00:42 21-am335x-bbb systemd[1]: Started gpio-manager.service - Centralized GPIO manager daemon.