장치 인터페이스 속성과 일치하는 udev 규칙을 작성하는 방법

장치 인터페이스 속성과 일치하는 udev 규칙을 작성하는 방법

나는 usbtmc 인터페이스를 갖춘 USBTMC 장치를 가지고 있습니다. 인터페이스에는 각각 "fe", "3" 및 "1" 값을 갖는 bInterfaceClass, bInterfaceSubClass 및 bInterfaceProtocol 속성이 있습니다. 문제는 속성과 일치하는 udev 규칙을 작성하는 방법입니다.상호 작용장비. 일치는 장치 수준에서 활성화된 것으로 보이며 장치의 상위 항목만 "위"로 볼 수 있지만 장치 인터페이스의 "아래"(sysfs 트리 아래)는 볼 수 없습니다.

VID/PID 일치를 기반으로 작업 규칙을 작성할 수 있습니다.

SUBSYSTEM=="usb", ATTR{idProduct}=="5c18", ATTR{idVendor}=="2a8d", MODE:="0660", GROUP="plugdev"

그러나 다음과 같은 규칙은 작동하지 않습니다.

SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="fe", ATTR{bInterfaceSubClass}=="03", MODE:="0660", GROUP="plugdev"

다음은 장치 목록과 1-1:1.0 아래에 있는 인터페이스의 속성을 보여줍니다.

me@box:/sys/bus/usb/devices/1-1$ ls
1-1:1.0            bcdDevice            bDeviceProtocol  bMaxPacketSize0     bNumInterfaces  descriptors  devpath  idProduct    manufacturer  power    removable  serial     tx_lanes  version
authorized         bConfigurationValue  bDeviceSubClass  bMaxPower           busnum          dev          driver   idVendor     maxchild      product  remove     speed      uevent
avoid_reset_quirk  bDeviceClass         bmAttributes     bNumConfigurations  configuration   devnum       ep_00    ltm_capable  port          quirks   rx_lanes   subsystem  urbnum
me@box:/sys/bus/usb/devices/1-1$ cat 1-1\:1.0/bInterfaceClass 
fe
me@box:/sys/bus/usb/devices/1-1$ cat 1-1\:1.0/bInterfaceSubClass 
03
me@box:/sys/bus/usb/devices/1-1$ cat 1-1\:1.0/bInterfaceProtocol 
01
me@box:/sys/bus/usb/devices/1-1$

명령: udevadm info -a -n

사용 가능한 장치 ATTR 및 상위 ATTRS를 나열합니다. 이들 중 어느 것도 (하위)인터페이스 속성을 포함하지 않습니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

대답은 ENV 및 ID_USB_INTERFACES를 사용하는 것 같습니다. 예를 들면 다음과 같습니다.

SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}==":fe0301:", ...

나는 libudev API를 사용하여 이것을 발견하고 내 장치의 속성 이름/값을 열거했으며 (부분적으로) 다음과 같이 보였습니다.

ID_BUS : usb
ID_MODEL_ID : 5c18
ID_REVISION : 0100
...
ID_USB_INTERFACES : :fe0301:

또한 다음은 udev 규칙에서 ENV와 함께 사용할 수 있는 장치 속성을 덤프합니다.

udevadm info --query all <device node>

또는

udevadm monitor --udev --subsystem-match=usb --property

그런 다음 (USB) 장치를 연결하면 속성 목록이 표시됩니다.

관련 정보