NeoPi+armbian GPIO mit Python

Gast #5714999
Hallo,

ich habe einen NeoPi mit armbian am Laufen. Mit der RPI.GPIO 
(RPI.GPIO_NP) lib für den NanoPi scheint es notwendig, Python als root 
auszuführen. armbian mappt wohl den GPIO-Speicherbereich nicht nach 
/dev/gpiomem. für den Zugriff auf /dev/mem braucht die lib dann wohl 
root Rechte.

Sofern keiner eine elegantere Lösung kennt, würde ich gerne mein 
eigentliches Python script weiterhin mit eingeschränkten rechten 
auszuführen. Ein parallel laufendes script, ausgeführt mit root rechten, 
könnte sich um die Ausführung der gpio Befehle kümmern. Evtl. geht ja 
auch ein Mini-C-Program. Nur wie lasse ich diese beiden Programme dann 
am besten miteinander kommunizieren?

Hat jemand Ideen?

Vielen Dank
Gast
Nachtrag:

eine von FriednlyElec für den NanoPineo angepasste Version der wiringPi 
lib habe ich am laufen und kann in der Kommandozeile auch mit 
eingeschränkten Rechten die gpios schalten. Nur nutzt mir das evtl. 
etwas in Python?
Gast
Ralf schrieb:
> Hallo,
>
> ich habe einen NeoPi mit armbian am Laufen. Mit der RPI.GPIO
> (RPI.GPIO_NP) lib für den NanoPi scheint es notwendig, Python als root
> auszuführen. armbian mappt wohl den GPIO-Speicherbereich nicht nach
> /dev/gpiomem. für den Zugriff auf /dev/mem braucht die lib dann wohl
> root Rechte.
>
> Sofern keiner eine elegantere Lösung kennt, würde ich gerne mein
> eigentliches Python script weiterhin mit eingeschränkten rechten
> auszuführen. Ein parallel laufendes script, ausgeführt mit root rechten,
> könnte sich um die Ausführung der gpio Befehle kümmern. Evtl. geht ja
> auch ein Mini-C-Program. Nur wie lasse ich diese beiden Programme dann
> am besten miteinander kommunizieren?

Armbian mappt die GPIO meist nach /sys/class/gpio, bei meinem Orangepi 
One habe ich das Verfahren per Udev-Rule benutzt, das in 
https://linux-sunxi.org/GPIO beschrieben ist (etwa Mitte Seite). 
Vielleicht geht das beim NanoPi auch.
Gast
Q&D:


Beispiel für Datei lesen:
1
value = open('/sys/class/gpio/filename', 'r').read()


Beispiel für Datei schreiben:
1
gpio_write = open('/sys/class/gpio/filename', w').write(value)


Geht natürlich auch mit
1
open ...
2
read ...   (bzw. write)
3
close...
Gast
Hi,

hatte vor ein paar Jahren dasselbe Problem und wollte ohne Root Rechte 
den Zugang zu gewissen Scripten ermöglichen.

Ich habe mir durch die PiGpio Bibliothek helfen können. Diese ist in der 
Lage einen daemon zu starten und somit die Scripte über deine "normalen" 
Zugriffsrechte auszuführen.
http://abyz.me.uk/rpi/pigpio/


vG

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 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.