我是靠谱客的博主 兴奋斑马,最近开发中收集的这篇文章主要介绍Udev规则及Linux下非root用户使用串口的权限设置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

系统 Ubuntu 16.04 LTS

Linux下的设备使用都需要使用sudo或root用户才能打开,为了能让普通用户也能使用串口,有以下两种方法:

1、可以增加udev规则来实现,具体方法如下:
sudo vim /etc/udev/rules.d/70-ttyusb.rules
增加如下内容:KERNEL==”ttyUSB[0-9]*”,MODE=”0666”
保存,重新插入USB转串口,就可以了。

2、添加用户 (该方法未实践)
a.由于tty属于“dialout”组别,比如你的用户名是muyangren,
先命令查看下用户隶属的组别
groups muyangren
b.如果没有隶属“dialout”,那么把用户加入进去
sudo gpasswd –add muyangren dialout
c.logout 再登录系统激活功能
运行sudo gpasswd –add muyangren dialout

关于udev规则:
1、udev规则文件目录
/etc/udev/rules.d : 用户自定义的udev规则文件一般存放在这里
/lib/udev/rules.d : 系统自带的udev规则文件
2、udev主配置文件
/etc/udev/udev.conf : 在配置文件中查找规则文件所在目录,规则文件默认放在/etc/udev/rules.d/下。
3、udev规则文件命名
例如10-dm.rules,60-persistent-storage.rules,执行规则文件,是根据开头的数字大小,数字大小相等,
根据字母顺序执行,且后面的规则文件会覆盖前面的规则(‘NAME’动作除外,因为’NAME’只能操作一次,
后续NAME操作无用)。
4、部分规则
a.udev从头到尾逐行解析每个规则文件,每行代表一个规则,每个规则由若干”键-值”(key-value)对组成。
b.键分为两种:匹配键(match key)、赋值键(assignment key)。
c.每个规则必须至少有一个匹配键和一个赋值键。
d.每个规则一行,不可换行。
e.不可在一行规则中混合匹配两个不同父设备的属性。
f.创建的设备节点的mode默认值为0666


操作符     匹配或赋值                         解释  
--------------------------------- 
==   匹配   相等比较  
!=   匹配   不等比较  
=    赋值   分配一个特定的值给该键,他可以覆盖之前的赋值.  
+=   赋值   追加特定的值给已经存在的键  
:=   赋值   分配一个特定的值给该键,后面的规则不可能覆盖它.  
键                含义  
--------------------------------- 
ACTION               事件 (uevent) 的行为,例如:add( 添加设备 )、remove( 删除设备 ).  
KERNEL               在内核里看到的设备名字,比如sd*表示任意SCSI磁盘设备  
DEVPATH              内核设备录进,比如/devices/*  
SUBSYSTEM            子系统名字,例如:sda 的子系统为 block.  
BUS                  总线的名字,比如IDE,USB  
DRIVER               设备驱动的名字,比如ide-cdrom  
ID                   独立于内核名字的设备名字  
SYSFS{ value}        sysfs属性值,他可以表示任意  
ENV{ key}            环境变量,可以表示任意  
PROGRAM              可执行的外部程序,如果程序返回0值,该键则认为为真(true)  
RESULT               上一个PROGRAM调用返回的标准输出.  
NAME                 根据这个规则创建的设备文件的文件名.  
(注意:仅仅第一行的NAME描述是有效的,后面的均忽略.如果你想使用使用两个以上的名字来访问一个设备的话,可以考虑SYMLINK键.)  
SYMLINK              为 /dev/下的设备文件产生符号链接.由于 udev 只能为某个设备产生一个设备文件,  
(所以为了不覆盖系统默认的 udev 规则所产生的文件,推荐使用符号链接.)  
OWNER                设备文件的属组  
GROUP                设备文件所在的组.  
MODE                 设备文件的权限,采用8进制  
RUN                  为设备而执行的程序列表  
LABEL                在配置文件里为内部控制而采用的名字标签(下下面的GOTO服务)  
GOTO                 跳到匹配的规则(通过LABEL来标识),有点类似程序语言中的GOTO  
IMPORT{ type}        导入一个文件或者一个程序执行后而生成的规则集到当前文件  
WAIT_FOR_SYSFS       等待一个特定的设备文件的创建.主要是用作时序和依赖问题.  
PTIONS               特定的选项:  
last_rule            对这类设备终端规则执行;  
ignore_device        忽略当前规则;  
ignore_remove        忽略接下来的并移走请求.  
all_partitions       为所有的磁盘分区创建设备文件.  

链接:https://www.douban.com/note/542148407/
http://blog.csdn.net/xiaoliu5396/article/details/46531893

最后

以上就是兴奋斑马为你收集整理的Udev规则及Linux下非root用户使用串口的权限设置的全部内容,希望文章能够帮你解决Udev规则及Linux下非root用户使用串口的权限设置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部