Moderator: RevPiModIO

 
acolomb
Topic Author
Posts: 6
Joined: 26 Jul 2018, 13:01

Permission-Problem mit RevPiPyLoad

04 Nov 2020, 11:15

Hallo!

Ich habe ein an sich funktionierendes Skript, was nicht nur per RevPiModIO2 die Hardware steuert, sondern zusätzlich noch über /dev/ttyRS485 kommuniziert. Wenn ich dieses von der Konsole aus mit dem Benutzer "pi" starte, klappt der Zugriff. Entsprechende Rechte sind gesetzt:
pi@RevPi40606:~/src/bsp $ ls -l /dev/ttyRS485 /dev/ttyUSB0
lrwxrwxrwx 1 root root         7 Nov  3  2016 /dev/ttyRS485 -> ttyUSB0
crw-rw---- 1 root dialout 188, 0 Nov  4 10:37 /dev/ttyUSB0
pi@RevPi40606:~/src/bsp $ grep dialout /etc/group
dialout:x:20:pi
pi@RevPi40606:~/src/bsp $ 
Jetzt starte ich dasselbe Skript über RevPiPyLoad, liegt unterhalb von /var/lib/revpipyload/. Sämtliche Python-Abhängigkeiten funktionieren auch, lediglich der Zugriff auf RS485 wird verweigert:
[Errno 13] could not open port /dev/ttyRS485: [Errno 13] Permission denied: '/dev/ttyRS485'
Das kommt aus dem Modul "serial" der Python-Standardbibliothek. Das Skript läuft unter dem Interpreter python3.5, der auch offenbar als User "pi" ausgeführt wird (gemäß Standardkonfiguration plcuid=1000).

Woher kommt der Unterschied zwischen Konsolenstart und RevPiPyLoad bezüglich der Zugriffsrechte auf RS485? Wo könnte ich weiter nach Hinweisen suchen?

Herzlichen Dank im Voraus.
André
 
User avatar
RevPiModIO
Posts: 249
Joined: 20 Jan 2017, 08:44
Contact:

Re: Permission-Problem mit RevPiPyLoad

04 Nov 2020, 12:20

Moni André!

Das ist leider ein kleines Problem in RevPiPyLoad, welches du da gefunden hast!

Ursache: RevPiPyLoad startet den Prozess mit uid=1000 und gid=1000 aber keinen weiteren Gruppen! Dementsprechend, gehört die ID von dialout nicht zu dem Prozess und er hat keinen Zugriff.

Den Fehler muss ich unbedingt beseitigen!!!

Als Workaround könntest du vorerst vielleicht den Parameter "plcgid" in revpipyload.conf auf die ID von dialout (in deinem Beispiel die 20) setzen und einmal testen? Würde mich interessieren!

Vielen Dank!
Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
 
acolomb
Topic Author
Posts: 6
Joined: 26 Jul 2018, 13:01

Re: Permission-Problem mit RevPiPyLoad

04 Nov 2020, 17:57

Hallo Sven!

Vielen Dank für die schnelle Antwort. Gut zu wissen, dass es eine systematische Ursache gibt :-)

Tatsächlich funktioniert der Zugriff mit dem entsprechenden Eintrag:
plcgid = 20
Ein Glück, dass sonst nichts mit entsprechenden Rechten über andere Gruppen nötig ist, da ich ja nur eine setzen kann.

Für einen ordentlichen Fix in in RevPiPyLoad wäre ich jedenfalls sehr dankbar! Wann würde der voraussichtlich in die revpi-Raspbian-Paketquellen aufgenommen?

Schöne Grüße
André
 
User avatar
RevPiModIO
Posts: 249
Joined: 20 Jan 2017, 08:44
Contact:

Re: Permission-Problem mit RevPiPyLoad

04 Nov 2020, 22:16

Moin André!

Das Update ist quasi schon fertig :D !

Magst du es evtl. mal testen?

Du müsstest es einmal per "Hand" installieren, das schadet deinem System aber nicht und wenn die nächste Version in den Repositories ist, wird das Update ganz normal weiter laufen!

Am einfachsten direkt vom Pi auf der CLI:

wget http://revpimodio.org/dnl/revpipyload_0.9.2d-1_all.deb
sudo dpkg -i revpipyload_0.9.2d-1_all.deb

Wäre cool, wenn du die gid in der revpipyload.conf wieder auf 1000 stellst und mal schaust, ob dein Programm dann funktioniert. Durch das Update werden jetzt alle "weiteren Gruppen" des Benutzers mit an den python3 Prozess übergeben und er sollte alle Gruppenberechtigungen haben!

Vielen Dank!

Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
 
acolomb
Topic Author
Posts: 6
Joined: 26 Jul 2018, 13:01

Re: Permission-Problem mit RevPiPyLoad

05 Nov 2020, 11:32

Hallo Sven,

habe das Update installiert und die plcgid zurück auf 1000 gestellt, dann revpipyload.service neu gestartet.

Die Anwendung läuft jetzt tadellos mit Zugriff auf RS485. Herzlichen Dank für die schnelle Abhilfe!

Gruß
André

Who is online

Users browsing this forum: No registered users and 3 guests