Ответы пользователя по тегу Linux
  • Почему разрывается соединение МТС GPRS в Ubuntu?

    @imz
    (Вынесу из комментов, потому что это тоже возможный ответ на вопрос в определённой ситуации.)

    Похожим образом могут проявляться "особенности" модема "Билайн".

    (Вставил сим-карту МТС и я-то думал: раз интернет совершенно нормальный 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

    И вот, интернет работает, пишу через него.
    Ответ написан
    2 комментария