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 {номер_порта} == "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 {bInterfaceSubC } == "00" ATTRS {bInterfaceProtocol} == "00" ATTRS {support_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*" т.д., Чтобы не доступно

есть идеи ?

Спасибо

2 ответа2

4

В этой статье о написании сценариев udev (ищите "недопустимый") указывается, что правило, которое вы хотели бы использовать, недопустимо, поскольку вы пытаетесь сопоставить атрибуты двух разных родительских уровней: SUBSYSTEMS=="usb-serial" (parent) и KERNELS=="6-2:1.0" (прародитель).

... хотя допустимо объединять атрибуты с рассматриваемого устройства и одного родительского устройства, нельзя смешивать и сопоставлять атрибуты с нескольких родительских устройств - ваше правило не будет работать.

0

Родительское устройство имеет KERNELS=="ttyUSB0" которое, я уверен, имеет приоритет над родительским устройством KERNELS=="6-2:1.0" .

Есть ли причина не использовать правило, которое работает?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .