嵌入式爱好者

解决Ubuntu18.04非root用户控制gpio没有权限的问题

2024-1-30 09:34| 发布者: Gao_JX| 查看: 29| 评论: 0

类目: 知识库  >  A40i/T3系列产品     文档编号: 1290

1、 建立 rc-local.service 文件

sudo vim /etc/systemd/system/rc-local.service

2、 在 rc-local.service 文件输入如下内容:

[Unit]

Description=/etc/rc.local Compatibility

ConditionPathExists=/etc/rc.local

[Service]

Type=forking

ExecStart=/etc/rc.local start

TimeoutSec=0

StandardOutput=tty

RemainAfterExit=yes

SysVStartPriority=99

[Install]

WantedBy=multi-user.target

3、修改 rc.local 文件sudo vim /etc/rc.local

添加以下内容:(以226为例)

chmod -R 777 /sys/class/gpio/

echo 226 > /sys/class/gpio/export

echo gpio 对应引脚的数值) > /sys/class/gpio/export

chmod -R 777 /sys/class/gpio/gpio226/

chmod -R 777 /sys/class/gpio/gpiogpio 对应引脚的数值)/

echo out > /sys/class/gpio/gpio226/direction

local 可执行权限

sudo chmod +x /etc/rc.local

5、 启用服务

sudo systemctl enable rc-local

使用时直接调用修改引脚value值的指令就可以


创建一个简单的Shell脚本来批量导出14GPIO。以下是脚本示例:

使用sudo vim gpio.sh编译一个脚本,添加以下内容:

#!/bin/bash

 

chmod -R 777 /sys/class/gpio/

 

gpio_list=(128 129 130 131 132 133 134 135 136 137 138 139 148 149)

 

for gpio in "${gpio_list[@]}"; do

        echo $gpio > /sys/class/gpio/export

        chmod -R 777 /sys/class/gpio/gpio$gpio

        echo "out" > /sys/class/gpio/gpio$gpio/direction

done

 

添加可执行权限:

chmod 777 gpio.sh

在开机自启中替换之前添加的内容sudo vim /etc/rc.local

替换为/root/gpio.sh


已解决

未解决

只是看看

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-5-1 06:14

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部