Доступ к /sys/class/gpio
возможен только с правами администратора. Поэтому мне нравится, что новая группа gpio
может использовать файлы и директории под /sys/class/gpio
. Для достижения этой цели я добавил следующие строки /etc/rc.local
(я на Debian):Доступ к GPIO (/ sys/class/gpio) как к некорневому корню
sudo chown root:gpio /sys/class/gpio/unexport /sys/class/gpio/export
sudo chmod 220 /sys/class/gpio/unexport /sys/class/gpio/export
Таким образом, это дает право на запись всех членов gpio
группы. Таким образом, теперь они могут экспортировать и извлекать контакты отлично.
Проблема заключается в том, что они не могут читать/записывать конкретные файлы пинов после экспорта (e.x. /sys/class/gpio/gpio17
) beacause, которые принадлежат root:root
.
Как я могу изменить, что они созданы по умолчанию как root:gpio
? Я имею в виду, что могу делать это вручную каждый раз, когда я экспортирую булавку. Но это немного неудобно.
UPDATE
Согласно ответу larsks' Я создал недостающий файл правил. Теперь он частично работает:
-rwxrwx--- 1 root gpio 4096 Jun 19 16:48 export
lrwxrwxrwx 1 root gpio 0 Jun 19 16:51 gpio17 -> ../../devices/soc/3f200000.gpio/gpio/gpio17
lrwxrwxrwx 1 root gpio 0 Jun 19 16:45 gpiochip0 -> ../../devices/soc/3f200000.gpio/gpio/gpiochip0
-rwxrwx--- 1 root gpio 4096 Jun 19 16:45 unexport
Но для ./gpio17/
я все еще получаю root:root
:
-rw-r--r-- 1 root root 4096 Jun 19 16:52 active_low
lrwxrwxrwx 1 root root 0 Jun 19 16:52 device -> ../../../3f200000.gpio
-rw-r--r-- 1 root root 4096 Jun 19 16:52 direction
-rw-r--r-- 1 root root 4096 Jun 19 16:52 edge
drwxr-xr-x 2 root root 0 Jun 19 16:52 power
lrwxrwxrwx 1 root root 0 Jun 19 16:52 subsystem -> ../../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jun 19 16:52 uevent
-rw-r--r-- 1 root root 4096 Jun 19 16:52 value
UPDATE 2
Хорошо, я решил проблему. Поскольку я установил Raspbian поверх RaspbianInstaller, я никогда не использовал инструмент raspi-config
. Кажется, это проблема. Beacause Мне также не хватает папки /sys/device/virtual/gpio/
.
Я после этого руководства здесь: http://www.element14.com/community/message/139528/l/re-piface-digital-2--setup-and-use#139528
, а затем разрешения были правильными (даже для пин-папок и файлов их value
, direction
, ...).
Thx для вашего ответа. Но тогда я не могу написать, например, '/ sys/class/gpio/gpio11/value'. Все файлы в '/ sys/class/gpio/gpio11 /' по-прежнему принадлежат «root: root», а не '(un) export' от' root: gpio'. – TiMESPLiNTER
Конечно, вы можете. Это правило udev выполняет рекурсивные изменения в '/ sys/class/gpio'; Я обновил ответ на то, как выглядит содержимое каталога 'gpio11'. Вы попробовали это и не смогли? – larsks
Да, я пробовал. И для вашего обновленного 'ls -Ll' я вижу' root: root', а не как 'root': gpio'. Но он работает для '/ sys/class/gpio/*'. Таким образом, экспорт штифтов теперь возможен, но не работает с ними впоследствии. – TiMESPLiNTER