RaspberryPi GPIOs ohne Rootrechte ansteuern

Gast #3080422
Moin,

ich versuche gerade die GPIOs meines RaspberryPi anzusteuern (mit C als 
Programmiersprache).
Zwei Möglichkeiten hab ich mir bisher genauer angeschaut. Einmal per 
direktem zugriff auf die IO Register über /dev/mem, zum anderen mit der 
WiringPi Library. Beides braucht aber leider root Rechte. Ich werde 
garantiert nicht meine Anwendungen (die auch aus dem Webserver nachher 
ansprechbar sein sollen) alle unter root laufen lassen.

Ich kenn mich mit Linux noch nicht so im Detail aus. Kennt jemand einen 
Weg, die GPIOs aus einem C-Programm so anzusprechen, dass das Programm 
keine rootrechte braucht?
Du könntest via chmod das schreiben und lesen der entsprechenden Files 
für jeden erlauben.

Eine noch bessere Lösung wäre, dein Webserver-User (und dich selbst, 
wirst es ja auch mal ausprobieren wollen) in eine Gruppe aufzunehmen, 
die Schreib/Leserechte auf den GPIOs hat. Falls es da noch keine gibt, 
erstellst du eben eine neue Gruppe und erlaubst wieder fia chmod das 
schreiben/lesen für diese Gruppe auf die GPIOs.
Gast
Die GPIO werden können über das /sys Dateisystem angesteuert werden. 
Entsprechende Beispiele sind hier (Für BASH Shell z.B.):

http://elinux.org/RPi_Low-level_peripherals

Die Berechtigungen in sys... können per chmod geändert werden. Du 
schreibst ein Skript das beim Systemstart die Berechtigungen setzt, so 
dass dein Prozess drauf zugreifen kann und die benötigten GPIO anmeldet.

Falls das aus Timing-Gründen nicht geht und du direkt schalten willst, 
dann kannst du einen Service schreiben. Der läuft als root und nimmt per 
UNIX Domain Socket Kommandos an, welche die benötigten Schaltsequenzen 
ausführen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.