我有以下设备,其udevadm
列表如下:
查看设备‘/devices/pci0000:00/0000:00:1c.7/0000:09:00.0/usb6/6-2/6-2:1.0/ttyUSB0/tty/ttyUSB0’:KERNEL=="ttyUSB0" SUBSYSTEM=="tty" DRIVER==""
查看父设备'/devices/pci0000:00/0000:00:1c.7/0000:09:00.0/usb6/6-2/6-2:1.0/ttyUSB0':KERNELS=="ttyUSB0" SUBSYSTEMS=="usb-serial" DRIVERS=="pl2303" ATTRS{port_number}=="0"
查看父设备'/devices/pci0000:00/0000:00:1c.7/0000:09:00.0/usb6/6-2/6-2:1.0':KERNELS=="6-2:1.0" SUBSYSTEMS=="usb" DRIVERS=="pl2303" ATTRS{bInterfaceNumber}=="00" ATTRS{bAlternateSetting}==" 0" ATTRS{bNumEndpoints}=="03" ATTRS{bInterfaceClass}=="ff" ATTRS{bInterfaceSubClass}=="00" ATTRS{bInterfaceProtocol}=="00" ATTRS{supports_autosuspend}=="1"
所以我制定了规则:
内核=="ttyUSB0", 子系统=="tty", 子系统=="usb-serial", 驱动程序=="pl2303", 内核=="6-2:1.0", SYMLINK+="cc128serial"
这不起作用。
但如果我这样做:
内核=="ttyUSB0", 子系统=="tty", 子系统=="usb-serial", 驱动程序=="pl2303", SYMLINK+="cc128serial"
然后它就起作用了。我试过KERNELS=="6*"
等等,但不起作用
有任何想法吗 ?
谢谢
答案1
这关于编写 udev 脚本的文章(查找“无效”)表示您想要使用的规则无效,因为您尝试匹配来自两个不同父级别的属性:(SUBSYSTEMS=="usb-serial"
父级)和KERNELS=="6-2:1.0"
(祖级)。
...虽然将相关设备和单个父设备的属性结合起来是合法的,但您不能混合搭配多个父设备的属性 - 您的规则将不起作用。
答案2
KERNELS=="ttyUSB0"
我敢打赌,父设备具有优先于父设备的父设备的权限KERNELS=="6-2:1.0"
。
有什么理由不使用有效的规则呢?