GPIO ohne root Rechte / X11

  • Hallo,
    gibt es eine Möglichkeit die GPIOs ohne "root" und ohne "sudo" mit dem User "pi" in Python zu nutzen?

    Edited once, last by Schl87 ().

  • Wenn ich das Programm ohne "sudo" als "pi" ausführe kommt eine Meldung dass ich root - Rechte benötige. Ich muss das Programm aber als "pi" ausführen.

  • Entschuldige war sehr schwammig ausgedrückt.
    Ich schreib ein Programm mit Pyhon mit dem ich über Putty einen Roboter steuern kann. Dazu verwende ich "x11 Forwarding" und tkinter um die Steuerbefehle zu registrieren. Allerdings muss ich hier als User Pi angemeldet sein um das Programm des Roboters auszuführen. Wenn ich es ohne root ausführe gibt mir das Terminal die Meldung ich habe nicht die Rechte für das Modul GPIO und solle root verwenden. (Den genauen Wortlaut hab ich gerade nicht zur Hand.)

    Edited once, last by Schl87 ().

  • Und was sind die genau Gründe warum du die Gpio ohne Root Rechte benutzen willst?

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?


  • Vergib die Rechte des Programms neu mit "sudo chmod 755 -Dateiname-" ...


    Muss ich das immer vor dem Start des Programms machen? Was bedeutet die Angabe?
    [hr]


    Und was sind die genau Gründe warum du die Gpio ohne Root Rechte benutzen willst?


    tkinter über X11 forwarding funktioniert nur als User Pi

    Edited once, last by Schl87 ().

  • Was sagt dir den dein Pi wenn du mit Root Rechten
    Tkinter und X11 starten willst?

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

  • Bei mir funktioniert X11 Forwarding auch als root Benutzer - wichtig ist halt das du das auch für diese PuTTY Session aktivierst, ansonsten gibt es da nix gesondertes einzustellen.


    Ich kann aber auch problemlos ein Python-GPIO-Script als pi ausführen, ohne die von dir genannte Meldung zu kriegen... Copy&Paste doch mal bitte die exakte Meldung! Mir gehen diese ewigen Ratespiele langsam auf den Kecks

  • Es scheint so als würde für den User Root keine Konfigurations Datei existieren.
    Am einfachsten wäre es wenn du die Konfiguration Datei einfach vom User Pi kopierst.

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

  • So ich hab das Ganze noch einmal mit zwei PCs getestet und bekomme folgende Meldungen:


    ohne sudo bekomme ich bei beiden PCs folgende Meldung:




    mit sudo bekomme ich beim ersten PC:




    mit sudo bekomme ich beim zweiten PC:




    Vermuttlich wirklich nur eine Sache der Einstellungen.




    [hr]


    Code
    echo $DISPLAY


    beim ersten PC erhalte ich:



    beim zweiten PC erhalte ich:



    Beide greifen auf den gleichen Raspberry Pi zu und haben die gleichen Einstellungen in Putty:


    Edited once, last by Schl87 ().


  • Es scheint so als würde für den User Root keine Konfigurations Datei existieren.
    Am einfachsten wäre es wenn du die Konfiguration Datei einfach vom User Pi kopierst.


    Wie mache ich das?

  • Das kann ich dir persönlich selbst nicht sagen.
    Das war nur eine Idee von mir da ich (fast) das gleiche Phänomen bei Telegramm beobachtet habe, das für den User Pi und den User Root 2 unterschiedliche config Dateien gibt.
    Ich weiß ja noch nicht mal wie Tkinter funktioniert und wie der eingerichtet wird aber du wirst ja Tkinter ja irgendwo konfiguriert haben.
    Du müsstest den normalen config Pfad nur auf den Root User übertragen.
    Aber ich gebe dir keine 100% Chance das es funktionieren wird.

    A: Was ist dein dunkelstes Geheimnis?
    B: Das kann ich dir nicht sagen.
    A: sudo was ist dein dunkelstes Geheimnis?

  • Wie man schon am ersten Screenshot sieht, steht da eine andere Fehlermeldung als du hier bisher beschrieben hast: No access to /dev/mem




    Und wie gesagt, ich stelle auf Raspbian nichts ein sondern nur über PuTTY und kann mit root problemlos Xming nutzen (denn ich arbeite generell als root, einen pi benutzer gibts bei mir nicht).
    Zeig mal bitte den vollständigen Code deines Python Scripts
    (bitte in CODE!)



    Eine mögliche Alternative wäre pigpio's pigpiod daemon zu verwenden, der Dienst läuft dann als root und das Script selbst kann als normaler Benutzer laufen, der dann kein direkten Zugriff auf /dev/mem benötigt, das regelt dann der pigpiod Dienst

  • Den Code stell ich rein sobald ich Zuhause bin.


    Wenn ich das richtig verstehe ist mein Putty bzw. Xming falsch konfiguriert?
    [hr]


    Ausgeführt als User "pi":


    Ausgeführt als User "root":


    als "root":

    Code
    echo $DISPLAY
    
    
    localhoast:10.0

    Edited once, last by Schl87 ().


  • Wenn ich das richtig verstehe ist mein Putty bzw. Xming falsch konfiguriert?


    Ja.


    Dein Python Script lässt sich bei mir normal starten, es geht auch ein tk Fenster unter Windows (über Xming) auf:


    Code
    root@RoPi:/tmp# python3 tk.py 
    Vorwaerts
    STOP
    Vorwaerts
    STOP
    Vorwaerts
    STOP
    root@RoPi:/tmp# echo $DISPLAY
    localhost:10.0
    root@RoPi:/tmp#


    Deinstallier Xming noch mal, installier es frisch aber diesmal OHNE irgendwas einzustellen


    Ansonsten, wenn du denn unbedingt wissen willst wie Xming bei mir eingestellt ist: