udev для назначения / ограничения последовательных портов на ряд номеров

Я пытаюсь изолировать последовательные порты на основе атрибута производителя ATTRS{manufacturer} .

Я хотел бы назначить /dev/ttyUSBx тем, которые были обнаружены как у производителя A, где x может принимать значение только от 0 до 9 . Аналогично, для тех, которые обнаружены как у производителя B, я хочу назначить /dev/ttyUSBy , где y может принимать значение от 10 до 19 .

Мне попалась эта статья, где автор говорит, что можно изменить имена с помощью symlinks . Можем ли мы сделать что-то подобное для удовлетворения моих требований?

  • Нет маршрута по умолчанию Gateway для интерфейса bond0 / Slave eth * получает IP-адрес
  • не удается запустить Chrome-браузер - сбой не удалось: разрешение отклонено
  • Что такое правило udev, позволяющее конкретным поставщикам флэш-накопителей?
  • Получить узел устройства с помощью пары основных / младших номеров
  • Отключить аппаратные устройства Ethernet при запуске
  • UDEV присваивает ATTRS {variable} значение ENV {variable}
  • / dev / disk / lists, почему / dev / net / не перечисляет сетевые интерфейсы?
  • Какие разрешения должны иметь правило udev?
  • One Solution collect form web for “udev для назначения / ограничения последовательных портов на ряд номеров”

    Не прямой ответ на ваш вопрос, но вы можете проверить

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

    (после подключения хотя бы одного USB-последовательного адаптера), чтобы проверить, дает ли это вам идею решить вашу проблему.

    Вы также можете проверить /lib/udev/rules.d/60-serial.rules чтобы иметь пример и посмотреть, как работает /dev/serial . На моем Kubuntu 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" 
    Linux и Unix - лучшая ОС в мире.