Комментарии 5
Не совсем понял, зачем вы пользователя и sudo заводите. Только из-за того, что права на pwmchip0 надо? Это обычно не так решают. Через udev делаете правило, чтоб на pwmchip* (или конкретно pwmchip0 ) назначалась группа "pwmgroup" и устанавливались права разрешающие группе писать. А нужного пользователя просто в эту группу добавляете. И не нужно sudo. Для простых задача не нужен даже питон, можно через sysfs писать прямо из шелла.
Идея в том, чтобы давать права только конкретному скрипту, с заданным именем и расположенному по указанному пути, а не целой группе. В противном случае все пользователи, вошедшие в эту группу, получат права, что может быть избыточно.
Но через группу тоже, конечно, можно.
Вы же можете создать отдельную группу только для 1 пользователя. Такой вариант позволяет выдать только нужные привелегии. В данном случае, на запись в устройство. В случае со скриптом, у вас через sudo выполняется всё, что там написано.
Я не настаиваю, если что :)
По опыту администрирования серверов на своем сервисе SAAS привык не предоставлять доступа больше, чем это нужно. Когда я выдаю доступ к конкретному скрипту, то никакой другой скрипт его не получит. И каждый такой скрипт я прописываю отдельно явным образом, для чего мне нужны права рута.
А если есть группа, то туда может быть добавлен пользователь или пользователи, у которого (или у которых) много скриптов. И все эти скрипты получат доступ, даже если он им и не нужен.
С группой удобнее, с настройкой доступа для каждого скрипта на мой взгляд безопаснее)
Был почти уверен, что в ядре должен быть готовый драйвер для управления сервой. Как ни странно, готового драйвера нет. Я нашел пример https://github.com/maciejjo/pwm-servo но судя по его давности (7 лет), в mainline его не приняли.
Если надо управлять сервой, мне кажется вполне нормально написать свой драйвер. Параметры pwm ему через dts указывать, а в условное устройство "/dev/servo0" писать просто нужный угол. Странно, что готового нет.
Управление сервоприводами, часть 3. Управляем ШИМ/PWM сервоприводами с разъёмов GPIO компьютеров на примере Repka Pi