Создайте правило UDEV для устройства с несколькими tty портами

У меня есть USB-модем, который создает несколько ttyACM соединений при включении. Я заставил udev управлять для создания символьной ссылки на ttyACM файл, однако я не знаю, как сказать, с каким tty файлом он свяжется.

Вот мое правило:

SUBSYSTEM=="tty", ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="0021", SYMLINK="cellmodem0", MODE="0666"

Вот текущая производительность ls-l/dev

lrwxrwxrwx  1 root   root           7 Feb 11 12:35 cellmodem0 -> ttyACM3

Я ожидаю, что это укажет на ttyACM0 не ACM3, поскольку ACM0 является первичным портом модема как показано следующим выводом mmcli:

-------------------------
System   |         device: '/sys/devices/3530000.xhci/usb1/1-1/1-1.1'
         |        drivers: 'cdc_acm'
         |         plugin: 'Telit'
         |   primary port: 'ttyACM0'
         |          ports: 'ttyACM3 (at), ttyACM0 (at)'
-------------------------

TL; DR: Как Вы имеете дело с правилами udev об устройствах, которые используют несколько ttyACM портов?

2
задан 9 April 2019 в 23:19

1 ответ

Наконец понятый это. Используя udevadm info /dev/<relevent port> Вы можете видеть путь устройства. Для меня это было: /devices/3530000.xhci/usb1/1-1/1-1.1/1-1.1:1.0/tty/ttyACM0 для ttyACM0 порт я на самом деле хочу отобразиться на. Этот путь был бы главным образом тем же для всех портов, созданных кроме индекса в ttyACMx, и 1-1.1:1.x будет отличаться. Для моего устройства первичный порт всегда будет нас x = 0 для 1-1.1:1.x.

Так, я добавил оператор к правилу udev: DEVPATH=="/devices/3530000.xhci/usb1/1-1/1-1.*/1-1.*:1.0/tty/ttyACM*". Только первичный порт был бы statisfy это критерии, потому что я перечислил 1-1. *:1.0.

1
ответ дан 2 December 2019 в 04:38

Другие вопросы по тегам:

Похожие вопросы: