
我正在用 C++ 編寫一個機器人程序,使用 Qt 作為 GUI,其中每個線程都需要存取硬體。存取硬體的函式庫稱為pigpio,它修改/dev/mem,因此需要root存取權限。
問題是使用者沒有 root 存取權限,而且他們正在與 GUI 進行交互,因此他們不應該為必須輸入密碼而煩惱。我嘗試setuid,但是Qt不支持,GTK+也不支援。使用者如何在沒有密碼的情況下以 root 身分執行 GUI?系統是Raspberry Pi 3B+上的Ubuntu 18.04。
答案1
似乎最好的解決方案是使用 Pigpiod,而不是 Pigpio,因為守護程式可以透過添加在啟動時運行
#!/bin/sh -e
pigpiod
exit 0
到文件
/etc/rc.local
不幸的是,pigpiod 的 API 不同,所以我必須重寫很多程式碼,但測試程式正在運行。