我正在用 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 不同,所以我必须重写很多代码,但测试程序正在运行。