3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
Модераторы: SLEDopit, Модераторы разделов
-
nlk
- Сообщения: 10
3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
Приветствую!
Имеется 2 модема huawei (e150, e352), Одновременно втыкаю их в юсб порты своего компа, они определяются, и создают в каталоге /dev 6 устройств - ttyUSB0-ttyUSB6 (иногда другие номера).
Задача:
Найти, какому из модемов какие порты принадлежать, а так же, определить, какой порт командный, а какой - порт данных.
С поиском командного порта проблем не возникло, просто шлю туда команду АТ, и смотрю, что мне пришло в ответ. А вот с остальным проблема.
Я могу найти сами модемы путем перебора каталогов в /sys/bus/usb/devices/
Если находу файл idVendor в одном из каталогов, читаю его значение с известным мне vendor id. Если совпадает, то это модем. Таким образом, я могу узнать busnum, devnum, а так-же, содержимое файла dev, который так же находится в этом каталоге.
Как мне найти теперь, какие порты принадлежат этому модему?
В каталоге /sys/bus/usb-serial/devices/ нашел симлинки с именами, аналогичными файлам в каталоге /dev.
не могу найти взаимосвязи. Может кто сталкивался с подобной задачей?
Имеется 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, и определить кто из этих портов кто?
Конкретно по заданному вопросу разве что вечером смогу подсказать, когда буду дома, и будет, что воткнуть в USB. Однако сразу возникает вопрос — а не зайти ли с другой стороны? С помощью udev создавать при подключении конкретного устройства симлинк с заведомо известным именем, а не выискивать потом, что есть что.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
nlk
- Сообщения: 10
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
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, и определить кто из этих портов кто?
Ну серийные номера-то у них разные?
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
И mac-адреса, скорее всего, разные.
-
nlk
- Сообщения: 10
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
Я к тому, что если pid одинаковый будет, то как он обзовет второй симлинк? 2 одинаковых быть не может ведь)
-
Bizdelnick
- Модератор
- Сообщения: 21528
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
Как пропишете в правиле, так и обзовёт. ATTR{serial} в помощь.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
nlk
- Сообщения: 10
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
Это все полу-меры 
Я хочу воткнуть мопед, запустить скрипт, и он сам находит все, а не лезть в какие то конфиги
Я хочу воткнуть мопед, запустить скрипт, и он сам находит все, а не лезть в какие то конфиги
-
Bizdelnick
- Модератор
- Сообщения: 21528
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
Ну конфиг-то правится один раз, а скрипт придётся запускать при каждом подключении.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
s.xbatob
- Сообщения: 1139
- ОС: Fedora
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
А что за дистрибутив? У меня давным-давно создаются в /dev/serial/by-*/ консистентные имена.
Только если есть несколько одинаковых устройств, то деваться некуда: приходится привязываться к портам USB
Только если есть несколько одинаковых устройств, то деваться некуда: приходится привязываться к портам USB
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
А Вас устроит вариант просто "воткнуть мопед" и не запускать никаких скриптов?
Если да, тогда можно написать правило для udev в одну строчку в обычном текстовом файле, положить этот файл в /etc/udev/rules.d и больше о нём не вспоминать.
Но чтобы это сделать, нужно взять за основу нечто такое, чем один мопед отличается от другого.
Серийный номер, о котором Вам выше уже сказали, подходит, как нельзя лучше.
-
Bizdelnick
- Модератор
- Сообщения: 21528
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
Ну вот подключил я девайс:
A901O4RB — это серийный номер устройства. Даже самому никаких правил прописывать не надо.
$
$ 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, и определить кто из этих портов кто?
$
$ 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, и определить кто из этих портов кто?
pci-0000:00:14.0-usb-0:2:1 это привязка к порту USB, а всё, что дальше - это уже интерфейсы модема. Вам не надо знать что они означают, важно, что они не меняются (пока вы не воткнёте модем в другой порт)
Ваша проблема в том, что модемы предоставляют недостаточно информации, чтобы их различить, поэтому в by-id создаётся только один комплект ссылок.
Ваша проблема в том, что модемы предоставляют недостаточно информации, чтобы их различить, поэтому в by-id создаётся только один комплект ссылок.
-
Bizdelnick
- Модератор
- Сообщения: 21528
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: 3g модем. Как найти "родителя" устройств ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,ttyUSB4, etc, и определить кто из этих портов кто?
В /sys/bus/usb/devices/* файл serial присутствует? Что в нём?
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |