
Ich schreibe ein Robotikprogramm in C++ und verwende Qt für die GUI, wobei jeder Thread Zugriff auf die Hardware benötigt. Die Bibliothek, die auf die Hardware zugreift, heißt pigpio und ändert /dev/mem, sodass sie Root-Zugriff benötigt.
Das Problem ist, dass der Benutzer keinen Root-Zugriff hat, außerdem interagiert er mit der GUI und sollte sich ohnehin nicht mit der Eingabe eines Passworts herumschlagen müssen. Ich habe versucht, setuid zu verwenden, aber Qt unterstützt dies nicht und GTK+ auch nicht. Wie kann der Benutzer die GUI als Root ohne Passwort ausführen? Das System ist Ubuntu 18.04 auf Raspberry Pi 3B+.
Antwort1
Die beste Lösung scheint die Verwendung von pigpiod anstelle von pigpio zu sein, da der Daemon beim Start ausgeführt werden kann, indem
#!/bin/sh -e
pigpiod
exit 0
zur Datei
/etc/rc.local
Leider ist die API für Pigpiod anders, daher muss ich einen Großteil des Codes neu schreiben, aber ein Testprogramm funktioniert.