(gelöst) RPI_GPIO mit Pi active_low keine Rechte

Begonnen von Surfer541, 30 Dezember 2015, 11:39:31

Vorheriges Thema - Nächstes Thema

Surfer541

Hallo

ich habe ein Problem mit RPI_GPIO speziell mit active_low

Ich habe eigentlich WiringPi wie in der Commandref installiert.

Leider bekomme ich im Log immer wieder den Eintrag
Can't open file: int2, active_low

Ursache ist wohl fehlende Rechte für active_low von dem Port. So etwas steht ja auch schon in der Commandref.

Wenn ich nun mit

sudo chown -R fhem:root /sys/class/gpio/gpio20/active_low

dem Port die nötigen Rechte gebe ist alles gut, Fhem kann auch active_low setzen alles wunderbar,
Nach kurzer Zeit verschwinden die Rechte aber wieder und alles ist beim alten . :o

Was habe ich übersehen .. und natürlich was kann ich tun ? :D

Surfer541

#1
Hab ich selber rausbekommen:

Die Ursache dafür, dass die Ports bei Debian Wheezy mit root:root Rechten angelegt werden liegt in der DefinitionsDatei von udev.
Diese befindet sich im Verzeichnis  /etc/udev/rules.d/
dort befindet sich unter anderem eine Regeldatei 99-com.rules mit dem Eintrag:
SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c 'chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio; chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/virtual/gpio'"

Ich habe einfach im Verzeichnis eine neue Regeldatei  mit
dem Namen /etc/udev/rules.d/91-gpio.rules
und folgendem Inhalt hinzugefügt.

SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /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 root:gpio /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'"

Damit werden die Ports und vor allem active_low auch mit der Gruppenzugehörigkeit gpio angelegt.

Den Benutzer fhem habe ich der Gruppe gpio mit
usermod -aG gpio fhem

hinzugefügt.

funktioniert bei mir prima :-)

Punkt

...hallo zusammen,

nur kurze Info weil ich vorhin ewig gesucht hatte weil das bei mir nicht funktioniert hatte:

Bei deinem Beispiel fehlt noch ein "-Zeichen am Ende - kleiner aber fieser Fehler...  ;)

so müsste es dann tatsächlich richtig funktionieren:

SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /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 root:gpio /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'"



Viele Grüße

Michael
FHEM auf LXD-Container (Ubuntu 24.04) mit 1wire-Bus und I2C-Extensions
Datenbank: influxdb
verschiedene "Satellitensysteme" mit ESP-8266