创建USB设备udev
创建USB设备udev
大家在使用USB设备进行通信时是否都会遇到这样的问题:Permission denied,或者是多个usb设备在每次重启时字符设备号都会发生变化。这里我们使用udev规则来定义USB设备,保证设备的读写权限,同时每次加载USB设备时都有固定的名称。
UDEV规则
首先,Ubuntu系统中的udev规则文件都保存在/etc/udev/rules.d/
目录下,我们可以查看系统中已有的udev文件。
$ cd /etc/udev/rules.d/
$ ls -l
-rw-r--r-- 1 root root 58549 Aug 25 2019 70-snap.core.rules
70-snap.core.rules是系统本身的一个udev文件,70代表启动顺序,数值越大随系统加载的时间越晚。我们创建udev文件时同样需要按照这个规则命名rules文件,例如80-serials.rules、665-usbcan.rules。
其次,udev rules文件是通过定义设备的关键信息完成匹配的,如下是部分常用的关键字段:键
udev 规则的匹配键:
KERNEL 设备的内核名称,如sda
SUBSYSTEM 设备的子系统名称,如tty、block
BUS 总线名称,如usb
SYSFS{filename} 设备的 devpath 路径下&