(Вынесу из комментов, потому что это тоже возможный ответ на вопрос в определённой ситуации.)
Похожим образом могут проявляться "особенности" модема "Билайн".
(Вставил сим-карту МТС и я-то думал: раз интернет совершенно нормальный 2.3 минуты, то нет у модема какого-то beeline lock-in, ну и МТСу, конечно, всё равно, какой модем, потому что мобильных устройств-то куча разных).
А вот пишут в
homenet.beeline.ru/index.php?s=8e6979064f9c64a4156... :
Билайновское ПО каждые две минуты посылает модему AT-команду,если модем её не получил происходит дисконнект.Об этом на форуме писалось не однократно.
Т.е. в принципе не важно, какую симкарту вы в такой модем вставите, но если используете из Ubuntu или другой системы без билайновского ПО, получается, не будет полноценно работать. Надо какие-то специальные at-команды ему посылать или ещё как-то решать проблему (поменять прошивку).
Вот как это бывает устроено в модемах "Билайн" --
alexkuklin.livejournal.com/820953.html?thread=5839... :
Ну, гентушники - они вроде не так подвежены ФГМ, как бубунтушники - читай ru.gentoo-wiki.com/wiki/MF626
Там есть еще круче, про вычисляемый код.
В новой версии программы команды чуть другие и простым AT+ZOPERTE="beeline" не обойтись.
Code:
OUT: AT+CPBS="SM"\r\n
OUT: AT+CPMS="SM","SM",""\r\n
OUT: AT+ZOPRT=6\r\n
^^^^^ остановка цикла
OUT: AT+ZOPRT=5\r\n
^^^^^ запуск нового цикла
OUT: AT+ZSTART\r\n
^^^^^ судя по всему уже не обязателен
IN: +ZOPERTER: 0,XXXXXXXXXXXXXXXX\r\n
^^^^^ запрос от модема. на этот запрос и нужно отвечать
OUT: AT+ZOPERTE=1,YYYYYYYY\r\n
^^^^^ а это наш ответ
IN: +ZOPERTE: 1,1
^^^^^ а это модем сказал что мы угадали
(или 1,0 если не угадали. в этом случае модем краснеет
и перестает работать до следующего перезапуска цикла)
IN: +ZOPERTER: 1,XXXXXXXXXXXXXXXX\r\n
^^^^^ через ~2-3 минуты модем снова задает вопрос
Если правильно и быстро (на это есть около 20 секунд) отвечать на все +ZOPERTER: то модем исправно работает, если не отвечать вообще, то модем работает около 3х минут, задает второй вопрос(первый он задает сразу при запуске цикла), ждет 20 секунд ответа, а потом краснеет, рвет соединение и все.
А вот теперь самое главное: алгоритм по которому вычисляется это самое YYYYYYYY. Алгоритм есть. Неделя истязаний дизассемблером нового exe'шника от Beeline принесла свои плоды. Код пока очень сырой, т.к. является прямым преобразованием из ASM в C++ (чуть более 1000 строк) :) так что как доведу до ума, куда-нить выложу. Пока модем пашет уже около часа и все ОК. Если есть пожелания пишите на alexunnamed.tomsk.ru.
Не знаю пока, есть ли этот код.
URL упомянутой wiki сменился; см.
gentoo-wiki.vfose.ru/wiki/MF626 :
Неделя истязаний дизассемблером нового exe'шника от Beeline принесла свои плоды. Код пока очень сырой, т.к. является прямым преобразованием из ASM в C++ (чуть более 1000 строк) :) так что как доведу до ума, куда-нить выложу. Пока модем пашет уже около часа и все ОК. Если есть пожелания пишите на alexunnamed.tomsk.ru. Утилита для работы под Linux выложена здесь www.altcomtsk.info/index.php?option=com_content&vi...
Эту программу с секретом на просторах интернета удалось скачать только по ссылке с
yanex.org/beeline-zte-mf170-v-linux (в остальных местах протухло). У людей оно вроде как даже работало (запускаем одновременно mf626-b09 и звонилку/pppd;
например, в моём ALT; вообще, по запросу "mf626-b09" в google много примеров её использования).
Могу подтвердить: эта программа общается с модемом и не даёт ему отвалиться через 2 минуты (видно по зелёному индикатору, который раньше становился красным), т.е. секрет разгадан верно.
Но в моей системе pppd (под управлением звонилки) не может работать с устройством /dev/ttyUSB32 одновременно с этой программой (возможно, в более старых linux это было возможно и у людей работало): Resource temporarily unavailable.
К сожалению, как верно
возмутился zerg, программа распространяется без исходников, поэтому тяжело объединить разгаданный секрет со звонилкой так, чтобы они друг другу не мешали (хочется, скажем, чтобы общение звонилки с модемом шло через mf626-b09).
У желающих использовать этот модем (или подобный) в современном linux (предполагаю, что раньше как-то двум программам удавалось одновременно получать доступ к устройству, а сейчас нет) остаётся ещё способ поменять прошивку. Я же пока прекращу терять время на возню с ним.
О! Это NetworkManager оказался капризным (хотя я вроде видел, что люди писали, что можно его использовть). Я вручную запустил pppd (подсмотрел в /proc/NNNN/cmdline , как это делал NetworkManager):
/usr/sbin/pppd nodetach lock nodefaultroute ipv6 , user mts ttyUSB34 noipdefault noauth usepeerdns lcp-echo-failure 0 lcp-echo-interval 0 ipparam /org/freedesktop/NetworkManager/PPP/5 plugin /usr/lib64/pppd/2.4.5/nm-pppd-plugin.so
и пришлось ещё сделать (видимо, NetworkManager сам добавляет маршрут, а я не сообразил сразу, что в команде pppd этого нет):
ip route add to default via 10.64.64.64 dev ppp0
И вот, интернет работает, пишу через него.