
Я пишу программу по робототехнике на C++, использую Qt для GUI, где каждому потоку нужен доступ к оборудованию. Библиотека, которая обращается к оборудованию, называется pigpio, и она изменяет /dev/mem, поэтому ей нужен root-доступ.
Проблема в том, что у пользователя нет прав root, плюс он взаимодействует с GUI и его в любом случае не должно беспокоить введение пароля. Я пробовал setuid, но Qt его не поддерживает, как и GTK+. Как пользователь может запустить GUI как root без пароля? Система — Ubuntu 18.04 на Raspberry Pi 3B+.
решение1
Кажется, лучшим решением будет использовать pigpiod, а не pigpio, поскольку демон можно запустить при запуске, добавив
#!/bin/sh -e
pigpiod
exit 0
к файлу
/etc/rc.local
К сожалению, API для pigpiod отличается, поэтому мне придется переписать большую часть кода, но тестовая программа работает.