作者wtchen (没有存在感的人)
看板LinuxDev
标题[问题] 要如何使一般user也能使用device?
时间Tue Jun 16 17:41:07 2015
虽然我问过相关的问题,不过遇到瓶颈只好再问详细点
我写了一个module想用rpi的gpio控制一个含3个LED的小电路
/dev 下也有LED_0 LED_1 LED_2
我希望一般user可以写入这三个file(用0或1)去控制LED的开关
程式码如下:
https://gist.github.com/gnitnaw/b116f358fa688897fe00
之前不管是用一般user还是root都不能改变/dev/LED_(0,1,2)
改掉一些bug以後,用root可以control了,一般user还是不行
(写到现在还没开始ioctl...唉...我的学习速度真慢)
之後可能在kernel学习过程中会有更多问题要上来请教,希望不会违反板规
然後我也会回馈自己所学(拙作请勿见怪)。
我写了个小程式尝试去write /dev/LDE_0 :
int main(void)
{
char path[PATH_SIZE], buf[BUF_SIZE];
int i = 0, fd = 0;
snprintf(path, sizeof(path), "/dev/LED_0");
fd = open(path, O_WRONLY);
if (fd < 0) {
perror("Error opening GPIO pin");
exit(EXIT_FAILURE);
}
printf("Set GPIO pins to output, logic level :\n");
strncpy(buf, "1", 1);
buf[1] = '\0';
if (write(fd, buf, sizeof(buf)) < 0) {
perror("write, set pin output");
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 90.41.242.229
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1434447670.A.3A4.html
1F:→ alongalone: write的时候没有error 发生吗? 06/16 18:00
2F:→ wtchen: 不能直接用echo吗? 06/16 18:37
3F:→ wtchen: echo得到的讯息是没有权限 06/16 18:37
4F:→ alongalone: 我觉得你要不要先把tasklet那段code拿掉 06/16 22:23
5F:→ alongalone: 先看会不会亮;另外你能确定gpio跟led是连结正确的吗 06/16 22:25
抱歉,我把code改了,现在root可以work,但是一般user不行
※ 编辑: wtchen (90.41.242.229), 06/16/2015 23:00:47
6F:→ leolarrel: 有检查/dev/LED_0的档案权限吗?看来是档案权限没打开 06/17 08:56
7F:→ wtchen: 对,权限没打开没错,请问是要手动打开吗? 06/17 15:52
8F:→ wtchen: 设成666? 06/17 15:52
9F:→ leolarrel: 设成666应该可以 06/17 18:18
10F:→ wtchen: 成功了,多谢 06/17 20:39