[GELÖST] Probleme mit GPIO Berechtigungen

Begonnen von cremofix, 23 Oktober 2015, 10:06:54

Vorheriges Thema - Nächstes Thema

cremofix

Hallo auch,

trotz mehrtägigem Lesen in diversen RaspberryForen und fleißigem Rumprobieren komme ich an einer Stelle nicht weiter.

Ich habe hier meinen Gaszähler an den Raspi angeschlossen und werte die Daten per FHEM aus. Dabei bin ich nach folgender Anleitung vorgegangen: http://voizchat.de/gaszaehler-verbrauch-erfassen-mit-fhem-und-raspberry-gpio/

Die Hardware funktioniert problemlos
ich habe den user "fhem" zur Gruppe "gpio" gefügt.

groups fhem ergibt: fhem : dialout tty gpio

darüber hinaus habe ich , wie in der Anleitung beschrieben in die /etc/rc.local die Zeilen:

echo 25 > /sys/class/gpio/export
chown -R fhem:root /sys/devices/virtual/gpio/*
chown -R fhem:root /sys/class/gpio/*

eingefügt, um bei jedem Neustart die Zugriffsrechte des GPIO25 klar zu definieren.


diese Eintragungen in der /etc/rc.local werden anscheinend völlig ignoriert. Nach jedem Neustart sind die Zugriffsrechte wieder auf root und FHEM meckert, dass er nicht auf den GPIO z,.B. auf active_low zugreifen kann.
wenn ich die Rechte dann auf der Konsole mit :
"sudo chown -R fhem:root *" manuell ändere und einen fhem shutdown mache geht alles und er zählt fleißig drauf los. Echt super —- bis zum nächsten Neustart

Ich habe auch mal mit ,,gpio unexport" das entsprechend gpio-verzeichnis entfernt und nach dem Neustart war Das Verzeichnis wieder da (obwohl ich die Eintragungen in rc.local testweise auskommentiert hatte).

als ob FHEM es beim Start selber anlegt, sich aber nicht die notwendigen Rechte gibt.

mit ist auch aufgefallen, dass das Verzeichnis /sys/devices/virtual/gpio bei mir nicht existiert.

WiringPi ist installiert und scheint zu funktionieren, jedenfalls kann ich die GPIOS auch z.B. mit "gpio export 25 out"  anlegen und nicht nur mit "echo "25" > /sys/class/gpio/export" auch gpio read und gpio write funktionieren.

Ich glaube, ich  habe irgendwo noch etwas grundsätzliches nicht verstanden.

Kann mir bitte jemand einen Tip geben.

Mario

Ellert


cremofix

Hello Folks,

danke Ellert für den Link. Das ist wohl die richtige Richtung, obwohl mir der Link selber nicht geholfen hat.

Trotz regelmäßiger updates und upgrades kein Erfolg
Auch ein Update der raspi Firmware hat nicht geholfen.

Der Durchbruch kam durch Aufsetzen des neuen raspbian mit debian jessie

Es scheint bei eingen Kernelversionen Probleme mit wiringPi und den Rechten zu geben

Auf das neue Raspbian Jessie habe ich zuerst fhem nach der Anleitung im Wiki installiert, dann wiringPi nach der Anleitung im o.g. Gaszählerbeitrag
Nun noch das backup meines alten fhem eingespielt

und siehe da, fortan wird bei
"define xxx RPI_GPIO yy "
jeder Eintrag ordentlich mit root:gpio als Besitzer angelegt.



Surfer541

Hallo noch ein Tip:

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 :-)