Debian -Как идентифицировать USB-устройства с похожим файлом /dev/tty *

Предполагая, что /path/to/input-fileсодержит список, который вы упомянули в своем посте,мы могли бы использовать:

awk 'BEG{name="";count=0}{if ($0 == "") { print name "=" count; name = ""; count=0; } else { if (name == "") { name = $0; } else {count = count + 1} }}END{print name "=" count;}' /path/to/input-file
Alya Grant=2
Ava=3
Samia=4
0
29.04.2021, 10:16
1 ответ

Как root, выходные данные udevadm info -q all -a -n /dev/ttyACM0будут выводить все свойства, которые можно использовать для идентификации устройства /dev/ttyACM0. Также попробуйте опустить параметр -a, чтобы увидеть переменные среды, которые могут быть сгенерированы существующими правилами udev, на случай, если эти правила выполняют какие-то активные проверки устройства.

Если есть разница в выходных данных для /dev/ttyACM0и /dev/ttyACM1, то эта разница, вероятно, может быть использована для определения того, что есть что.

Обратите внимание, что /dev/ttyACM*может означать, что эти устройства изначально являются устройствами с последовательным интерфейсом RS -232, к которым добавлен только общий чип последовательного преобразователя USB -в -, чтобы сделать их совместимыми с USB. Если да, то объем доступной информации зависит от того, как именно сконфигурирован чип преобразователя для представления устройства на шине USB. В лучшем случае может быть атрибут, определяющий тип каждого устройства, и уже может быть автоматически сгенерированный -псевдоним по адресу /dev/serial/by-id/*

.

В худшем случае может не быть ничего уникального (даже серийного номера )на микросхеме преобразователя, и вам, возможно, придется реализовать какое-то правило udev, которое выполняет активное зондирование, отправляя некоторый запрос идентификации в устройство и проверка полученного ответа,или выделите определенный порт USB для каждого типа устройства и идентифицируйте их по пути sysfs к порту USB. В этом случае проверьте /dev/serial/by-path/*:, возможно, уже существует автоматически -сгенерированный псевдоним устройства, который вы могли бы использовать.

Как только вы найдете свойство или результат проверки, которые можно использовать для различения устройств, вы можете настроить правило udev, которое будет назначать псевдоним типа -соответствующему /dev/ttyACM*устройству, например. /dev/POSдля POS-устройства и /dev/receiptили что-то подходящее для принтера. Это будут символические ссылки, указывающие на реальные имена устройств, но ваши приложения смогут использовать их точно так же, как настоящие устройства.

1
28.07.2021, 11:36

Теги

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