3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

nlk
Сообщения: 10

3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение nlk »

Приветствую!
Имеется 2 модема huawei (e150, e352), Одновременно втыкаю их в юсб порты своего компа, они определяются, и создают в каталоге /dev 6 устройств - ttyUSB0-ttyUSB6 (иногда другие номера).

Задача:
Найти, какому из модемов какие порты принадлежать, а так же, определить, какой порт командный, а какой - порт данных.

С поиском командного порта проблем не возникло, просто шлю туда команду АТ, и смотрю, что мне пришло в ответ. А вот с остальным проблема.
Я могу найти сами модемы путем перебора каталогов в /sys/bus/usb/devices/
Если находу файл idVendor в одном из каталогов, читаю его значение с известным мне vendor id. Если совпадает, то это модем. Таким образом, я могу узнать busnum, devnum, а так-же, содержимое файла dev, который так же находится в этом каталоге.
Как мне найти теперь, какие порты принадлежат этому модему?

В каталоге /sys/bus/usb-serial/devices/ нашел симлинки с именами, аналогичными файлам в каталоге /dev.

не могу найти взаимосвязи. Может кто сталкивался с подобной задачей?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21528
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Bizdelnick »

Конкретно по заданному вопросу разве что вечером смогу подсказать, когда буду дома, и будет, что воткнуть в USB. Однако сразу возникает вопрос — а не зайти ли с другой стороны? С помощью udev создавать при подключении конкретного устройства симлинк с заведомо известным именем, а не выискивать потом, что есть что.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
nlk
Сообщения: 10

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение nlk »

Bizdelnick писал(а):
20.10.2015 13:56
С помощью udev создавать при подключении конкретного устройства симлинк с заведомо известным именем, а не выискивать потом, что есть что.

Этот вариант я испытывал вчера, но что будет, если я воткну 2 модема с одинаковым product id? ;]

ps:// буду ждать вашего ответа :)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21528
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Bizdelnick »

nlk писал(а):
20.10.2015 13:58
что будет, если я воткну 2 модема с одинаковым product id?

Ну серийные номера-то у них разные?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Hephaestus »

И mac-адреса, скорее всего, разные.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
nlk
Сообщения: 10

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение nlk »

Bizdelnick писал(а):
20.10.2015 14:11
nlk писал(а):
20.10.2015 13:58
что будет, если я воткну 2 модема с одинаковым product id?

Ну серийные номера-то у них разные?

Я к тому, что если pid одинаковый будет, то как он обзовет второй симлинк? 2 одинаковых быть не может ведь)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21528
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Bizdelnick »

nlk писал(а):
20.10.2015 17:05
Я к тому, что если pid одинаковый будет, то как он обзовет второй симлинк? 2 одинаковых быть не может ведь)

Как пропишете в правиле, так и обзовёт. ATTR{serial} в помощь.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
nlk
Сообщения: 10

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение nlk »

Это все полу-меры :)
Я хочу воткнуть мопед, запустить скрипт, и он сам находит все, а не лезть в какие то конфиги :)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21528
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Bizdelnick »

Ну конфиг-то правится один раз, а скрипт придётся запускать при каждом подключении.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение s.xbatob »

А что за дистрибутив? У меня давным-давно создаются в /dev/serial/by-*/ консистентные имена.
Только если есть несколько одинаковых устройств, то деваться некуда: приходится привязываться к портам USB
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Hephaestus »

nlk писал(а):
20.10.2015 18:05
Я хочу воткнуть мопед, запустить скрипт, и он сам находит все
А Вас устроит вариант просто "воткнуть мопед" и не запускать никаких скриптов?
Если да, тогда можно написать правило для udev в одну строчку в обычном текстовом файле, положить этот файл в /etc/udev/rules.d и больше о нём не вспоминать.
Но чтобы это сделать, нужно взять за основу нечто такое, чем один мопед отличается от другого.
Серийный номер, о котором Вам выше уже сказали, подходит, как нельзя лучше.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21528
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Bizdelnick »

Ну вот подключил я девайс:

$

$ ls -l /dev/serial/by-id/ итого 0 lrwxrwxrwx 1 root root 13 окт. 20 22:33 usb-FTDI_FT232R_USB_UART_A901O4RB-if00-port0 -> ../../ttyUSB0 $

A901O4RB — это серийный номер устройства. Даже самому никаких правил прописывать не надо.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
nlk
Сообщения: 10

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение nlk »

Bizdelnick писал(а):
20.10.2015 22:47
Ну вот подключил я девайс:

$

$ ls -l /dev/serial/by-id/ итого 0 lrwxrwxrwx 1 root root 13 окт. 21 09:16 usb-HUAWEI_Technology_HUAWEI_Mobile-if00-port0 -> ../../ttyUSB8 lrwxrwxrwx 1 root root 13 окт. 21 09:16 usb-HUAWEI_Technology_HUAWEI_Mobile-if01-port0 -> ../../ttyUSB9 lrwxrwxrwx 1 root root 14 окт. 21 09:16 usb-HUAWEI_Technology_HUAWEI_Mobile-if02-port0 -> ../../ttyUSB10


Серийного номера не наблюдаю)
Ну и, не все симлинки тут :)

$

$ ls -la /dev/| grep USB crw-rw---- 1 root dialout 188, 10 окт. 21 09:17 ttyUSB10 crw-rw---- 1 root dialout 188, 5 окт. 21 09:16 ttyUSB5 crw-rw---- 1 root dialout 188, 6 окт. 21 09:17 ttyUSB6 crw-rw---- 1 root dialout 188, 7 окт. 21 09:17 ttyUSB7 crw-rw---- 1 root dialout 188, 8 окт. 21 09:16 ttyUSB8 crw-rw---- 1 root dialout 188, 9 окт. 21 09:17 ttyUSB9



А вот тут все есть

$

# ls -l /dev/serial/by-path/ итого 0 lrwxrwxrwx 1 root root 13 окт. 21 09:16 pci-0000:00:14.0-usb-0:2:1.0-port0 -> ../../ttyUSB5 lrwxrwxrwx 1 root root 13 окт. 21 09:16 pci-0000:00:14.0-usb-0:2:1.1-port0 -> ../../ttyUSB6 lrwxrwxrwx 1 root root 13 окт. 21 09:16 pci-0000:00:14.0-usb-0:2:1.2-port0 -> ../../ttyUSB7 lrwxrwxrwx 1 root root 13 окт. 21 09:16 pci-0000:00:14.0-usb-0:4:1.0-port0 -> ../../ttyUSB8 lrwxrwxrwx 1 root root 13 окт. 21 09:16 pci-0000:00:14.0-usb-0:4:1.1-port0 -> ../../ttyUSB9 lrwxrwxrwx 1 root root 14 окт. 21 09:16 pci-0000:00:14.0-usb-0:4:1.2-port0 -> ../../ttyUSB10


Но проблема в том, что я непойму, что все эти цифры в пути означают :(
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение s.xbatob »

pci-0000:00:14.0-usb-0:2:1 это привязка к порту USB, а всё, что дальше - это уже интерфейсы модема. Вам не надо знать что они означают, важно, что они не меняются (пока вы не воткнёте модем в другой порт)
Ваша проблема в том, что модемы предоставляют недостаточно информации, чтобы их различить, поэтому в by-id создаётся только один комплект ссылок.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21528
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?

Сообщение Bizdelnick »

В /sys/bus/usb/devices/* файл serial присутствует? Что в нём?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: