【Linux】USB设备绑定固定名称


参考:https://wangpengcheng.github.io/2019/09/18/change_usb_rules_ubuntu/

原理

根据设备的“供应商ID”和“产品ID”等信息,来绑定指定的设备名称。

配置方法

查看设备信息

udevadm info --name=/dev/video0 --attribute-walk

添加udev rules规则文件

设备规则文件在Ubuntu中存放在/etc/udev/rules.d/文件夹下。可以在此文件夹中添加自定义的以.rules的文件。

udev的规则的匹配关键键内容如下:

关键键 含义
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 为所有的磁盘分区创建设备文件。
/etc/udev/rules.d文件夹下创建自定义myVideoDev.rules文件内容如下
ACTION=="add",ATTRS{idVendor}=="32e4",ATTRS{idProduct}=="9422",ATTR{index}=="0",SYMLINK+="rerVideo"

可以自由添加和删减字段,但是ACTIONSYMLINK+=不能删减

重启服务查看 对应设备

当添加或者删除udev的rules文件后,都需要使用如下命令,进行设备读取rules的更新

sudo service udev reload
sudo service udev restart

然后重新插拔USB设备,就可以按照新的规则执行了

注意:两个设备是同种设备时不能由设备芯片进行识别区分,需要找出设备信息的不同之处,比如:ATTR{index}


文章作者: 陶逸南
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 陶逸南 !
评论
 上一篇
【Linux】树莓派系统压缩备份 【Linux】树莓派系统压缩备份
引用:树莓派学习笔记 篇四:树莓派4B 的系统备份方法大全(全卡+压缩备份) 1. 原理树莓派的官方系统是基于 Debian 的,主要是两个分区:启动分区(boot)、根分区(root),烧录系统的时候就是将这两个分区写入 SD 卡。首次开
2020-12-17
下一篇 
【Linux】linux开机自启动程序设置方法 【Linux】linux开机自启动程序设置方法
引用:https://blog.csdn.net/qingtian506/article/details/53008605 1.首先在自己的工程文件里编写自启动shell文件,这是我的例子如下:文件名字(testudp.sh),可执行程序为
2020-12-16
  目录