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