Der /sys/class/gpio
kann standardmäßig nur als root zugreifen. So mag ich, dass eine neue Gruppe gpio
die Dateien und Verzeichnisse unter /sys/class/gpio
verwenden kann. Um das zu erreichen, dass ich die folgenden Zeilen /etc/rc.local
(Ich bin auf Debian) hinzugefügt:Greifen Sie auf GPIO (/ sys/class/gpio) als nicht-root zu
sudo chown root:gpio /sys/class/gpio/unexport /sys/class/gpio/export
sudo chmod 220 /sys/class/gpio/unexport /sys/class/gpio/export
So gibt diese Schreibberechtigungen für alle gpio
Gruppenmitglieder. So können sie nun Pins pinsieren und exportieren.
Das Problem ist, dass sie die spezifischen Pin-Dateien nach dem Export (e.x. /sys/class/gpio/gpio17
) nicht lesen/schreiben können, da diese wieder im Besitz von root:root
sind. Wie kann ich ändern, dass sie standardmäßig als root:gpio
erstellt werden? Ich meine, ich kann das jedes Mal manuell machen, wenn ich einen Pin exportiere. Aber das ist ein bisschen unkomfortabel.
UPDATE
Nach larsks' Antwort habe ich die fehlende Regeldatei. Jetzt funktioniert es teilweise:
-rwxrwx--- 1 root gpio 4096 Jun 19 16:48 export
lrwxrwxrwx 1 root gpio 0 Jun 19 16:51 gpio17 -> ../../devices/soc/3f200000.gpio/gpio/gpio17
lrwxrwxrwx 1 root gpio 0 Jun 19 16:45 gpiochip0 -> ../../devices/soc/3f200000.gpio/gpio/gpiochip0
-rwxrwx--- 1 root gpio 4096 Jun 19 16:45 unexport
Aber für die ./gpio17/
ich noch root:root
erhalten:
-rw-r--r-- 1 root root 4096 Jun 19 16:52 active_low
lrwxrwxrwx 1 root root 0 Jun 19 16:52 device -> ../../../3f200000.gpio
-rw-r--r-- 1 root root 4096 Jun 19 16:52 direction
-rw-r--r-- 1 root root 4096 Jun 19 16:52 edge
drwxr-xr-x 2 root root 0 Jun 19 16:52 power
lrwxrwxrwx 1 root root 0 Jun 19 16:52 subsystem -> ../../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jun 19 16:52 uevent
-rw-r--r-- 1 root root 4096 Jun 19 16:52 value
UPDATE 2
Okay, ich das Problem gelöst. Weil ich Raspbian über den RaspbianInstaller installiert habe, bin ich nie durch das raspi-config
Tool gegangen. Dies scheint ein Problem zu sein. Weil mir auch der Ordner /sys/device/virtual/gpio/
fehlte.
Ich folgte diesen Leitfaden hier: http://www.element14.com/community/message/139528/l/re-piface-digital-2--setup-and-use#139528
Und danach die Berechtigungen korrekt waren (auch für die Pin-Ordner und die Dateien value
, direction
, ...).
Danke für Ihre Antwort. Aber dann kann ich zum Beispiel nicht in '/ sys/class/gpio/gpio11/value' schreiben. Alle Dateien in '/ sys/class/gpio/gpio11 /' gehören immer noch zu 'root: root' und nicht wie' (un) export' zu 'root: gpio'. – TiMESPLiNTER
Natürlich können Sie. Diese udev-Regel führt rekursive Änderungen an '/ sys/class/gpio' durch; Ich habe die Antwort mit dem Inhalt des 'gpio11'-Verzeichnisses aktualisiert. Hast du es versucht und hast es versagt? – larsks
Ja, ich habe es ausprobiert. Und für dein aktualisiertes 'ls -Ll' sehe ich' root: root' und nicht wie du 'root: gpio'. Aber es funktioniert für '/ sys/class/gpio/*'. Das Exportieren von Pins ist nun möglich, funktioniert aber danach nicht mehr. – TiMESPLiNTER