Zugriff auf die GPIO (ein raspberry pi), ohne `sudo`
Diese Frage ist vielleicht nicht speziell für den raspberry pi, natürlich. Auch ich bin relativ neu in Linux.
Möchte ich schreiben, eine kleine Bibliothek (in node.js wenn diese Angelegenheiten), um den Zugriff auf die GPIO des raspberry pi mit dem sysfs. Jedoch Zugriff auf das sysfs erfordert sudo-Zugriff, und das ist schlecht für den offensichtlichen Gründen.
Quick2Wire scheint eine Lösung haben, aber ich möchte, um es besser zu verstehen und nicht einfach blind verwenden. Sie haben sich C natürlich, aber von dem was ich verstehe, ist der code nicht Komplex ist, und wahrscheinlich abgerissen werden, nur mit bash, wenn auch weniger elegant. Aber mehr als alles andere, ich bin mir nicht sicher, warum es funktioniert.
Jede Hilfe wird groß sein.
Edit: Danke für die Kommentare. Es ist klar, ich muss anders formulieren die Frage. Hier geht:
Wie kommt es, dass einmal installiert (als root) die app benötigt keine root mehr Dauerwellen zu verwenden? Wie funktioniert das hinzufügen von jemanden zu einer Gruppe in diesem Fall helfen? /sys/devices/virtual/gpio
ist nicht der Ort, wo die gpio-sysfs verfügbar ist, also, was ist der Betrug? Ich bin wirklich ein n00b, also diese Fragen könnten n00b-ish, also bitte Geduld mit mir.
InformationsquelleAutor der Frage Rakesh Pai | 2012-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rakesh, ich habe gerade versucht, herauszufinden, genau das gleiche, und ich glaube, ich habe es gelöst.
Brauchen Sie nicht zu viel von dem verstehst, das makefile an alle. Die wichtigsten Linien sind die folgenden, die ausgeführt werden, in der bash beim ausführen
sudo make install
groupadd -f --system gpio
schafft ein system Gruppe namens gpio.chgrp gpio $(DESTDIR)/bin/gpio-admin
ändert die Gruppe der binären (der die C-Datei gpio-admin.c kompiliert wurde) zu gpio. Der Inhaber der binary ist immer noch root (da laufen Sie, machen als root.)chmod u=rwxs,g=rx,o= $(DESTDIR)/bin/gpio-admin
tut zwei wichtige Dinge. Erstens, es ermöglicht ein Mitglied der gpio Gruppe laufen gpio-admin. Zweitens, es setzt das setuid-bit gpio-admin.Wenn Sie selbst hinzufügen, um die gpio-Gruppe, die Sie ausführen können, gpio-admin, ohne die Verwendung von sudo, aber gpio-admin handeln, wie es ist unter sudo. Dies ermöglicht es, zu schreiben, in der /sys/class/gpio/export-Datei. Es ermöglicht außerdem die änderung des Besitzers von Dateien /sys/class/gpio/gpio[pin number]/Richtung etc. dass erstellt.
Sogar, wenn Sie die Gruppe ändern der /sys/class/gpio/export gpio, und setzen Sie die Berechtigungen, um Ihnen zu erlauben, zu schreiben
exportieren Sie können eine pin ohne superuser-Kräfte
aber die Dateien /sys/class/gpio/gpio22/direction etc. noch erstellen Sie mit root als Besitzer und Gruppe, und müssen Sie sudo verwenden, um Sie zu ändern. Auch das Eigentum an den export und unexport Dateien wieder root nach jedem Neustart.
InformationsquelleAutor der Antwort Harry Braviner