udev规则未执行


1

我有以下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”驱动程序==“”

查看父设备'/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”子系统==“ 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”

因此,我创建了规则:

KERNEL ==“ ttyUSB0”,SUBSYSTEM ==“ tty”,SUBSYSTEMS ==“ usb-serial”,DRIVERS ==“ pl2303”,KERNELS ==“ 6-2:1.0”,SYMLINK + =“ cc128serial”

这行不通。

但是,如果我这样做:

KERNEL ==“ ttyUSB0”,SUBSYSTEM ==“ tty”,SUBSYSTEMS ==“ usb-serial”,DRIVERS ==“ pl2303”,SYMLINK + =“ cc128serial”

然后就可以了。我尝试用KERNELS=="6*"等..无法使用

有任何想法吗 ?

谢谢


有没有答案能解决您的问题?
jrennie 2012年

也许为时已晚。但您可能也想看看unix.stackexchange.com/a/285324/26714
Kal Kal

Answers:


4

文章编写脚本的udev(寻找“无效”)表明您想使用的规则是无效的,因为你试图匹配属性从两个不同父层次:SUBSYSTEMS=="usb-serial"(父),和KERNELS=="6-2:1.0"(祖父母)。

...虽然将有问题的设备和单个父设备的属性组合在一起是合法的,但您不能混合和匹配多个父设备的属性-您的规则将不起作用。


0

父设备有KERNELS=="ttyUSB0"哪些我敢打赌,优先于父母的父设备KERNELS=="6-2:1.0"

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


我的理解是,它应该查找所有组合。我应该补充一点,该规则在linux 2.6(ubuntu 10.04)上运行良好。当我升级到ubuntu 12.04(内核3.2)时,规则停止工作。我无法使用“有效”规则的原因是因为我有3个相同的USB设备,并且只能通过将它们插入的USB端口来区分它们
jyavenard 2012年

让我建议您注意,您有3个相同的设备,并且必须在原始问题中基于端口进行识别。这将帮助人们了解潜在的问题。
jrennie 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.