我问了四周,我试过的任何udev规则都没有用。
我需要的是能够像root一样使用gpio引脚。
例如,从Adafruit执行python脚本,它应该从传感器读取温度,我得到了这个:
<collection_expression>
我尝试了许多不同的技巧来解决这个问题,但只有当我以root用户身份使用它时才有效 我试过这个:Decision Trees - Machine Learning和https://gist.github.com/metasoarous/a7308779837f9dcba662
还有一些其他的udev / rules.d但到目前为止没有任何工作......
知道如何改变这个吗?
答案 0 :(得分:0)
我尝试了以下基于this的说明并工作:
运行nano /etc/udev/rules.d/80-gpio-permissions.rules
写
KERNEL=="gpio*", SUBSYSTEM=="gpio", ACTION=="add", PROGRAM="/usr/local/bin/udev-gpio-permissions.sh"
运行nano /usr/local/bin/udev-gpio-permissions.sh
复制
#!/bin/bash
# Result: chown debian:root /sys/class/gpio
chown -R debian:root /sys/devices/gpio
chown -R debian:root /sys/class/gpio
chown -R debian:root /sys/devices/platform/ocp
chown -R debian:root /sys/class/pwm
#GPIO ( active_low device direction edge power subsystem uevent value )
find /sys/class/gpio -type d -exec chmod 2770 {} \;
find /sys/class/gpio -name "direction" -exec chmod 0660 {} \;
find /sys/class/gpio -name "edge" -exec chmod 0660 {} \;
find /sys/class/gpio -name "value" -exec chmod 0660 {} \;
find /sys/class/gpio -name "active_low" -exec chmod 0660 {} \;
find /sys/class/gpio -name "device" -exec chmod 0660 {} \;
find /sys/class/gpio -name "power" -exec chmod 0660 {} \;
find /sys/class/gpio -name "subsystem" -exec chmod 0660 {} \;
chmod 0220 /sys/class/gpio/export
chmod 0220 /sys/class/gpio/unexport
find /sys/class/gpio -name "uevent" -exec chmod 0660 {} \;
find /sys/class/gpio -name "autosuspend_delay_ms" -exec chmod 0660 {} \;
find /sys/class/gpio -name "control" -exec chmod 0660 {} \;
运行
chmod +x /usr/local/bin/udev-gpio-permissions.sh
运行
udevadm control --reload-rules
重启