默认情况下,只有root
用户才能访问/sys/class/gpio
。所以我希望一个名为gpio
的新用户组可以使用/sys/class/gpio
下的文件和目录。为了实现这一点,我向/etc/rc.local
添加了以下行(我使用的是Debian):
sudo chown root:gpio /sys/class/gpio/unexport /sys/class/gpio/export
sudo chmod 220 /sys/class/gpio/unexport /sys/class/gpio/export
因此,这将向所有gpio
组成员授予写权限。因此,他们现在可以很好地导出
和取消导出
引脚。
问题是,在导出
(例如/sys/class/gpio/gpio17
)之后,他们无法读取/写入特定的引脚文件,因为那些文件再次由root:root
拥有。
我如何更改它们默认创建为root:gpio
?我的意思是每次导出引脚时,我可以手动执行此操作。但是这有点不方便。
更新
根据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
更新2
好的,我解决了这个问题。因为我在RaspbianInstaller上安装了Raspbian,所以我从未通过raspi-config
工具进行过设置。这似乎是一个问题。因为我还缺少了/sys/device/virtual/gpio/
文件夹。
然后权限就正确了(甚至对于引脚文件夹及其文件value
,direction
等也是如此)。