Я использую USB-модем Huawei GMS / UMTS с Gnokii и Gammu. Модем был в нижнем порту на Пи. С dmesg | grep tty
этим будет отображаться /dev/ttyUSB0
и /dev/ttyUSB1
. (2 USB-устройства на 1 флешке - это нормально, в этом случае).
Я настроил Gnokii и Gammu соответственно, однако на ttyUSB0 я мог только отправлять сообщения. Как отправка, так и получение будут работать только через ttyUSB1.
Затем я переместил флешку в верхнее гнездо USB (потому что в противном случае моя WiFi-флешка не поместилась бы рядом с ней). Все продолжало работать нормально. Также после нескольких перезагрузок холодно и тепло.
Затем мне нужно было расширить файловую систему (да, я знаю, что должен был сделать это раньше). После этого модем был на ttyUSB0 и ttyUSB * 2 *. Отправка / получение работали по последнему. Это заняло у меня некоторое время, чтобы узнать.
Обновление: через 2 дня ttyUSB2 исчез. Рабочий модем теперь проявляется на ttyUSB0 (был ttyUSB1).
Есть идеи, почему это произошло? Возможно, есть какие-нибудь ссылки на соответствующие документы по Debian или Linux? Я был бы очень обязан ..
источник
/sys/class/tty/
качестве руководства.Ответы:
Документация Gammu предлагает (но не вдаваться в подробности) обходной путь,
Редактировать: Atmel имеет Замечание по применению, которое хорошо описывает процесс перечисления.
Перечисление изменяется, потому что это происходит в диалоге между хостом, концентратором и устройством, и время отклика от каждого из них может варьироваться, даже если настройка идентична от одной перезагрузки к следующей.
Обновление: решение не легко найти в сети, и разбросаны по частям повсюду. Поэтому я собрал все это в одном документе . Вот к чему это сводится.
1. узнать что есть на ttyUSB:
2. перечислите все атрибуты устройства и выберите набор уникальных идентификаторов, например, idVendor + idProduct (и, при необходимости, SerialNumber, если у вас более одного устройства с одинаковыми idVendor и idProduct).
3. Создайте файл
/etc/udev/rules.d/99-usb-serial.rules
с такой строкой:(при условии, что вам не нужен серийный номер там, и, конечно, с номерами для idVendor и idProduct, которые вы нашли в шаге 2.
4. Загрузите новое правило:
5. Проверьте, что случилось:
покажет, на какой номер ttyUSB пошла символическая ссылка. Если это так
/dev/ttyUSB1
, то проверьте, кому это принадлежит и к какой группе оно принадлежит:Тогда просто для удовольствия:
источник
Вы частично ответили на свой вопрос, но есть другой способ сделать это, особенно для последовательных устройств:
/dev/serial/*
пути. У меня на Raspberry Pi интерфейс Prolific USB → RS232, который почти всегда отображается как/dev/ttyUSB0
. Но это также появляется в системе как:/dev/serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0
/dev/serial/by-id/usb-067b_2303-if00-port0
Использование
by-id
ссылки должно остаться прежним, если я не добавлю еще один конвертер на основе PL2303.источник