udev 规则未执行

udev 规则未执行

我有以下设备,其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"

有什么理由不使用有效的规则呢?

相关内容