Cam*_*all 8 permissions sysfs gpio
这是在树莓派上。
这是 sudo ls -lL /sys/class/gpio/gpio18 的输出:
-rwxrwx--- 1 root gpio 4096 Mar 8 10:50 active_low
-rwxrwx--- 1 root gpio 4096 Mar 8 10:52 direction
-rwxrwx--- 1 cameron cameron 4096 Mar 8 10:50 edge
drwxrwx--- 2 root gpio 0 Mar 8 10:50 power
drwxrwx--- 2 root gpio 0 Mar 8 10:50 subsystem
-rwxrwx--- 1 root gpio 4096 Mar 8 10:50 uevent
-rwxrwx--- 1 cameron cameron 4096 Mar 8 10:50 value
Run Code Online (Sandbox Code Playgroud)
所以看起来我现在应该可以使用价值了,太好了。然而:
cameron@raspberrypi~ $ echo 1 > /sys/class/gpio/gpio18/value
-bash: /sys/class/gpio/gpio18/value: Permission denied
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?如果我 chmod 777 一切正常,那么它就可以工作,但是当我拥有该文件时,我不必这样做。
我通过将卡梅隆添加到 gpio 组解决了这个问题:
sudo usermod -aG gpio cameron
gpio export 18 out
echo 1 > /sys/class/gpio/gpio18/value
Run Code Online (Sandbox Code Playgroud)
现在一切正常。
我没有以这种方式使用 GPIO 引脚,但根据 lgeorgets第二条评论和这篇文章,您必须首先将引脚的方向设置为“out”。该direction
节点归 root 所有,因此:
sudo sh -c 'echo out > /sys/class/gpio/gpio18/direction'
Run Code Online (Sandbox Code Playgroud)
sh -c
这里需要在根子shell中执行该命令。这是因为sudo echo out > direction
将以echo
root 身份执行,但重定向 ( > direction
) 将由您当前的(非 root )shell 完成。你也可以这样做su root
。
之后,你应该,希望能够设置value
为cameron
。
归档时间: |
|
查看次数: |
26985 次 |
最近记录: |