Jump to content

Skif_OP11

Forum Members
  • Posts

    12
  • Joined

  • Last visited

Posts posted by Skif_OP11

  1. 11 hours ago, Le ecureuil said:

    Ну например они видятся как USB CDC-сетевухи, и собственно резервируют на хабе 100M FDX на себя каждый + оверхед. Итого третьему уже не влезть - на него не осталось.

    Если такое согласование в USB существует (ткните меня носом в ссылочку, пожалуйста) то у человка Spectre всегда бы третий модем не обнаруживался.
    В момент подключения в USB модем ведь не знает какой протокол обмена хост будет использовать - ppp или ethernet.
    Ну или третий модем подключает Endpoint-ы типа "последовательные порты" но не подключает виртуальную сетевуху по причине недостатка полосы,
    поэтому у Spectre он работает как UsbModem но не работает как UsbLte.
    Но это как-то уж черезчур высокотехнологично. Пока нам не покажут логи при подключении третьего e3372 в Кинетик - правду не узнаем.

  2. 5 hours ago, Le ecureuil said:

    Я думаю там или не хватает питания, или уже подключенные модемы резервируют столько полосы на USB, что третьего тупо не подключают из-за недостатка этой самой полосы.

    Я тоже подозревал недостаток питания, поэтому и спросил что делает LED на третьем модеме.
    Про резервирование полосы в USB никогда не слышал.
    И зачем им много полосы еще и зарезервированной впрок - под microSD ?

  3. On 10/29/2019 at 10:27 AM, Skif_OP11 said:

    Хм... Неужели такой мизерный лимит количества одновременных NDIS модемов в Кинетике?

    Попробовал использовать одновременно 3 модема - e3372, e3531 и e3131.
    С вашей "проблемой 3-го модема" не столкнулся - все три завелись, причем в пассивном хабе.
    В  e3531 и e3131 пришлось подкрутить настройку AT^SETPORT, иначе Кинетик
    считает что они - UsbModem а не UsbLTE.

    Возможно, у Вас проблемы с хабом.

    3modems.jpg

    show.txt

  4. 12 hours ago, Spectre said:

    Небольшой апдейт от меня.

    На выходных попробовал 3 модема (напомню, одинаковых e3372) подключить в Keenetic. Эффект получился совершенно неожиданным - определилось только 2 модема (UsbLte0 и UsbLte1), а третьего как не бывало (show usb тоже не показывает). При ребуте Keenetic'а он случайным образом выбирает 2 модема, а 3-й никогда не появляется. Причем это не зависит от того, в какие порты они включены.

    Дальше я удалил компонент для работы с NDIS модемами чтобы заставить их работать в CDC. Снова вижу только 2 модема.

    Дальше удалил и CDC компонент и наконец получил все 3 модема как UsbModem0..2 в системе. С тем-же рандомным назначением портов.

    При таком раскладе (модемы не работают как CDC/NDIS) мой скрипт смысл теряет, поэтому планирую на днях еще поэкспериментировать как заставить все 3 модема работать. Очень бы не хотелось для этого задействовать 2-й Keenetic или даже уезжать на PfSense.

    Хм... Неужели такой мизерный лимит количества одновременных NDIS модемов в Кинетике?
    Тянет на баг!
    Ну прям одолжу у кого-то третий модем, хочу сам посмотреть!
    Что лог Кинетика пишет при втыкании 3-го модема? Мерцает ли LED на модеме?
    А действительно ли для превращения NDIS в CDC достаточно снести компонент?
    Я считал что для CDC нужно перешить модем из "Stick" (версия прошивки 21.*) на HiLink (22.x)

    Но, в принципе, принципиальной технической разницы между UsbModem и UsbLte нет.
    Там и там мы инициируем соединение и получаем IP адрес от провайдера,
    в отличие от CDC, который соединяется без спросу и выдает 192.168.8
    Ну, подумаешь, pppd из прошлого века с двух сторон USB запущен...
    Сомневаюсь что он так грузит проц модема что тормозит трафик.

    Так что на Вашем месте я бы решил - UsbModem так UsbModem!

  5. О двух модемах в хабе. Конструкция - на фото. Это 4-портовый пассивный хаб.
    Хотя... какое-то отверстие для БП там есть, но я ни разу не пробовал его использовать ибо БП в комплекте не было.
    Смотрю что где паким скриптом

    # for Dir in /sys/bus/usb/devices/*; do Id=$Dir/idVendor; [ -f $Id ] && echo "$Id=`cat $Id`" && ls -1d $Dir/*/ttyUSB* 2>/dev/null; done
    /sys/bus/usb/devices/1-1/idVendor=1a40
    /sys/bus/usb/devices/1-1.1/idVendor=12d1
    /sys/bus/usb/devices/1-1.1/1-1.1:1.0/ttyUSB0
    /sys/bus/usb/devices/1-1.1/1-1.1:1.1/ttyUSB1
    /sys/bus/usb/devices/1-1.4/idVendor=12d1
    /sys/bus/usb/devices/1-1.4/1-1.4:1.0/ttyUSB2
    /sys/bus/usb/devices/1-1.4/1-1.4:1.1/ttyUSB3
    /sys/bus/usb/devices/1-2/idVendor=090c
    /sys/bus/usb/devices/usb1/idVendor=1d6b
    /sys/bus/usb/devices/usb2/idVendor=1d6b

    Видно что номера портов с модемами  с точки зрения ядра - 1-1.1 и 1-1.4.
    Если верхний модем переставлять вправо в оставшиеся USB разъёмы, он будет оказываться 1-1.2 и 1-1.3.

    Пробую виртуально отключить, скажем, модем в порту 1-1.4
    echo 1-1.4 > /sys/bus/usb/drivers/usb/unbind
    Модем из системы пропадает, при этом на самом модеме даже связь не разрыватся (LED не тухнет)
    Network::Interface::Usb: "UsbLte1": interface "UsbLte1" is unplugged.

    Отключаю первый -

    echo 1-1.1 > /sys/bus/usb/drivers/usb/unbind
    Network::Interface::Usb: "UsbLte0": interface "UsbLte0" is unplugged

    "Включаю" в том же порядке -

    echo 1-1.4 > /sys/bus/usb/drivers/usb/bind
    Network::Interface::Usb: "UsbLte0": interface "UsbLte0" is plugged (port 1).
    echo 1-1.1 > /sys/bus/usb/drivers/usb/bind
    Network::Interface::Usb: "UsbLte1": interface "UsbLte1" is plugged (port 1).

    Всё - интерфейсы "поменялись местами".
    Нижний модем стал UsbLte0, верхний - UsbLte1.

    Осталось оформить это в виде умного скрипта и положить в /opt/etc/init.d кому нужно.

    2modems.jpg

  6. 31 minutes ago, Spectre said:

    Появилась идея попробовать обновление настроек модемов через CLI. Из минусов - к ребуту модема привязаться не получится (придется дергать постоянно его), из плюсов - не нужна Entware.

    Поставил компонент SSH-сервер, пробую:

    
    ssh admin@192.168.1.1 "sh ru"

    Все хорошо работает - доступны команды на изменение имен модемов, привязок модемов, down интерфейсов, ребут можно сделать свой собственный. Есть только проблема - пока не нашел как различить где какой модем. MAC-адреса у них возвращает одинаковые:

    
    (config)> more sys:/devices/virtual/net/lte_br0/address
    00:1e:10:1f:00:00
    
    (config)> more sys:/devices/virtual/net/lte_br1/address
    00:1e:10:1f:00:00

    а информацию о сети я узнаю уже после подключения, да и непонятно как ее прочитать.

    Не нужна Entware - сомнительный "плюс". Если его не отягощать бесполезными демонами то он даже ресурсов почти не потребляет.
    А если его поставить на microSD в модем, то даже USB порт не займет.
    Но тогда, конечно, модем дёргать нежелательно.

    Да, МАК одинаковый. Бесполезный для идентификации параметр

  7. 1 hour ago, Spectre said:

    Насчет привязки к USB-порту - у меня есть опасение, что она не будет правильно работать при использовании USB-хаба. То есть, предположим, что порт USB1 занимает активный хаб с 2-3 модемами, а порт USB2 занимает флешка с Entware, в этом случае все модемы будут висеть на одном порту.

    Я еще вчера искал как можно id модема сменить (это для PfSense иногда делают), насколько понял это делается не в прошивке модема, а путем его представления системе. То есть опять-таки это ведет к скриптам Entware.

    Это хороший вариант, я вчера о чем-то подобном думал. Правда есть минус - занимаем один USB-разъем, то есть обязательно требуется активный USB-хаб чтобы по питанию вытягивал 2-3 модема на одном порту.

    А у активного хаба уже есть уже другая проблема - его Keenetic не можем перезагрузить по питанию, то есть при зависании одного из модемов его придется физически выдергивать из хаба. По этой причине я пока отказался от его использования.

    Спасибо за информацию, но пока это меня не затронуло - на всех модемах серые или белые IP. Но это буду держать в голове если надумаю перестать платить за статические IP.

    В случае с хабом все равно каждый USB порт получит свой уникальный ID.
    Иначе бы система не могла обращаться конкретному устройству в хабе.

    USB ID модема, наверно, можно сменить через AT^NVWREX, но в какой именно регистр я нашел.
    Для "перепредставления" устройства системе нужен ядерный модуль "udev", в Keenetic OS я такого не вижу

    У меня пассивний хаб, Keenetic II два модема тянет без проблем. Три не пробовал.

    Нормальные модемы с хорошими прошивками виснут крайне редко. У меня e3372, боюсь, что даже ни разу...
    В ping-check profile "power-cycle" можно выключить.

  8. 9 hours ago, Spectre said:

    У меня всплыла аналогичная проблема.

    Раньше было 2 разных модема - Huawei e3131 и e3372, все работало отлично. Сейчас поменял первый из них и стало 2 одинаковых e3372. Боле того, купил еще и 3-й такой-же, чтобы сделать двойное резервирование и поиграться с multipath.

    Перезагрузка модема теперь вызывает сильный дискомфорт - приходится лазить по админке чтобы Connection'ы переименовать, дальше чтобы им правильные привязки выставить, дальше подключаться через терминал чтобы у одного модема принудительно UMTS режим выставить (а у второго снять).

    Может все-таки рассмотреть вопрос с привязкой к прошивке или какому-то другому атрибуту модема?..

    sh ru:

    
    interface UsbLte0
        description A1
        usb device-id 12d1 1506
        usb acq umts
        security-level public
        ip address dhcp
        ip dhcp client dns-routes
        ip dhcp client name-servers
        ip global 57555
        ping-check profile default
        up
    !
    interface UsbLte1
        description MTS
        usb device-id 12d1 1506
        security-level public
        ip address dhcp
        ip dhcp client dns-routes
        ip dhcp client name-servers
        ip global 60215
        ping-check profile default
        up
    !

    Да, налицо явное отсутствие нужной софтовой фичи!
    Думаю проще всего привязку к USB порту сделать.
    Его адрес известен системе сразу же при старте,
    а чтобы выяснить, например, серийник модема с ним
    нужно пообщаться, т.е. требуется дополнительный код.

    Если любите играться со скриптами в Entware то есть такая идея.
    При старте делаем всем модемам "unbind", т.е. записываем адреса
    портов в /sys/bus/usb/drivers/usb/unbind
    Далее, с некоторым интервалом делаем "bind".
    Модемы должны появится в системе именно в этом порядке.
    Такой-себе костыль...

    С e3372 есть еще один косяк.
    Если провайдер выдает IP 10.x.x.x то модем по dhcp выдает
    10.x.x.x/8 (да-да, mask 255.0.0.0 !) gate 10.0.0.1
    т.е. весь "десятый" диапазон оказывается занят модемом.
    После этого не вскипают VPN-ы выдающие, скажем, 10.177.177.5/30
    с ошибкой конфликта адресов.
    Ну и другие модемы где оператор выдает 10.y.y.y тоже оказываются
    в нерабочем положении.
    Пришлось заменить hook /var/run/ndhcpc-lte_br0 (его запускает
    dhcp клиент /sbin/ndhcpc при получении IP адреса) на скрипт,
    меняющий полученную маску /8 на /31 а шлюз на (IP xor 1)
    Тогда, например, вместо 10.112.5.28/8 gw 10.0.0.1
    система прибивает 10.112.5.28/31 gw 10.112.5.29 и всё работает.

     

  9. On 9/3/2019 at 8:32 PM, Mikesk said:

    Перешить один из модемов, чтобы работал в другом режиме (CdcEthernet например).

    Спасибо за идею, так и сделал!
    Теперь один модем строго UsbLte0, второй - CdcEthernet0.
    Думаю что делать если понадобится третий модем :)
    В команде CLI usb device-id {vendor} {model} явно не хватает
    третьего необязательного параметра [Bus[:Port[:Dev]]]

    Чтобы, скажем,
    interface UsbLte0
     usb device-id 12d1 1506 1:2
    присваивался только если этот модем вставлен именно в этот USB порт

  10. Добрый день!

    Такая проблема. Есть два USB модема с SIM картами.
    На одной много Интерента, на второй - безлимитный IPTV.
    Соответственно, настройки и привязки устройств к профилям - разные.
    Работают одновременно через USB хаб.
    При включении или сбросе по ping-check модемы привязывпются
    к интерфейсам UsbLte0 и UsbLte1 в непредсказуемом порядке.
    100% можно предсказать только если один модем заранее отключить.

    Подскажите, пожалуйста, как сделать жесткую привязку модема X к интерфейсу UsbLteX ?
    Или как вариант - привязку USB порта X к интерфейсу UsbLteX ?

    Настройка "usb device-id {vendor} {model}" не подходит,
    т.к. хоть модемы и разные, после срабатывания usb_modeswitch
    (или что там в ndms) device-id у них становится одинаковым.
    Если сделать AT^PORTMODE="FF;..." device-id одинаковый уже прямо изначально.

    Any ideas?

    • Upvote 1
×
×
  • Create New...