从这里我虽然可以使用非root用户访问GPIO,wiringPiSetupSys()
但我没有尝试过。
实际上,如果我对可执行文件执行 setuid,那么它就可以工作。那么,wiringPiSetupSys()
还不够吗?
$ ./gpio write 4 1 // This don't work :(
# chown root gpioapp
# chmod u+x gpioapp
$ ./gpio write 4 1 // This works :)
根据GPIO 实用程序文档,该gpio
实用程序设计为作为 setuid 安装。一旦用于导出引脚(如 所要求的wiringPiSetupSys
),您可以wiringPiSetupSys
以非 root 用户身份调用(请参阅http://wiringpi.com/reference/setup/)。
您的非 root 用户是 gpio 组的成员吗?——本·沃伊特
是的,这就是重点!它不是,只是改变了(usermod -a -G gpio myuser
),现在它正在工作。– KcFnMi