Как стать автором
Обновить

Управление сервоприводами, часть 3. Управляем ШИМ/PWM сервоприводами с разъёмов GPIO компьютеров на примере Repka Pi

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров5.2K
Всего голосов 11: ↑11 и ↓0+11
Комментарии5

Комментарии 5

Не совсем понял, зачем вы пользователя и sudo заводите. Только из-за того, что права на pwmchip0 надо? Это обычно не так решают. Через udev делаете правило, чтоб на pwmchip* (или конкретно pwmchip0 ) назначалась группа "pwmgroup" и устанавливались права разрешающие группе писать. А нужного пользователя просто в эту группу добавляете. И не нужно sudo. Для простых задача не нужен даже питон, можно через sysfs писать прямо из шелла.

Идея в том, чтобы давать права только конкретному скрипту, с заданным именем и расположенному по указанному пути, а не целой группе. В противном случае все пользователи, вошедшие в эту группу, получат права, что может быть избыточно.

Но через группу тоже, конечно, можно.

Вы же можете создать отдельную группу только для 1 пользователя. Такой вариант позволяет выдать только нужные привелегии. В данном случае, на запись в устройство. В случае со скриптом, у вас через sudo выполняется всё, что там написано.

Я не настаиваю, если что :)

По опыту администрирования серверов на своем сервисе SAAS привык не предоставлять доступа больше, чем это нужно. Когда я выдаю доступ к конкретному скрипту, то никакой другой скрипт его не получит. И каждый такой скрипт я прописываю отдельно явным образом, для чего мне нужны права рута.

А если есть группа, то туда может быть добавлен пользователь или пользователи, у которого (или у которых) много скриптов. И все эти скрипты получат доступ, даже если он им и не нужен.

С группой удобнее, с настройкой доступа для каждого скрипта на мой взгляд безопаснее)

Был почти уверен, что в ядре должен быть готовый драйвер для управления сервой. Как ни странно, готового драйвера нет. Я нашел пример https://github.com/maciejjo/pwm-servo но судя по его давности (7 лет), в mainline его не приняли.

Если надо управлять сервой, мне кажется вполне нормально написать свой драйвер. Параметры pwm ему через dts указывать, а в условное устройство "/dev/servo0" писать просто нужный угол. Странно, что готового нет.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории