GPIO ohne root Rechte / X11

  • 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.)

    Einmal editiert, zuletzt von Schl87 (1. Februar 2015 um 15:34)

  • 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.



    Vergleich mal die Ausgabe von

    Code
    echo $DISPLAY


    des Benutzers root und des Benutzers pi ...
    Evtl. reicht es schon, die DISPLAY-Variable richtig zu setzen ... localhost:10.0 kommt mir etwas sonderbar vor.

    cu,
    -ds-

    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:

    Einmal editiert, zuletzt von Schl87 (1. Februar 2015 um 16:48)

  • 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?

    Ausgeführt als User "pi":

    Ausgeführt als User "root":

    als "root":

    Code
    echo $DISPLAY
    
    
    localhoast:10.0

    Einmal editiert, zuletzt von Schl87 (2. Februar 2015 um 17:12)


  • 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:

    Spoiler anzeigen


    Start no client

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!