udev 규칙은 직렬 포트를 숫자 범위에 할당/제한합니다.

udev 규칙은 직렬 포트를 숫자 범위에 할당/제한합니다.

제조업체 속성에 따라 직렬 포트를 분리하려고 합니다 ATTRS{manufacturer}.

와 사이의 값을 /dev/ttyUSBx가질 수 있는 제조업체 A에서 감지된 항목에 할당하고 싶습니다 . x마찬가지로 제조업체 B에서 생산된 것으로 감지된 제품에 대해 와 사이의 값만 취할 수 있는 위치를 할당하고 싶습니다.09/dev/ttyUSByy1019

나는 우연히 만났어이것기사 작성자는 이름을 수정하는 데 사용할 수 있다고 말했습니다 symlinks. 내 요청을 수용하기 위해 비슷한 조치를 취할 수 있나요?

답변1

귀하의 질문에 대한 직접적인 답변은 아니지만 확인할 수 있습니다

$ ls -l /dev/serial/by-id/

(USB-직렬 어댑터를 하나 이상 연결한 후) 문제 해결 방법에 대한 아이디어가 나오는지 확인하세요.

/lib/udev/rules.d/60-serial.rules예제를 보고 /dev/serial작동 방식을 확인할 수도 있습니다 . 내 쿠분투 16.04에서는 다음과 같습니다:

ACTION=="remove", GOTO="serial_end"
SUBSYSTEM!="tty", GOTO="serial_end"

SUBSYSTEMS=="pci", ENV{ID_BUS}="pci", ENV{ID_VENDOR_ID}="$attr{vendor}", ENV{ID_MODEL_ID}="$attr{device}"
SUBSYSTEMS=="pci", IMPORT{builtin}="hwdb --subsystem=pci"
SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"

# /dev/serial/by-path/, /dev/serial/by-id/ for USB devices
KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end"

SUBSYSTEMS=="usb-serial", ENV{.ID_PORT}="$attr{port_number}"

IMPORT{builtin}="path_id"
ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="", SYMLINK+="serial/by-path/$env{ID_PATH}"
ENV{ID_PATH}=="?*", ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-path/$env{ID_PATH}-port$env{.ID_PORT}"

IMPORT{builtin}="usb_id"
ENV{ID_SERIAL}=="", GOTO="serial_end"
SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACE_NUM}="$attr{bInterfaceNumber}"
ENV{ID_USB_INTERFACE_NUM}=="", GOTO="serial_end"
ENV{.ID_PORT}=="", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}"
ENV{.ID_PORT}=="?*", SYMLINK+="serial/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}-port$env{.ID_PORT}"

LABEL="serial_end"

관련 정보