Опциональный драйвер правильно соответствует USB ID и загружает драйвер для этого устройства. Например
# lsusb
Bus 001 Device 002: ID 19d2:0031 ONDA Communication S.p.A. ZTE MF636
Bus 001 Device 003: ID 12d1:14ac Huawei Technologies Co., Ltd.
Он также создает устройства ttyUSBX для управления оборудованием.
crw-rw---- 1 root uucp 188, 0 Jul 4 13:48 /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 1 Jul 4 13:49 /dev/ttyUSB1
crw-rw---- 1 root uucp 188, 2 Jul 4 13:35 /dev/ttyUSB2
crw-rw---- 1 root uucp 188, 3 Jul 4 13:37 /dev/ttyUSB3
crw-rw---- 1 root uucp 188, 4 Jul 4 13:37 /dev/ttyUSB4
crw-rw---- 1 root uucp 188, 5 Jul 4 13:37 /dev/ttyUSB5
crw-rw---- 1 root uucp 188, 6 Jul 4 13:37 /dev/ttyUSB6
crw-rw---- 1 root uucp 188, 7 Jul 4 13:37 /dev/ttyUSB7
Однако у меня есть более одного последовательного USB-устройства, и я хочу знать, какой ttyUSB для какого USBID. Ex. / dev / ttyUSB1 -> 19d2: 0031
Знаете ли вы, где я могу получить эту информацию?
Ответы:
Посмотрите на файловую систему sysfs. Пример для моего серийного USB:
Как видите,
ttyUSB0
карты067b:2303
на моем компьютере. В других местах стоит изучить это/sys/class/tty/
. Обратите внимание на символические ссылки.источник
cat
вuevent
файл из результатаfind /sys -name ttyACM0
, например. Подставьте имя вашего последовательного устройства.Вы можете попытаться проверить, зарегистрированы ли ваши устройства в каталоге / dev / serial / by-id /.
Эти имена должны быть согласованы и будут указывать (символическая ссылка) на правильный ttyUSBx
источник
ls -l /dev/serial/by-id
возвращает только один адаптер../../ttyUSB1
, покаls -l /sys/bus/usb-serial/devices
показывает мне оба. Поэтому я не думаю, что это хороший ответ.У меня была похожая проблема .
Напишите это /etc/udev/rules.d/50-usb.rules
к концу. Перезагрузка.
Теперь вы можете использовать,
/dev/ONDA
чтобы добраться до устройства ONDA.Если вы хотите, чтобы пользователи без полномочий root могли использовать их, добавьте
до конца каждой строки.
источник
udevadm info --name=/dev/ttyACM0
Я бы использовал udev и написал несколько правил, которые создают символические ссылки для устройств.
Чтобы получить достаточно информации, чтобы различать устройства, попробуйте что-то подобное для всех устройств:
источник
Следующие команды предоставят мне список имен устройств ttyUSB, связанных с 19d2: 0016 (который является идентификатором «modem mode» для ZTE MF831 LTE-флешки, ваши могут отличаться.):
Это перебирает список файлов с именем ttyUSB *, включая символические ссылки, в / sys / bus / usb / devices. В результатах мы будем искать файл с именем modalias и искать строку, содержащую идентификатор поставщика "v" "19d2" и идентификатор продукта "p" 0016. Если выходные данные совпадают, мы выведем строку с префиксом "/ dev / "перед USB? имя. Первый или обычно последний (самый высокий номер) Afaik - это порт модема для устройств ZTE. Вы можете отобразить результаты в файл в / tmp / и заголовок -n1 или tail -n1 строки соответственно. Если у вас есть концентраторы, возможно, вам придется увеличить maxdepth.
Это не самый элегантный способ, но он будет работать практически на любом варианте Linux.
источник