Update to volumio 3.569 breaks GPIO (permission)

Hi volumio makers,

is there a detailed changelog between version 3.546 and 3.569.
Since 3.569 pirate audio plugin isn’t working anymore because of the following error:

volumio@volumio:/data/plugins/system_hardware/pirateaudio$ python3 ./display.py
Traceback (most recent call last):
  File "./display.py", line 39, in <module>
    offset_top=0  # v0.0.6
  File "/usr/local/lib/python3.7/dist-packages/ST7789/__init__.py", line 139, in __init__
    GPIO.setup(dc, GPIO.OUT)
RuntimeError: No access to /dev/mem.  Try running as root!

I guess somehow all plugin which uses the RPI.gpio library in combination with python 3 are affected.

Temporaly fix (until reboot): sudo chown root:gpio /dev/gpiomem && sudo chmod g+rw /dev/gpiomem

Looking forward to get some tips.

Regard

AxLED

1 Like

Can some Volumio 3.546 pi user post the content of /etc/udev/rules.d/92-gpio.rules?

In 3.569 it is:

SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chown volumio:volumio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", PROGRAM="/bin/sh -c 'chown volumio:volumio /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value ; chmod 660 /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value'"

AxLED

here the fix for this problem

The actual bug and resolution is mentioned here:
raspberrypi/linux#5625

1 Like

It will be included in the next stable release

@Darmur

that was quick. Thanks for the hint, this fixes the gpio permission problem.
Do you know when the next stable release will be published?

AxLED

No plans yet, we’re testing a new version of MPD that will solve some corner-case problems with DSD playback… I don’t know how long it will take

I can trigger a test build next week, including this fix

1 Like

So for any other stumbling upon it and like me can’t wait for the next stable to fix this: You can fix this right now with

sudo sed -i 's/bcm2835-gpiomem/gpiomem/g' /etc/udev/rules.d/99-com.rules

It is also a good idea to make a backup of /etc/udev/rules.d/99-com.rules before this operation.
And be sure to really be on kernel 6.1.54 or newer - not to make things worse :wink:

1 Like

This update coincided with me making some modifications with a soldering iron to my project so thought i’d killed my VFD! Glad it’s just udev rules. All good now