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

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

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

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

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" 
  • Тайм-аут скриптов с использованием USBMount
  • Как подождать обнаруженные объемы LVM?
  • Как заполнять / etc / network / interfaces автоматически
  • выяснение атрибутов «производитель» и «продукт» с использованием udev для pendrive
  • Напишите правило udev из рецепта битбокса
  • Debian Jessie висит на ботинке
  • udev weirdness: / dev / hda1 смонтирован, но файл отсутствует
  • Как ядро ​​Linux знает основные и младшие номера устройства?
  • Может ли файловая система FAT32 и NTFS существовать без UUID?
  • XFCE на Debian: скрытые блокирующие устройства
  • Может ли Ubuntu 16.04 настроить autofs для автомонтирования / media / autousb с разрешениями на чтение и запись, если пользователь откровенен?
  • Как предотвратить / sda / sdb изменения между загрузками?
  • Linux и Unix - лучшая ОС в мире.