ZTE MF626 (Билайн. Интернет дома) и Linux [РЕШЕНО]

Намедни приобрёл я вышеозначенный комплект. Поискав, что пишут люди по этому поводу (а MF620 прекрасно работает под линуксом), я предположил что проблем не будет, но, не тут-то было!

1. Устройство определяется с vid=0x19d2 pid=0x2000 и подключается как usb диск (на котором расположены драйверы и программа для Windows). В сети пишут, что нужно запустить usb_modeswitch, чтобы отключить диск и подключить модем, но в реальности всё оказалось несколько сложнее... Вот что случается при подключении:

Цитата:
usb 1-5: new high speed USB device using ehci_hcd and address 9
usb 1-5: configuration #1 chosen from 1 choice
usb-storage: device ignored
usb 1-5: New USB device found, idVendor=19d2, idProduct=2000
usb 1-5: New USB device strings: Mfr=2, Product=1, SerialNumber=0
usb 1-5: Product: ZTE CDMA Technologies MSM
usb 1-5: Manufacturer: ZTE, Incorporated

И тишина... Немного поискав в исходниках ядра, можно найти

# cat /usr/src/linux/drivers/usb/storage/unusual_devs.h 
...

...UNUSUAL_DEV(  0x19d2, 0x2000, 0x0000, 0x0000,               
                "Onda ET502HS",                               
                "USB MMC Storage",                            
                US_SC_DEVICE, US_PR_DEVICE, NULL,             
                US_FL_IGNORE_DEVICE),

После комментирования этого фрагмента, пересборки, перезагрузки, и создания правила для udev, которое использует usb_modeswitch, получаем:

Цитата:
usb 1-7: new high speed USB device using ehci_hcd and address 5
usb 1-7: configuration #1 chosen from 1 choice
scsi7 : SCSI emulation for USB Mass Storage devices
usb 1-7: New USB device found, idVendor=19d2, idProduct=2000
usb 1-7: New USB device strings: Mfr=2, Product=1, SerialNumber=0
usb 1-7: Product: ZTE CDMA Technologies MSM
usb 1-7: Manufacturer: ZTE, Incorporated
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 7:0:0:0: CD-ROM ZTE USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 0
sr1: scsi3-mmc drive: 0x/52x cd/rw xa/form2 cdda tray
sr 7:0:0:0: Attached scsi CD-ROM sr1
sr 7:0:0:0: Attached scsi generic sg2 type 5
usb 1-7: USB disconnect, address 5
usb 1-7: new high speed USB device using ehci_hcd and address 6
usb 1-7: configuration #1 chosen from 1 choice
scsi8 : SCSI emulation for USB Mass Storage devices
usb 1-7: New USB device found, idVendor=19d2, idProduct=0031
usb 1-7: New USB device strings: Mfr=2, Product=1, SerialNumber=3
usb 1-7: Product: ZTE CDMA Technologies MSM
usb 1-7: Manufacturer: ZTE, Incorporated
usb 1-7: SerialNumber: 1234567890ABCDEF

usb-storage: device found at 6
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 8:0:0:0: Direct-Access ZTE MMC Storage 322 PQ: 0 ANSI: 2
sd 8:0:0:0: [sdb] Attached SCSI removable disk
sd 8:0:0:0: Attached scsi generic sg2 type 0

Как видно, модем опознан. После modprobe usbserial vendor=0x19d2 product=0x0031 появляется устройство /dev/ttyUSB0... Казалось бы, всё в порядке, и можно подключаться, но, не тут то было...

2. Соединение с сетью у данного модема происходит сразу при подключении (в отличие от того что пишут в интернетах про MF620). И на первый взгляд это хорошо (не надо сочинять строку инициализации, или пользоваться спец. утилитами, типа umtstools или comgt), но примерно через 2-3 минуты модем отключается от сети. Помогает посылка команды через спец. утилиты, но если в этот момент pppd работал, он отключается (радостно сообщив о зависании модема). Вот лог

Цитата:
pppd[11167]: Plugin passwordfd.so loaded.
pppd[11168]: pppd 2.4.4 started by root, uid 0
/etc/init.d/net.ppp1[11090]: WARNING: net.ppp1 has started, but is inactive
chat[11173]: abort on (BUSY)
chat[11173]: abort on (ERROR)
chat[11173]: abort on (NO ANSWER)
chat[11173]: abort on (NO CARRIER)
chat[11173]: abort on (NO DIALTONE)
chat[11173]: abort on (Invalid Login)
chat[11173]: abort on (Login incorrect)
chat[11173]: timeout set to 5 seconds
chat[11173]: send (ATZ^M)
chat[11173]: expect (OK)

chat[11173]: ^M
chat[11173]: +ZPASR: "EDGE"^M
chat[11173]: ATZ^M^M
chat[11173]: OK
chat[11173]: -- got it
chat[11173]: send (AT+CGDCONT=1,"IP","home.beeline.ru"^M)
chat[11173]: timeout set to 60 seconds
chat[11173]: expect (OK)
chat[11173]: ^M
chat[11173]: AT+CGDCONT=1,"IP","home.beeline.ru"^M^M
chat[11173]: OK
chat[11173]: -- got it
chat[11173]: send (ATDT*99#^M)
chat[11173]: expect (CONNECT)
chat[11173]: ^M
chat[11173]: ATDT*99#^M^M
chat[11173]: CONNECT
chat[11173]: -- got it
chat[11173]: send (^M)
chat[11173]: timeout set to 5 seconds
chat[11173]: expect (~)
chat[11173]: ^M
chat[11173]: alarm
chat[11173]: send (^M)
chat[11173]: send (^M)
pppd[11168]: Serial connection established.
pppd[11168]: Using interface ppp1
pppd[11168]: Connect: ppp1 <--> /dev/ttyUSB0
pppd[11168]: CHAP authentication succeeded
pppd[11168]: CHAP authentication succeeded
pppd[11168]: IPCP: timeout sending Config-Requests
pppd[11168]: Connection terminated.
pppd[11168]: Modem hangup

Настройки /etc/conf.d/net

config_ppp1="ppp"
modules_ppp1="usbserial"
link_ppp1="/dev/ttyUSB0"
username_ppp1='beeline'
password_ppp1='beeline'
pppd_ppp1="usepeerdns defaultroute modem crtscts noipdefault noip"
chat_ppp1="
        ABORT BUSY
        ABORT ERROR
        ABORT 'NO ANSWER'
        ABORT 'NO CARRIER'
        ABORT 'NO DIALTONE'
        ABORT 'Invalid Login'
        ABORT 'Login incorrect'
        TIMEOUT 5
        '' ATZ
        OK 'AT+CGDCONT=1,\"IP\",\"home.beeline.ru\"'
        TIMEOUT 60
        OK 'ATDT*99#'
        CONNECT ''
        TIMEOUT 5
        '~--' ''
"

Теперь собственно вопрос: кто нибудь знает, что надо этому сволочному модему, чтобы он не отключался каждые две минуты?

P.S. В винде модем не отключается через две минуты...

P.P.S. решено! статья http://ru.gentoo-wiki.com/wiki/MF626 милости просим, дополняйте её, если у Вас есть написать чего интересного по поводу данного модема.

Идите, и снова правьте

Идите, и снова правьте unusual_devs.h

Hack usbserial

1) Кажется, рeшил проблему неправильного функционирования портов ttyUSB(0,1)
Ларчик открывался просто.
#> cat /proc/bus/usb/devices

T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=0031 Rev= 0.00
S:  Manufacturer=ZTE, Incorporated
S:  Product=ZTE CDMA Technologies MSM
S:  SerialNumber=1234567890ABCDEF
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=83(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=84(I) Atr=03(Int.) MxPS=  64 Ivl=5ms
E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

Здесь внимательно смотрим на нулевой и первый интерфейсы и видим, что они существуют в двух altsetting`ах. И, по умолчанию, cur_altsetting указывает именно на altsetting[0], у которого _нет_ endpoint`ов... (обратите внимание на звездочки)

В общем, задача сводится к корректному переключению интерфейсов на altsetting[1], причем сделать это надо _до_ отработки usb_serial_probe из модуля usbserial, так как именно эта функция заполняет все нужное в структуре usb_serial, в том числе и эндпоинты. Поэтому, к сожалению, придется прямо тут хак и писать.

патчик на usb-serial.c:

--- usb-serial.orig.c   2008-11-10 15:00:18.000000000 +0300
+++ usb-serial.c        2008-11-10 14:38:33.000000000 +0300
@@ -659,6 +659,12 @@
                return -ENODEV;
        }

+       //**hack for ZTE...
+       if ((interface->num_altsetting >1)
+       && (interface->altsetting[0].desc.bNumEndpoints == 0))
+           usb_set_interface(dev, interface->altsetting[0].desc.bInterfaceNumber, 1);
+       //end...
+
        serial = create_serial(dev, interface, type);
        if (!serial) {
                unlock_kernel();

После этого грузим usbserial

#> modprobe usbserial vendor=0x19d2 product=0x0031

Он спокойно определяет все три интерфейса ttyUSB(0,1,2) и прекрасно с ними работает (упоминавшееся тут ограничение -- то что нужно обязательно три эндпоинта, два булка и один интеррапт я, если честно, не нашел...)

Теперь запись в /proc/bus/usb/devices имеет вид:
#> cat /proc/bus/usb/devices

T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  6 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=0031 Rev= 0.00
S:  Manufacturer=ZTE, Incorporated
S:  Product=ZTE CDMA Technologies MSM
S:  SerialNumber=1234567890ABCDEF
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
I:* If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
I:* If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=83(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=84(I) Atr=03(Int.) MxPS=  64 Ivl=5ms
E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

Опять-таки смотрим на звездочки...

И, теперь все становится совсем просто. Для минимального функционирования достаточно:

#> while (/bin/true); do echo "AT+ZOPERTE=\"beeline\"" >/dev/ttyUSB1; sleep 60; echo "send alive..."; done

2) Странно, но у меня не проходит фокус с переключением MF626 из режима сидирома в модем...
т.е, если правим unusual_devs.h, он честно определяется как сидюк и, просто после

#> eject /dev/sr1

переключается нормально, а вот

#> usb_modeswitch -v 0x19d2 -p 0x2000 -d 1

переключить его не может...

Найденный, к сожалению не помню на каком форуме, но вроде речь шла о MF628, вариант

#> usb_modeswitch -v 0x19d2 -p 0x2000 -m 1 -M "5553424308403c862000000080000c85010101180101010101000000000000"

переключает гарантировано вне зависимости от того, опознан ZTE как сидюк, или не опознан, было бы в lsusb видно :)

3) Самое противное. У меня периодически случаются зависания системы _вмертвую_ при работе с этим модемом... К сожалению, не могу выяснить даже на чем, вроде на записи в тот самый самый _правильный_ ttyUSB, с которым работает pppd. Пытаюсь найти причину, самое интересное, что не могу (пока :)) повторить этот завис на буке, виснет строго на стационаре. Наблюдается и при работе через option и просто через usbserial...
Пытаюсь найти "10 отличий" от кода функций записи работающего как часы pl2303...

Отпишитесь, плиз, замечали ли такое кто?

ЗЫ: Проверку в патчике надо бы красивее сделать... и, как вариант, патч на kernel.org отправить, вдруг еще кому пригодится, таких модемов, как я понял, довольно много. Вот только опыта у меня соответствующего нет :), если кто надоумит, куда/как/что буду очю признателен :)

ЗЗЫ: Да, для справки: эксперименты проводил на 2.6.27.4 но с 2.6.24.5 usb_serial_probe сильно не переписывали, должно работать, вроде. Система: слакварь 12.1, да, не генту, но перелез именно с нее. нету нета портежи тащить... а без портежей с генту грустно...

Во первых, хотелось бы, что

Во первых, хотелось бы, что бы Вы написали всё тоже самое на вики.

По поводу проблемы: в момент зависания модем моргает? Если нет, значит он завис... как это получается, и почему не до конца понятно. Сейчас у меня подозрение на определение сети. Избавиться можно с помощью нескольких корректных включений - выключений...

Рановато :)

Сабж, это у меня еще не патч, а хак просто. На вики позже, когда пользоваться можно уже будет.
У меня идея все-таки перенести переключение в option и дописать жесткую привязку именно к ZTE, и, возможно, именно к MF626, там проблем не должно быть, а usbserial все-таки общий, неправильно в нем такую обработку делать.

По поводу зависания. Имхо, модем не висит... не буду 100% утверждать, но кажется мне, что он со временем выходил из сети (зажигал красный). А в онлайне мне повезло зависнуть только один раз и внимания не обратил... Я пока подозреваю циклы в функциях отправки и приема через bulk, буду проверять.

Загадка пока не поддается, но вот что странно: на буке повесить модем _не_ удалось. на стационаре -- виснет с 95% вероятностью. Вчера перепробовал все варианты, грешил уже и на питание (кушает модемчик неслабо, видно невооруженным глазом -- у меня клавиатура с подсветкой "проседает", когда он в сети регистрируется) -- отключил все с USB, оставил только его -- результат тот же.
К размышлению: на буке USB1.1, на стационаре USB2, стало быть должны инициализироваться сразными размерами блоков для передачи и разными задержками. Второе: на стацонаре под оффтопиком_ХР модем работает... и не виснет -- т.е. _имхо_ проблема где-то в инициализации.

Еще два вопроса:
1) Снифером захватывал общение родной проги с модемом. Наткнулся на странность: вижу в логах 0 и 1-й интерфейсы, но _ничего_ не вижу со 2-го -- т.е. стандартного, как бы, порта. Пробовал два вроде разных снифера. А ведь должен быть там обмен, ATDP*99# куда-то ведь посылается, да и трафик должен через него идти...

2) Кто-нибудь, из скачавших 70 мегабайтное чудо от производителя, не могли бы поделиться файликом onda.c и etc на мыло, плиз [sergio.rudenko|at|gmail.com]. Для вивисекции.

Киньте ссылку на

Киньте ссылку на sterkrig}A{home.se, дома скачаю, распотрошу и вышлю, если до того никто не откликнется

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Quote: К размышлению: на буке

Цитата:
К размышлению: на буке USB1.1, на стационаре USB2, стало быть должны инициализироваться сразными размерами блоков для передачи и разными задержками. Второе: на стацонаре под оффтопиком_ХР модем работает... и не виснет -- т.е. _имхо_ проблема где-то в инициализации.

Может быть mtu?

Цитата:
1) Снифером захватывал общение родной проги с модемом. Наткнулся на странность: вижу в логах 0 и 1-й интерфейсы, но _ничего_ не вижу со 2-го -- т.е. стандартного, как бы, порта. Пробовал два вроде разных снифера. А ведь должен быть там обмен, ATDP*99# куда-то ведь посылается, да и трафик должен через него идти...

Я могу вышлю также свои логи.

ZTE CDMA ...

Я первый раз подключил этот девайс в Linux-e. Девайс подключился с idVendor=19d2, idProduct=0031. Слегка поковырявшись переключился в Windows. После этого девайс в Linux-е стал включаться как idProduct=2000. В Виндузе кстати он тоже не сразу завелся - ему требуется для старта инсталятора свободная буковка E: Инсталлятор видимо и прописывает тот самый файлик CD_STARTUP_FLAG.

SaM

Есть решение, требуются добровольцы :)

Итак, есть две новости, как всегда одна плохая.
Достаточно времени поковырявшись с предыдущей версией ( той, где правился usbserial.c ) пришел к выводу, что имеем мы баг...
А именно: при отсылке чего угодно через tty устройства, контролируемые usbserial и его "наследниками" (даже pl2303) _после_ самой отсылки usbserial шлет вдогонку "мусор" -- по одному байту из буфера приема (sic!). Процесс этот произвольный, чаще всего завершается сам попытками послать 0 байт. Однако, иногда заканчивается трапом ядра, или, что еще более неприятно -- метрвым висом, так как происходит все это безобразие в контексте прерывания.
Желающим пронаблюдать этот эффект своими глазами:
1) идем в Documentation/usb/usbmon.txt и читаем как настроить мониторинг (там все понятно и доступно)

2) после того, как собрали модуль usbmon, делаем:

# mount -t debugfs none_debugs /sys/kernel/debug
# modprobe usbmon
# cat /sys/kernel/debug/usbmon/2u

Для удобочитаемости можно воспользоваться набросанным на скорую руку usbmon_parse.pl (скриптик допечатывает в формате [--> 'TEXT'] данные из пакета, преобразованные в ascii. Непечатаемые символы -- по традиции точками.

# cat /sys/kernel/debug/usbmon/2u | ./usbmon_parse.pl

usbmon_parse.pl

#!/usr/bin/perl
use strict;

while ( <STDIN> ) {
    if ( /^([0-9abcdef]+\s[0-9\.]+\s[CS]\s[BICio0-9\:]+\s[0-9\-]+\s[0-9\-]+\s\=\s)(.*)\n$/ ) {
        printf ( "%s %s --> '%s'\n", $1, $2, data_to_ascii( $2 ));
    } else {
        print;
    }
}

sub data_to_ascii {
    my $source = shift;
    my $result;
    my $char;
    my $i;

    $source =~ s/\s//g;

    for ( my $i=0; $i < length( $source ); $i+=2 ) {
        $char = substr( $source, $i, 2 );

        if ( chr( hex( $char )) =~ /[[:print:]]/ ) {
            $result .= chr( hex( $char ));
        } else {
            $result .= sprintf( ".", $char );
        }
    }

    return $result;
}

Обратите внимание на одну особенность: usbmon считает, что при выводе текстом нам достаточно первых 64 байтов из пакета... потому длинные строки данных обрезаются. Если хотите видеть все содержимое пакета -- лучше использовать http://people.redhat.com/zaitcev/linux/usbmon.5.tar.gz (автор: Pete Zaitcev)
Эта утилитка читает бинарные данные из /dev/usbmon*, и, хоть по умолчанию тоже ограничивает размер напечатанного, лечится при помощи вот такого патчика:

--- usbmon.orig.c       2007-04-11 10:13:05.000000000 +0400
+++ usbmon.c    2008-11-15 02:39:04.723443961 +0300
@@ -676,7 +676,7 @@

        memset(p, 0, sizeof(struct params));
        p->data_size = 128;
-       p->data_max = 32;       /* Same as text API. */
+       p->data_max = 1024;     /* Same as text API. */
        p->format = TFMT_HUMAN;
        p->api = API_ANY; 

Вызываем командой

# usbmon -fh | ./usbmon_parse.pl

...и смотрим на результат

3)Затянул с преамбулой. В общем в итоге получаем что-то вроде этого:

d5a35e00 24.042163 S Bo:2:007:2 - 4 =  41545a0d --> 'ATZ '
d5a35280 24.043225 C Bi:2:007:2 0 13 =  0d0a2b5a 5553494d 523a320d 0a --> '  +ZUSIMR:2  '
d5a35280 24.043407 S Bi:2:007:2 - 64 <
d5a35e00 24.043418 C Bo:2:007:2 0 4 >
d5a35e00 24.043639 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35280 24.044218 C Bi:2:007:2 0 4 =  41545a0d --> 'ATZ '
d5a35280 24.044288 S Bi:2:007:2 - 64 <
d5a35e00 24.044295 C Bo:2:007:2 0 1 >
d5a35e00 24.044377 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35e00 24.045210 C Bo:2:007:2 -2 1 >
d5a35280 24.046217 C Bi:2:007:2 -2 0
d5a35280 27.063511 S Bi:2:007:2 - 64 <
d5a35e00 27.063594 S Bo:2:007:2 - 10 =  41542b43 46554e3d 310d --> 'AT+CFUN=1 '
d5a35280 27.064668 C Bi:2:007:2 0 6 =  0d0a4f4b 0d0a --> '  OK  '
d5a35280 27.064773 S Bi:2:007:2 - 64 <
d5a35e00 27.064782 C Bo:2:007:2 0 10 >
d5a35e00 27.064872 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35280 27.065669 C Bi:2:007:2 0 26 =  0d0a2b5a 5553494d 523a320d 0a0d0a2b 5a555349 4d523a32 0d0a --> '  +ZUSIMR:2    +ZUSIMR:2  '
d5a35280 27.066009 S Bi:2:007:2 - 64 <
d5a35e00 27.066018 C Bo:2:007:2 0 1 >
d5a35e00 27.066134 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35e00 27.066665 C Bo:2:007:2 -2 1 >
d5a35280 27.066691 C Bi:2:007:2 0 16 =  41542b43 46554e3d 310d0d0a 4f4b0d0a --> 'AT+CFUN=1   OK  '
d5a35e00 27.067979 S Bo:2:007:2 - 1 =  41 --> 'A'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.069171 S Bo:2:007:2 - 1 =  54 --> 'T'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.070360 S Bo:2:007:2 - 1 =  2b --> '+'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.071543 S Bo:2:007:2 - 1 =  43 --> 'C'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.072740 S Bo:2:007:2 - 1 =  46 --> 'F'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.073919 S Bo:2:007:2 - 1 =  55 --> 'U'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.075104 S Bo:2:007:2 - 1 =  4e --> 'N'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.076297 S Bo:2:007:2 - 1 =  3d --> '='
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.077490 S Bo:2:007:2 - 1 =  31 --> '1'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.078677 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.079284 S Bo:2:007:2 - 1 =  0a --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.080481 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.081090 S Bo:2:007:2 - 1 =  0a --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.082280 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.082901 S Bo:2:007:2 - 1 =  0a --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.084084 S Bo:2:007:2 - 1 =  4f --> 'O'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.085268 S Bo:2:007:2 - 1 =  4b --> 'K'
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.086453 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.087064 S Bo:2:007:2 - 1 =  0a --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.088250 S Bo:2:007:2 - 1 =  0d --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35e00 27.088859 S Bo:2:007:2 - 1 =  0a --> ' '
d5a35e00 3068260437.000000 E Bo:2:007:2 -1 0
d5a35280 27.088869 S Bi:2:007:2 - 64 <
d5a35280 27.089656 C Bi:2:007:2 -2 0

Видно отсылку по одному байту. Если еще при загрузке модулей давать опцию debug=1, то можно убедиться, что эти отсылки завершаются ошибкой.

4)Насколько я смог понять копаясь в исходниках -- проблема на уровне tty части. Именно оттуда вызываются процедуры записи bulk, и там же и происходит перекрытие буферов... Уперся же я в то, что так и не нашел, где и как это обрабатывается... Если кто дальше разобрался -- подсказывайте, плиз.

А теперь самое интересное -- хорошая новость:
Пока копался, нашел очень интересный файлик: а именно /drivers/net/usb/hso.c -- это модуль для работы с 3G модемами Option, которые, судя по всему и являются предками нашего "счастья". Сильно обрадовался, увидев инициализацию прямо как я и делал в предыдущем хаке :)
Оставалось немного подточить и:

-- hso.orig.c  2008-11-07 14:48:16.000000000 +0300
+++ hso.c       2008-11-18 14:26:21.000000000 +0300
@@ -100,7 +100,7 @@
 /* Number of ttys to handle */
 #define HSO_SERIAL_TTY_MINORS          256

-#define MAX_RX_URBS                    2
+#define MAX_RX_URBS                    4

 static inline struct hso_serial *get_serial_by_tty(struct tty_struct *tty)
 {
@@ -366,6 +366,14 @@
        0
 };

+static const s32 mf626_port_spec[] = {
+       0,
+       HSO_INTF_BULK | HSO_PORT_DIAG,
+       0,
+       HSO_INTF_BULK | HSO_PORT_MODEM,
+       0
+};
+
 #define default_port_device(vendor, product)   \
        USB_DEVICE(vendor, product),    \
                .driver_info = (kernel_ulong_t)default_port_spec
@@ -374,6 +382,10 @@
        USB_DEVICE(vendor, product),    \
                .driver_info = (kernel_ulong_t)icon321_port_spec

+#define mf626_port_device(vendor, product)     \
+       USB_DEVICE(vendor, product),    \
+               .driver_info = (kernel_ulong_t)mf626_port_spec
+
 /* list of devices we support */
 static const struct usb_device_id hso_ids[] = {
        {default_port_device(0x0af0, 0x6711)},
@@ -403,6 +415,7 @@
        {USB_DEVICE(0x0af0, 0x7401)},           /* GI 0401 */
        {USB_DEVICE(0x0af0, 0x7501)},           /* GTM 382 */
        {USB_DEVICE(0x0af0, 0x7601)},           /* GE40x */
+       {mf626_port_device(0x19d2, 0x0031)},    /* ZTE */
        {}
 };
 MODULE_DEVICE_TABLE(usb, hso_ids);

Теперь у нас есть нормальный метод общения с нашим модемом, лишенный недостатков работы через option или usbserial.

После того, как модуль подхватит 19d2:0031 получаем два устройства: /dev/ttyHS[0,1] -- соответственно диагностический порт и сам модем. Для отсылки любимых команд достаточно написанного ночью на скорую руку:

#!/bin/bash

echo -e 'AT+CFUN=1\r'           >/dev/ttyHS0
sleep 5

echo -e 'AT+ZOPRT=5\r'          >/dev/ttyHS0
sleep 1

echo -e 'AT+ZSTART\r'           >/dev/ttyHS0
sleep 1

echo -e 'AT+CPBS="SM"\r'        >/dev/ttyHS0
sleep 1

echo -e 'AT+CPMS="SM","SM",""\r' >/dev/ttyHS0
sleep 1

while true
    do echo -e 'AT+ZOPERTE="beeline"\r' >/dev/ttyHS0;
    sleep 60;
done

а на /dev/ttyHS1 цепляемся pppd. Из плюсов -- зависаний нет, работает стабильно. Если смотреть через usbmon -- все чисто, как и должно быть, вопрос --> ответ.
Из минусов: не совсем понял как инициализируется скорость порта. Имхо жестко вбито 115200, надо бы проверить. Отпишитесь, у кого как со скоростью, у меня тут, просто, 3G даже и не пахнет :)

Еще вдогонку -- hso.ko рассчитан на создание _сетевого_ интерфейса на нулевом (на том самом нашем загадочном, который ни на что не откликается). Я пробовал, устройство создается, но соединение установить так и не смог. Или я что-то не так делаю, или все-таки в нашем любимом модеме эту возможность отломали. По отзывам европейцев -- у них MF628 -- практически то же, что и наш, и сетевой есть.
В общем -- для тех, кто хочет копать в этом направлении:
берите http://timlau.fedorapeople.org/files/packages/hso/dkms-hso-1.2-2.fc9.src.rpm -- внутри все подробно расписано.

ЗЫ: потестируйте пожалуйста hso, надо бы уже определиться с нашим модемом и дальше просто пользоваться.

ЗЗЫ: ИМХО, патч для option.c становится неактуальным. По-прежнему ищется кто надоумит куда отправлять мой патчик, когда до ума доведем, конечно...

А кто нибудь юзал этот модем

А кто нибудь юзал этот модем с симками других операторов мегафон мтс?

Цитата: пришел к выводу, что

Цитата:
пришел к выводу, что имеем мы баг...

О котором желательно сообщить в списки рассылки, также Вам поможет http://www.kernel.org/pub/linux/docs/lkml/reporting-bugs.html

Цитата:
Из плюсов -- зависаний нет, работает стабильно.

А у меня (например после того как симку в телефон засунуть) зависает. Это похоже что-то у модема, или у телефона...

Цитата:
Из минусов: не совсем понял как инициализируется скорость порта. Имхо жестко вбито 115200, надо бы проверить. Отпишитесь, у кого как со скоростью, у меня тут, просто, 3G даже и не пахнет :)

Для конвертеров USB-Serial это не критично. Особенно для изворотливых конвертеров без конечной точки прерывания.

Цитата:
(на том самом нашем загадочном, который ни на что не откликается)

Туда подключается утилита от qualcomm.

Цитата:
ЗЫ: потестируйте пожалуйста hso, надо бы уже определиться с нашим модемом и дальше просто пользоваться.

Работает хорошо!

Цитата:
По-прежнему ищется кто надоумит куда отправлять мой патчик, когда до ума доведем, конечно...

Обратитесь например к dottedmag, или почитайте что написано на http://kernelnewbies.org/

Следил за темой с самого

Следил за темой с самого начала. С драйвером usbserial у меня как-то сразу вообще не запустилось, наложил патч на option.c, после этого заработало, но не совсем.. После примерно 5 минут работы в кору писал слелующее:

Цитата:
option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
option 4-1:1.0: device disconnected
option 4-1:1.3: device disconnected
option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
usb 4-1: reset high speed USB device using ehci_hcd and address 4
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: reset high speed USB device using ehci_hcd and address 4
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: reset high speed USB device using ehci_hcd and address 4
usb 4-1: device not accepting address 4, error -110
usb 4-1: reset high speed USB device using ehci_hcd and address 4
saa7146 (0) vpeirq: used 1 times >80% of buffer (179728 bytes now)
usb 4-1: device not accepting address 4, error -110
usb 4-1: USB disconnect, address 4
scsi 8:0:0:0: Device offlined - not ready after error recovery
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: [sdc] READ CAPACITY failed
scsi 8:0:0:0: [sdc] Result: hostbyte=0x01 driverbyte=0x00
scsi 8:0:0:0: [sdc] Sense not available.
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: [sdc] Write Protect is off
scsi 8:0:0:0: [sdc] Mode Sense: 00 00 00 00
scsi 8:0:0:0: [sdc] Assuming drive cache: write through
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: [sdc] READ CAPACITY failed
scsi 8:0:0:0: [sdc] Result: hostbyte=0x01 driverbyte=0x00
scsi 8:0:0:0: [sdc] Sense not available.
scsi 8:0:0:0: rejecting I/O to dead device
scsi 8:0:0:0: [sdc] Write Protect is off
scsi 8:0:0:0: [sdc] Mode Sense: 00 00 00 00
scsi 8:0:0:0: [sdc] Assuming drive cache: write through
scsi 8:0:0:0: rejecting I/O to dead device
hub 4-0:1.0: unable to enumerate USB device on port 1
usb 4-1: new high speed USB device using ehci_hcd and address 6
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 7
saa7146 (0) vpeirq: used 1 times >80% of buffer (179728 bytes now)
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 8
usb 4-1: device not accepting address 8, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 9
usb 4-1: device not accepting address 9, error -110
hub 4-0:1.0: unable to enumerate USB device on port 1
usb 4-1: new high speed USB device using ehci_hcd and address 10
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
hub 4-0:1.0: unable to enumerate USB device on port 1
usb 4-1: new high speed USB device using ehci_hcd and address 12
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 13
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 14
saa7146 (0) vpeirq: used 1 times >80% of buffer (175592 bytes now)
usb 4-1: device not accepting address 14, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 15
usb 4-1: device not accepting address 15, error -110
hub 4-0:1.0: unable to enumerate USB device on port 1
usb 4-1: new high speed USB device using ehci_hcd and address 16
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 17
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 18
usb 4-1: device not accepting address 18, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 19
usb 4-1: device not accepting address 19, error -110
hub 4-0:1.0: unable to enumerate USB device on port 1
usb 4-1: new high speed USB device using ehci_hcd and address 20
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
hub 4-0:1.0: unable to enumerate USB device on port 1
usb 4-1: new high speed USB device using ehci_hcd and address 22
usb 4-1: device descriptor read/64, error -110
usb 4-1: device descriptor read/64, error -110
usb 4-1: new high speed USB device using ehci_hcd and address 23

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

После чего подключал его вышеуказанным способом, т.е. через HSO - теперь работает чуть дольше, минут 10, но после этого система виснет теперь уже наглухо, а модем продоллжает светить синим, т.е. сам он не виснет похоже.

В общем, к сожалению проблема не решена. Будет ли продолжаться работа в данной области?
Вообще имхо драйвер HSO работает более корректно нежели option или usbserial, так что если будете коммитить его в кернел, то лучше сразу наверное вариант с HSO. Вообще, если я все правильно понят, то кто-то уже закоммитил с option: https://kerneltrap.org/mailarchive/git-commits-head/2008/10/23/3781164

И кстати, ненужные строчки из drivers/usb/storage/unusual_devs.h наверное тоже нужно будет выкинуть из кернела?

Цитата: При этом на модеме

Цитата:
При этом на модеме вообще гас индюкатор, что, как я понимаю, вообще его функционалом не предусмотрено. Система в целом не висла, но переставали работать все USB контроллеры, и обратно подключались только после ребута. Кстати, похоже, что модем при этом тоже подвисал, т.к. после ребута сам он не заводился, нужно было его вытащить и опять воткнуть в порт. Пробовал даже дополнительный PCI-ный USB-контроллер втыкать, аналогично.

После чего подключал его вышеуказанным способом, т.е. через HSO - теперь работает чуть дольше, минут 10, но после этого система виснет теперь уже наглухо, а модем продоллжает светить синим, т.е. сам он не виснет похоже.

Да, это те самые зависания... Если Вы обратите внимание на моргание индикатора, то Вы быстро обнаружите период (6 минут), если сразу после зависания остановить pppd, убить скрипты и выдернуть модем, то зависания хаба не произойдёт. После этого можно включить модем и попробовать подключиться. После нескольких попыток модем станет работать как надо (можно после подключения модема к компьютеру и автоматического подключения к сети послать ему +ZOPRT=6, т.е. выключить его и делать попытку подключения не ранее чем через 10 минут).

У меня модем начинает зависать после того как симка побывает в телефоне ;)

Цитата:
Вообще имхо драйвер HSO работает более корректно нежели option или usbserial, так что если будете коммитить его в кернел, то лучше сразу наверное вариант с HSO. Вообще, если я все правильно понят, то кто-то уже закоммитил с option: https://kerneltrap.org/mailarchive/git-commits-head/2008/10/23/3781164

Я надеюсь, что manuel доведёт начатое дело до конца, потому как именно он сейчас лучше всего сможет обосновать почему данное устройство должно работать именно через HSO...

Цитата:
И кстати, ненужные строчки из drivers/usb/storage/unusual_devs.h наверное тоже нужно будет выкинуть из кернела?

Естественно!

При этом на модеме

ArtSh написал(а):
У меня модем начинает зависать после того как симка побывает в телефоне ;)

Интересно.. У меня 3 симки разных операторов: билайн (родная), мегафон, мтс. Все дело в условиях связи в нашей "деревне": GPRS на билайне может вообще сутками не работать, на МТСе обычно связь подвисает вечером, а мегафон вообще непредсказуемый :) Так вот я их попеременно использую, возможно дело в этом. В телефон вообще ставить не пробовал.

ArtSh написал(а):
Я надеюсь, что manuel доведёт начатое дело до конца, потому как именно он сейчас лучше всего сможет обосновать почему данное устройство должно работать именно через HSO...

Да, на manuel вся надежда, т.к. не хочется выбрасывать железку ;)

echo

О а я тут видел хороший сайт по этой статье Хакер сайт

Вести с полей

В Linux начиная с версии 2.6.28 наш модем по-умолчанию поддерживается драйвером option. Решил я потестить его работу в новом ядре, накатив патч 2.6.28-rc7 - последняя версия на сегодняшний день.
Собрал, поставил. После втыкания модема получил привычный usb-storage: device ignored. Сразу же пришлось править drivers/usb/storage/unusual_devs.h, комментируя строчки. После этого девайс стал нормально определяться в системе как порты ttyUSB0, ttyUSB1, ttyUSB2. Поднял pppd, и после 5 минут работы модем привычно завис, погасив индикатор. Но! USB-хаб при этом не завис, и после выдергивания модема и втыкания в этот же порт можно опять поднимать pppd, который проработает так же 5 минут.
Тогда я решил проверить, как оно будет работать через HSO в новом ядре: закомментил две строчки в option.c, содержащие упоминания о mf626, и внес соответствующие добавления в hso.c Устройства HS0 и HS1 успешно появились, коннект отлично поднялся, и держался, кажется, несколько часов - вечером устал ждать, когда оно зависнет, пошел спать. Однако ж утром модем опять был в дауне, но зависания системы (как с предыдущей версией ядра) или usb-порта так же не происходит, т.е. можно выдергивать модем, тут же втыкать обратно и еще некоторое время работать.
Мои ламерские знания позволяют мне предположить, что в ядре чего-то исправили в USB-протоколе в целом, так что теперь не происходит зависания хаба и системы, но специфичные для нашей железки глюки все же остались.

В связи с этим несколько риторичных вопросов:

1. Отчего могут происходить подобные зависания, причем через четко определенные промежутки времени?
2. Почему в ядре в файле unusual_devs.h не убрали упоминание о нашем модеме, однако ж поддержку его драйвером option сделали? Может быть все дело в release candidate-версии ядра?
3. Неужели мы насовсем потеряли manuel'а? :(

может его qpost ом и не завсинет?

http://forum.ixbt.com/topic.cgi?id=16:39216-32

Подтверждаю. Удалил файлы "FLAG_NO_DOWNLOAD" и "CD_STARTUP_FLAG", модем не выключается через 2 мин., продолжает работать. Проверил с симками МТС и Билайн. (ZTE MF626)

Удалил из ZTEMF626, 2 файла "CD_STARTUP_FLAG"и"FLAG_NO_DOWNLOAD"прогой "QPST 2.7 build 264"
И переключил в режим модема прогой"zte_switch_mode"
Родную прогу удалил,теперь при подключению к компу он сразу модем,для подключеня к инету
пользуюсь ранее созданным тел.соединением,строку инициализации не запоняю,оператор билайн,
он и был заточен под билайн.С мегафон тоже работает,но надо заполнить строку инициализации.
И самое главное он стал работать с DIR-320,теперь у меня полноценный мобильный роутер.

может просто выкинуть флэхи и иметь обычный не залоченный модем?

Новая прошивка это счастье какое-то :)

С новой прошивкой от забугорного оператора модем не просто разлочился, но и теперь даже usbserial выдает ему три порта :))

прошивку искать тут http://forum.ixbt.com/topic.cgi?id=16:39216-41

к тому же говорят что улучшилось качество связи и модем меньше теряет пакетов :)

З.Ы. проверял на mdv 2009.0 kernel 2.6.27-rc8.2

Препрошил модем таким

Препрошил модем таким образом, в Винде работает отлично с разными симками без проги от Билайна. В линуксе не появляется устройство ttyUSB0, подскажите куда копать.

Цитата:В линуксе не

Цитата:
В линуксе не появляется устройство ttyUSB0, подскажите куда копать.

В сторону логов. Без них ничего сказать нельзя. Перед тем как задавать следующий вопрос, прочитайте внимательно статью в вики.

А у меня после удаления

А у меня после удаления FLAG_NO_DOWNLOAD устройство сменило VID:PID на 0x19d2:0x0016. Состав интерфейса такой же, как и в режиме 0x19d2:0x0031, так что работать должна (пока, правда, не работает - под Linux, думаю, настрою)
Проблема в том, что родная программа QPST перестала определять этот модем и больше не получается ничего изменить. Кто-нибудь знает, как вернуть контроль из QPST?

$BOC(\pi, e)$

Всё, управление из QPST

Всё, управление из QPST восстановил путём переустановки родной программы от Билайн (из ZTEMODEM.ISO - http://il.perm.ru/filesharing/download.php?file=1155) и, соответственно, переустановкой драйверов. QPST заработала.

$BOC(\pi, e)$

Xandros и ZTE MF626

Купил модем ZTE MF626, который залоченый, система XANDROS бук eeePC. Почти завелся, ПОМОГИТЕ разобраться.....
(все файлы есть, могу выслать кому нужно пишите mr.manson(sobaka)mail.ru)

Установка драйвера: Закинуть onda.ko нужно в папку ./lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/serial/.

Переключение режима: Теперь когда втыкаем модем он определяется как виртуальный CD-ROM, нужно его извлечь: или в трее правый клик - "Извлечь", или в консоли (CTRL+ALT+T) sudo eject /dev/sr0.

Проверяем интерфейсы: Теперь ждем когда снова загорится синий (или зеленый) огонек, значит модем зарегился в сети, проверяем появились ли интерфейсы модема в системе: dmesg должен показать что-то типа usb 5-2: GSM modem (1-port) converter now attached to ttyUSB0, должны так же быть ttyUSB1 и ttyUSB2.

Качаем и ставим wvdial, в /etc/wvdial.conf должно быть так:
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+ZOPERTE="beeline"
Init4 = AT+ZOPRT=5
Init5 = AT+ZSTART
Init6 = AT+CPBS="SM"
Init7 = AT+CPMS="SM","SM",""
Modem = /dev/ttyUSB2
Phone = *99#
Idle Seconds = 0
Password = beeline
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Username = beeline

Подключение: набираем в консоли wvdial, он активирует модем (даже если горел красный огонек), и подключает к сети, но примерно на 5 минут, потомучто MF626 залочен.

До этого момента, помойму, подходит и для MF622, далее взлом MF626.

Взлом: Залоченый модем требует команду AT+ZOPERTE="beeline" каждую минуту, это можно выполнить с помошью программы UnBeeline, к сожалению найденая версия в интернете требует GLIBC верси 2.4, тогда как в Xandros 2.3, вот тут-то я и застрял, на работе стоит UBUNTU 8, параллельно делал там, не работало пока не установилось какое-то очередное обновление, теперь все ОК.
На Xandros пробовал два варианта:
-Компилировал вручную исходники UnBeeline (необходимо ставить libusb и libusb-dev), программы запускались но команды не доходили до модема и он отключался каждые 5 минут.
-Пытался запустить UnBeeline из инета, для этого устанавливал GLIBC 2.7 в Synaptic, UnBeeline запустился, команды пошли в модем, соединение простояло больше часа, ура!!!, но после перезагрузки от UnBeeline снова перестали доходить команды, .

Сейчас пытаюсь разобраться что изменяется после перезагрузки (надеюсь на помошь), и параллельно качаю eeebuntu.

UnBeeline пишет типа set usb altinterface: connection timed out, похоже на то что неможет найти куда слать команды, есть соображения в сторону libusb, но переустановка библиотек не дает эффекта, что делать?

С ядром 2.6.28 я пока не

С ядром 2.6.28 я пока не встретил ни одного зависания, видимо действительно что-то подправили в USB-стеке... Хотя option всё также работает некорректно. Пришлось убирать упоминания из option и править hso...

P.S. в нашей деревне появилась 3G сеть, после чего модем успешно перестал работать. При соединении не было строчки "CS_PS" были только "CS_ONLY", в родном ПО в том месте где писался тип услуги была тоже только буква "С". В результате долгого общения с техподдержкой выяснилось, что следует заменить сим карту (например в фирменном салоне или в салонах "Связной") и установить тип сети "Только 3G".

Черт возьми, и вправду починили

Черт возьми, и вправду починили, шойтаны! :) Отличный подарок к Новому Году!

ArtSh написал(а):
P.S. в нашей деревне появилась 3G сеть, после чего модем успешно перестал работать. При соединении не было строчки "CS_PS" были только "CS_ONLY", в родном ПО в том месте где писался тип услуги была тоже только буква "С". В результате долгого общения с техподдержкой выяснилось, что следует заменить сим карту (например в фирменном салоне или в салонах "Связной") и установить тип сети "Только 3G".

Т.е. это касаемо конкретного оператора и конкретной сим-карты? А какой у вас оператор? Правда, "в нашей деревне" такого счастья ждать еще долго :)

Цитата: Т.е. это касаемо

Цитата:
Т.е. это касаемо конкретного оператора и конкретной сим-карты? А какой у вас оператор?

В Казани только у билайна есть действующая 3G сеть. Можно предположить что это касается конкретно билайна, потому как у соседей наблюдаются аналогичные проблемы...

Цитата:
Правда, "в нашей деревне" такого счастья ждать еще долго :)

Я действительно живу в деревне (называется "посёлок Залесный"), только она в черте города Казань ;) именно по этому самый доступный и быстрый интернет на данный момент именно 3G от билайна.

..

ArtSh написал(а):
Я действительно живу в деревне (называется "посёлок Залесный"), только она в черте города Казань ;) именно по этому самый доступный и быстрый интернет на данный момент именно 3G от билайна.

Я живу в городе Горно-Алтайск. По идее это столица Республики Алтай, но назвать его городом можно с натяжкой - скорее похоже на деревню. Ни о каком 3G речи быть вообще не может, причем не ожидается он и в некоторых не очень далеких от нас, но больших городах.
Выбор инет-провайдеров у нас очень скуден - есть только один DSL от Сибирьтелекома, но за довольно немалые деньги. Поэтому народ активно ищет альтернативы. Я, например, юзаю спутниковый инет в связке с EDGE для исходящего канала.

Был тут в Питере месяца

Был тут в Питере месяца полтора назад, брал с собой этот модем - специально, чтобы опробовать 3G. Работает! Фантастика! wget мне писал про 200 кб/c!. Среднюю скорость не скажу, но это реально было быстро. И светодиод зелёный горел.

А в Московской области, наверное, 3G не будет никогда...

$BOC(\pi, e)$

Извините, что ворошу старую

Извините, что ворошу старую тему. Но результат, всё же, неполон. Я когда-то давно настроил модем своей версией программы (выше я писал об этом), всё работало, я так и оставил. А теперь переставил систему и решил настроить, по рецепту от ArtSh из gentoo-wiki. Естественно, сразу не заработало. Начал копаться, оказалось, программы не отсылают сообщения в модем с ошибкой -16 (Device is busy), вызвано это тем, что драйвер option занял соответствующий интерфейс модема, навесив на него порт /dev/ttyUSB0 (модемный порт при этом /dev/ttyUSB2). Соответственно, через libusb к нему обратиться нельзя, а напрямую (через echo ... > /dev/ttyUSB0) он тоже не работает из-за неправильной реализации option, о чём тут писали выше. Решения:
1) хак option, описанный выше;
2) подправить option, чтобы он не цеплялся за модем MF626;
3) снести вообще модуль option.
Сейчас я пишу это сообщение, используя п.2.

Так или иначе, рецепт из gentoo-wiki напрямую не работает, а там это не отражено. Можно ли добавить туда пару слов про option? Я, конечно, сам могу добавить, но хотелось бы всё же видеть мнение автора странички.

$BOC(\pi, e)$

Цитата:Можно ли добавить туда

Цитата:
Можно ли добавить туда пару слов про option? Я, конечно, сам могу добавить, но хотелось бы всё же видеть мнение автора странички.

"Правьте смело!"

Цитата:
Так или иначе, рецепт из gentoo-wiki напрямую не работает, а там это не отражено.

Это зависит от версии ядра. Когда страница писалась, всё работало именно так как написано.

P.S. Я сейчас пользуюсь драйвером hso.

Исправление

ArtSh написал(а):
Цитата:
Можно ли добавить туда пару слов про option? Я, конечно, сам могу добавить, но хотелось бы всё же видеть мнение автора странички.

"Правьте смело!"

Для себя сначала разберусь, я пока в процессе. Много странностей. Так, программа beeline_script, приведённая в gentoo-wiki, приводит к подвисанию модема через несколько минут, о чём выше много написано (ядро у меня 2.6.27-gentoo-r10). Но старый вариант, который я использовал - через cron, не вызывал проблем за последние полгода. В чём разница? Я не понимаю - тут цикл в C, там цикл в cron, а так - всё то же самое. И ещё надо решить проблему глючности самого билайна. Если разместит запуск модема в стартовый скрипт - это было бы очень хорошо, но связь довольно нестабильна, тут прямо хоть какой-нибудь kppp запускай для обратной связи. Я все полгода запускал интернет вручную командой "pon beeline debug nodetach", чтобы видеть сообщения. Не знаю, как это всё культурно оформить.

ArtSh написал(а):
Это зависит от версии ядра. Когда страница писалась, всё работало именно так как написано.

Да, я заметил - у меня сообщения порядочно отличаются.

ArtSh написал(а):
P.S. Я сейчас пользуюсь драйвером hso.

Нужно попробовать.

$BOC(\pi, e)$

Разница

eugene_b написал(а):
ArtSh написал(а):
Цитата:
Можно ли добавить туда пару слов про option? Я, конечно, сам могу добавить, но хотелось бы всё же видеть мнение автора странички.

"Правьте смело!"

Для себя сначала разберусь, я пока в процессе. Много странностей. Так, программа beeline_script, приведённая в gentoo-wiki, приводит к подвисанию модема через несколько минут, о чём выше много написано (ядро у меня 2.6.27-gentoo-r10). Но старый вариант, который я использовал - через cron, не вызывал проблем за последние полгода. В чём разница? Я не понимаю - тут цикл в C, там цикл в cron, а так - всё то же самое.

В чём разница - понятно. Сейчас как раз использую старый вариант через cron. Отличается моя старая программа от той, что описана в wiki составом отправляемых в модем команд. Моя программа посылает в порт только AT+ZOPERTE="beline"\r\n, и всё. И ничего не виснет. А beeline_script посылает сначала несколько команд, вот и вся разница. Непонятно только, почему в ядре 2.6.28 тогда зависания модема пропадают, какая связь ядра с AT-командами. Темное, короче говоря, дело.

$BOC(\pi, e)$

Цитата: Темное, короче

Цитата:
Темное, короче говоря, дело.

А я вот заметил, что модем практически всегда зависает при слабом сигнале, а если сигнал сильный, то практически никогда...

да. и еще виснет при низкой

да. и еще виснет при низкой напруге по 5В(по USB). у меня когда была напруга 4,2-4,4 он часто вис. когда поменял БП и стало 5,1 перестал :)

Разница не в составе команд.

Разница не в составе команд. Экспериментировал, оставил в программе beeline_script (http://ru.gentoo-wiki.com/wiki/MF626) только ту команду, которая уже год успешно работает у меня в программе UnBeeline (http://www.gentoo.ru/node/12140#comment-84684) - модем всё равно через некоторое время подвисает, и никакой comgt поднять его обратно уже не в силах - нужно выдёргивать и вставлять заново. В то же время связка UnBeeline+cron у меня работает уже год и ничего не виснет вообще. Ядро не патченое, пробовал разные, сейчас 2.6.30.

Разница, видимо, в том, что UnBeeline+cron каждый раз открывает/закрывает устройство, а beeline_script открывает его один раз и в бесконечном цикле шлёт данные. Попробую соответсвующим образом поменять beeline_script - должна же она заработать.

Промучавшись год с Билайном и МТС год, на днях тут попробовал поработать в Мегафоне - шикарно! Скорость 25 кбайт/с - максимум возможного в EDGE - круглые сутки! А раньше было проблемой даже просто подключиться к сети. Принять почту - что-то нереальное. Но это видимо особенность местной соты, на работе у меня Билайн ешё как-то работает.

$BOC(\pi, e)$

eugene_b

eugene_b написал(а):
Промучавшись год с Билайном и МТС год, на днях тут попробовал поработать в Мегафоне - шикарно! Скорость 25 кбайт/с - максимум возможного в EDGE - круглые сутки! А раньше было проблемой даже просто подключиться к сети. Принять почту - что-то нереальное. Но это видимо особенность местной соты, на работе у меня Билайн ешё как-то работает.

У меня по части качества проблем не было, но вот Билайн испортил ночной безлимит — после 2ГБ скорость обрезают до 64 килоБИТ!!! А следующие быстрые 2ГБ предлагают покупать отдельно... Поэтому я тоже перешёл на Мегафон.

P.S. Сегодня в 20:30 у Мегафона заработал 3G в Казани!!!

кстати общедоступного решения

кстати общедоступного решения для новых модемов MF626 (с новой версией прошивки, для которых обычного ZOPERTE=beeline мало, и которое описано на вики) до сих пор нет. пришлось беспокоить человека, который оставил мыло там :)

Экспериментировал с

Экспериментировал с программой beeline_script. Инициализировать каждый раз в цикле пока не получилось, почему - не знаю, надо ещё пробовать. А пока я смотрел, что происходит в исходной версии программы, где в цикле есть только запись команды AT+ZOPERTE в модем.

С начала всё работает нормально, usb_bulk_write бодро возвращает количество записанных байт (22). Однако через несколько минут на модеме вообще гаснет светодиод, а usb_bulk_write начинает возвращать код -110. Что это такое, непонятно. В документации libusb (http://libusb.sourceforge.net/doc/function.usbclaiminterface.html#AEN299) такого кода нет. errno/strerror ничего не об этом не пишут (пишут последнюю ошибку, произошедшую где-то до запуска beeline_script).

После возникновения этой ситуации модем уже ни на что не реагирует, выгрузить из памятьи usbserial нормально уже не получается - "rmmod -f usbserial" ни на что не реагирует и не останавливается. Без перезагрузки всей системы обойтись уже не получается. lsof | grep ttyUSB ничего не даёт.

Мне не понятна причина этих проблем. В UnBeeline было то же самое, только вместо бескониченого цикла был cron. Разницы больше нет.

$BOC(\pi, e)$

eugene_b

eugene_b написал(а):
Экспериментировал с программой beeline_script. Инициализировать каждый раз в цикле пока не получилось, почему - не знаю, надо ещё пробовать. А пока я смотрел, что происходит в исходной версии программы, где в цикле есть только запись команды AT+ZOPERTE в модем.

С начала всё работает нормально, usb_bulk_write бодро возвращает количество записанных байт (22). Однако через несколько минут на модеме вообще гаснет светодиод, а usb_bulk_write начинает возвращать код -110. Что это такое, непонятно. В документации libusb (http://libusb.sourceforge.net/doc/function.usbclaiminterface.html#AEN299) такого кода нет. errno/strerror ничего не об этом не пишут (пишут последнюю ошибку, произошедшую где-то до запуска beeline_script).

После возникновения этой ситуации модем уже ни на что не реагирует, выгрузить из памятьи usbserial нормально уже не получается - "rmmod -f usbserial" ни на что не реагирует и не останавливается. Без перезагрузки всей системы обойтись уже не получается. lsof | grep ttyUSB ничего не даёт.

Мне не понятна причина этих проблем. В UnBeeline было то же самое, только вместо бескониченого цикла был cron. Разницы больше нет.

ошибка -110 мне тоже известна, обычно связана с низким уровнем сигнала. Я использую драйвер hso, при зависании модема я просто вытаскиваю его и делаю rmmod -f hso; после этого можно снова всё включать...

P.S. я использую ~arch ядра.

Пожалуй, я так и дальше буду

Пожалуй, я так и дальше буду работать с помощью UnBeeline+cron. Приведённым в wiki методом я ничего не добился - модем через некоторое время виснет. А так проблем нет.

Мне ещё нужно было сделать удобный запуск интернета, чтобы моя жена могла им пользоваться. Если бы интернет работал стабильно, можно было бы поместить его запуск в инициализационный скрипт и запускать автоматически при загрузке. Но так как работа нестабильна (хотя мегафон сейчас работает хорошо), я всегда запускал вручную из консоли командой
pon beeline debug nodetach
чтобы видеть сообщения pppd и знать, что происходит. Но это же не решение для обычного пользователя. Хотел сделать всё через kppp - но эта программа имеет слишком много лишнего. В результате я просто в меню KDE поместил команду pon megafon debug nodetach с галочкой "выполнять в терминале" и всё. На том, видимо, и остановлюсь.

Но рецепт из wiki не работает, на страничке wiki я сделаю примечание, что в случае проблем есть другие решения.

$BOC(\pi, e)$

Может кто так пробовал? Итак,

Может кто так пробовал? Итак, суть дела. В модеме ZTE626 есть карт-ридер для MicroSD объёмом до 2 Гб, который может работать (и работает) одновременно с модемом. В результате получается флешка-модем.

И захотелось мне поставить на эту флешку Gentoo, чтобы можно было мы на (любом) компьютере загрузить свою систему и сразу же, в том же флаконе, иметь доступ в сеть.
Принципиально я тут вижу две возможности:
1) Установить ядро и загрузчик вместо образа ZTEMODEM.ISO, загрузиться, как с CD-ROMа, затем, проведя необходимые действия, переконфигурировать модем, подмонтировать флешку и использовать её в качестве рута.
2) Отключить образ CD-ROM вообще путём удаления CD_STARTUP_FLAG и видеть при этом модем, как флешку сразу и грузится с неё.

Второй путь казался проще. Я взял образ Gentoo LiveCD в качестве экспериментальной системы и начал пытаться установить его в качестве LiveFlash (по официальной мурзилке с www.gentoo.org) на модем. Естественно, сразу не заработало. Тогда я поставил систему на контрольную обычную флешку для проверки. Флешка была со странностями всегда, и с неё система грузится не захотела. Тогда я взял флешку посовременнее, с неё система пошла нормально. Вывод. BIOS позволяет грузится не с каждой флешки. А уж с флешкой-модемом точно возможны проблемы. Удалось ли кому-нибудь такое провернуть с ZTE626?

Пока я поэксперементирую с образом ZTEMODEM.ISO, может быть так получится. Было бы очень неплохо.

$BOC(\pi, e)$

Пока есть только одна

Пока есть только одна зацепка. Если убрать CD_STARTUP_FLAG (режим без CD), BIOS (у меня, по крайней мере) вообще отказывается видеть устройство, как Flash. Зато если включить режим с CD, то BIOS воспринимает устройство, как ZTE CDROM. Уже хорошо.

Места там мало, если удалить исходный ZTEMODEM.ISO, будет около 30 Мб. Но этого хватит для загрузчика, ядра и initrd. Я собрал небольшой образ LiveCD на основе LiveCD gentoo, выбросив оттуда все большие, пусть и существенные для работы файлы, но без которых можно загрузить само ядро (пусть даже это и кончится чем-нибудь вроде Kernel Panic, сейчас это неважно, для меня важен сам факт загрузки).

Сразу, естественно, ничего не загрузилось. Но я пока до конца не уверен, что правильно собрал усечённый LiveCD с переконфигурацией isolinux и записью загрузочного сектора. Нужно проверить, записав его на обычный CD-ROM. Попробую, проверю...

$BOC(\pi, e)$

Цитата: Пока есть только одна

Цитата:
Пока есть только одна зацепка. Если убрать CD_STARTUP_FLAG (режим без CD), BIOS (у меня, по крайней мере) вообще отказывается видеть устройство, как Flash.

Проблема именно в BIOS. Например биос моей мат.платы прекрасно (правда несколько дольше чем другие диски) распознаёт флешку (если CD_STARTUP_FLAG убран), и в принципе, с неё можно загрузиться...

Проверил образ с помощью >>

Проверил образ с помощью
>> qemu -cdrom img.iso
На эмуляторе грузится. Хотя, это совсем ещё не значит, что будет грузится с настоящего диска.

$BOC(\pi, e)$

Пока меня опять постигла

Пока меня опять постигла неудача. Я проверил собранный усечённый ISO-образ. Записал его на настоящий CD-ROM и удалось загрузить компьютер (правда, со второй попытки - пришлось переконфигурировать). Таким образом, сам ISO-образ нормальный.
Потом я поместил его в модем вместо ZTEMODEM.ISO. Записал туда CD_STARTUP_FLAG(=0x01), теперь, как и положено, первым делом устройство определяется, как CD-ROM и на этом CD-ROMе видно содержимое ISO-образа, который я записал.

В BIOSе (для надёжности) я запретил все остальные устройства, установил загрузку только с ZTE626, который BIOS называет "ZTE USB SCSI CDROM". При загрузке, к сожалению, появляется надпись, что данный диск не содержит операционной системы и предложение вставить другой.

Материнская плата Asus P4P800 (кажется), BIOS - AMI v2.51 (2002 г).

На своём ноутбуке HP я столь подробного исследования пока не проводил, но там очень странный BIOS, много изменить не позволяет.

$BOC(\pi, e)$

ArtSh написал(а):Цитата:Пока

ArtSh написал(а):
Цитата:
Пока есть только одна зацепка. Если убрать CD_STARTUP_FLAG (режим без CD), BIOS (у меня, по крайней мере) вообще отказывается видеть устройство, как Flash.

Проблема именно в BIOS. Например биос моей мат.платы прекрасно (правда несколько дольше чем другие диски) распознаёт флешку (если CD_STARTUP_FLAG убран), и в принципе, с неё можно загрузиться...

И всё же я просмотрел - BIOS воспринимает ZTE626, как флешку. Он называет его "ZTE MMC Storage" и позволяет установить в качестве загрузочного устройства. Но при загрузке выводит надпись:

BIOS написал(а):
Missing operating system.

Reboot and Select proper Boot device.
or Insert Boot Media in selected Boot device and press a key

Формально всё выглядит так, что флешку BIOS видит, но неправильно записана туда операционная система, а точнее, загрузчик. Но до этого у меня данным способом (в соответствии с Gentoo Linux LiveUSB HOWTO) удавалось загрузить систему на одной флешке (Kingston), но не удавалось на другой (Transcend). То ли делаю что-нибудь неправильно, то ли BIOS привередливый, то ли флешки такие - не знаю.

Попробую со всех трёх флешек загрузится на других компьютерах.

$BOC(\pi, e)$

Одна флешка (Kingston)

Одна флешка (Kingston FAT32) грузится на двух компьютерах без проблем.

Вторая флешка (Transcend VFAT) пытается грузится на двух компьютерах, но везде неудачно - пишет, что нет операционной системы. Хотя файлы на флешках одинаковые, а дополнительные манипуляции сделаны точно по мурзилке:
>> dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdc
>> syslunux /dev/sdc1
Файл ldlinux.sys создаётся. Может быть, это какой-то глюк самой флешки.

С ZTE626 (VFAT) такая история. На настольном компьютере BIOS к нему обращается (ZTE MMC Storage), но говорит, что там нет опрерационной системы. Ноутбук HP (непонятный BIOS, версия 1.3a) вообще не воспринимает ZTE626, как флешку. Там вообще BIOS куцый. В общем, как всегда. Если вещь стандартная (AMI или Award), то всё хорошо. Как только появляется что-то нестандартное (т.н. "брендовое", оригинальное, короче говоря, "самостийное") - сразу проблемы.

$BOC(\pi, e)$

Слил со всех трёх флешек

Слил со всех трёх флешек содержимое начального сектора:
>> dd if=/dev/sdX of=/tmp/sector_X.bin bs=410 count=1
и сравнил друг с другом и с исходным /usr/lib/syslinux/mbr.bin
Полное совпадение. И, просматривая содержимое, можно убедится, что это действительно похоже на загрузочный код.
Но среди прочего там есть сообщение "Missing operating system". Я вижу данное сообщение при неудачной загрузке.

Так что, может быть, данный код всё-же исполняется. И я это доказал. Я исправил эту надпись и записал на флешку Transcend. В результате при загрузке у меня выводится "Missing operating sys___.". Так что загрузочный код исполняется, просто где-то есть ошибки с конфигурированием LiveUSB.
Аналогичную штуку удалось провернуть и с ZTE626! Значит в принципе BIOS грузится с флешки, вставленной в модем. Но есть проблемы с самими данными, которые на неё записаны.

Пока я вижу только одно отличие - на работающей флешке FAT32, на двух неработающих - VFAT. Если бы было наоборот, я бы принял это за причину. Но так... Даже не знаю, уж очень невероятно то, что с FAT32 система грузится, а с FAT16 - нет.

Есть вообще вариант сделать там ext2fs и использовать extlinux вместо syslinux.

Пока ясно только то, что в принципе с этого модема можно загрузить систему.

$BOC(\pi, e)$

Результат (отсутствие

Результат (отсутствие результата) на данный момент такой. Модем ZTE626 с карточкой MicroSD и флешка Transcend ведут себя одинаково. В принципе, с них можно грузится. Программа в MBR выполняется.

Тем не менее загрузится не удаётся. Я думал, что-то совсем неправильно делаю. Тогда я взял unetbootin, взял родной ISO образ Gentoo LiveCD 2008.0, записал его с помощью unetbootin на флеш (ошибиться тут уже нельзя - всего два параметра - имя образа и имя файла устройства флешки). Не заработало - компьютер начинает выполнять программу с флешки, лампочка непрерывно бешенно моргает, и больше ничего.

Экспериментируя с unetbootin, я добился появления его собственного загрузочного меню, но в этот момент на флешке не было операционной системы...

Мистика, как всегда.

$BOC(\pi, e)$

Я всё-таки достиг

Я всё-таки достиг (частичного) успеха - удаётся начать грузится с флешки, вставленной в модем ZTE626!
Для этого я заменил ISOLINUX на GRUB.

Теперь появляется меню GRUB, можно выбирать и редактировать варианты загрузки.
Начинает грузится ядро. Но зарузка обрывается зависанием на строке "ACPI version ..." (не помню, какую версию он пишет). Данная строка появляется через одну после строки "Checking `hlt` instruction" (на данной строке компьютер всю жизнь иногда зависал).
Ещё одна странность - не работает Framebuffer. А ведь система взята с Gentoo LiveCD 2008.0 ISO, который, будучи записанным на настоящий компакт-диск, грузится нормально вплоть до появления иксов.

Конфигурационный файл grub (/grub/menu.lst) содержит следующее:
default 0
timeout 30

title Gentoo LiveCD 2008.0
root (hd0,0)
kernel /gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot slowusb initrd=gentoo.igz vga=791

Параметры ядра взяты с LiveCD. Для загрузки я в GRUBе удалял в конце строки vga=791, т.к. Framebuffer не работает.

$BOC(\pi, e)$

Загрузка

Да, я так и не написал, чем всё кончилось. Вывод такой - да!, на этот модем можно поставить линукс и грузится с него. Но! все компьютеры воспринимают его по-разному, не так просто загрузится. Да и полно сейчас компьютеров, биосы которых вообще с флешек не грузятся.
Так что, универсальной "палочки-выручалочки" не получилось.

$BOC(\pi, e)$

После обновления перестал работать...

После обновления перестал работать модем, пишет:"--> WvDial: Internet dialer version 1.60
--> Cannot open /dev/ttyUSB2: Device or resource busy
--> Cannot open /dev/ttyUSB2: Device or resource busy
--> Cannot open /dev/ttyUSB2: Device or resource busy

Модем был перепрошит и прекрасно работал несколько дней... В винде все работает!

И что? Может быть устройство

И что? Может быть устройство действительно занято? Что говорит cat /dev/ttyUSB2 ? а cat /dev/ttyUSB1 ?

Fedora 10 и ZTE MF626

Здравствуйте у меня проблема такая с этим модемом. Он у меня не подключается с Билайновской симкой, зато подключается с Мегафоновской. С Билайновской не подключается даже когда я ее вставляю в телефон, но раньше подключался правда с тех пор сменилась сеть, была EDGE стала HSPDA. Пробовал сеть перключить с помощью комманды AT+ZSNT=1,0,0 , судя по лампочке она переключалась, но эффект все тот же. Соединение есть, трафик не идет. подключаюсь так:

pppd lock modem crtscts asyncmap 00000000 defaultroute usepeerdns user beeline remotename beeline nodetach /dev/ttyUSB2 115200 ipparam beeline linkname beeline call beeline noauth
файл /etc/wvdial.conf:

[dialer beeline]
Modem = /dev/ttyUSB2
Baud = 115200
SetVolume = 0
Dial Command = ATDP
Init1 = ATZ
Init3 = AT+CGDCONT=1,"IP","home.beeline.ru"
FlowControl = CRTSCTS
Stupid Mode = 0
Phone = *99#
Username = beeline
Password = beeline
Модем прошит. С диска удалены два файла (которые надо удалять не помню названий). Все интерфейсы подключаются к драйверу option.

Цитата:Здравствуйте у меня

Цитата:
Здравствуйте у меня проблема такая с этим модемом. Он у меня не подключается с Билайновской симкой, зато подключается с Мегафоновской. С Билайновской не подключается даже когда я ее вставляю в телефон, но раньше подключался правда с тех пор сменилась сеть, была EDGE стала HSPDA. Пробовал сеть перключить с помощью комманды AT+ZSNT=1,0,0 , судя по лампочке она переключалась, но эффект все тот же. Соединение есть, трафик не идет.

Конечно, сейчас это, наверно, не актуально, но ответ в моём сообщении от 27 Декабря 2008 - 16:26: надо заменить симку.

Добрый день. Не могу добиться

Добрый день.
Не могу добиться нормальной работы данного модема на генерик ядре. Вот что выдает dmesg:

usbcore: registered new interface driver usbserial                                                                                                           
USB Serial support registered for generic                                                                                                                    
usbcore: registered new interface driver usbserial_generic                                                                                                   
usbserial: USB Serial Driver core                                                                                                                            
input: Power Button (FF) as /class/input/input3                                                                                                              
USB Serial support registered for GSM modem (1-port)
option 1-2:1.0: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
option 1-2:1.1: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
option 1-2:1.2: GSM modem (1-port) converter detected
usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems

Вот вывод lsusb:

gameserv ~ # lsusb
Bus 004 Device 002: ID 0000:0000
Bus 004 Device 001: ID 1d6b:0001
Bus 003 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0001
Bus 001 Device 002: ID 19d2:0016
Bus 001 Device 001: ID 1d6b:0002

Пробовал подменять deviceid в options.c и пересобирать, не помогло.
Можно ли запустить этот модем под линухом?

Bus 001 Device 002: ID

Bus 001 Device 002: ID 19d2:0016

Как бы намекает, что у Вас не MF626. Посмотрите наклейку сзади. Вы перепрошивали модем левой прошивкой? Из Вашего сообщения также не понятно, что же всё-таки не работает?

Модем прекрасно работал из

Модем прекрасно работал из под убунты на рабочем компе и определялся там как mf626. Модем не перепрошивал, хотя может это делал старый хозяин.
Не работает отправка смс из под gammu, проверял в той же убунте, в ней все прекрасно работает, задача этого модема gsm сигнализация.

Давайте сюда cat

Давайте сюда cat /proc/bus/usb/devices из под убунты, ошибки gammu. Попробуйте также сделать следущее:

echo -e "AT+CSQ\r">/dev/ttyUSBX
cat /dev/ttyUSBX

где вместо Х цифра. Таким образом можно проверить корректно ли работает драйвер и сам модем при запросе различные порты.

Вывод из под убунты привести

Вывод из под убунты привести не могу, модем в серверной, серверная в другом здании.
Вот из под генты:

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1     
P:  Vendor=19d2 ProdID=0016 Rev= 0.00                            
S:  Manufacturer=ZTE, Incorporated                               
S:  Product=ZTE CDMA Technologies MSM                            
C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=500mA                           
I:* If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms                         
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms                         
I:* If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms                         
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms                         
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms                         
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms                         
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms

Вот что пишет gammu:

[Gammu            - 1.22.1 built 10:19:15 May 19 2009 using GCC 4.1]
[Connection       - "at115200"]
[Connection index - 0]
[Model type       - ""]
[Device           - "/dev/ttyUSB2"]
[Runing on        - Linux, kernel 2.6.29-gentoo-r3 (#3 SMP Tue May 19 13:24:10 MSD 2009)]
Serial device: DTR is up, RTS is up, CAR is down, CTS is down
Setting speed to 115200
[Module           - "auto"]
Escaping SMS mode
Sending simple AT command to wake up some devices
1 "AT"
2 "OK"
Enabling echo
1 "ATE1"
2 "OK"
Trying Motorola mode switch
1 "+ZUSIMR:2"
2 "AT+MODE=2"
3 "ERROR"

UNKNOWN frame. If you can, please report it (see <http://cihar.com/gammu/report>). Thank you
LAST SENT frame type 0x00/length 10
41A|54T|2B+|4DM|4FO|44D|45E|3D=|322|0D                          AT+MODE=2.
RECEIVED frame type 0x00/length 0x1E/30
2B+|5AZ|55U|53S|49I|4DM|52R|3A:|322|0D |0A |41A|54T|2B+|4DM|4FO +ZUSIMR:2..AT+MO
44D|45E|3D=|322|0D |0D |0A |45E|52R|52R|4FO|52R|0D |0A          DE=2...ERROR..

[Retrying 1 type 0x00]
1 "AT+MODE=2"
2 "ERROR"
Seems not to be supported
Enabling CME errors

Вот вывод команды приведеной выше:

gameserv ~ # echo -e "AT+CSQ\r">/dev/ttyUSB2
gameserv ~ # cat /dev/ttyUSB2

+CSQ: 20,99

OK

+ZUSIMR:2

+ZUSIMR:2

+ZUSIMR:2
^C

Решил погуглить на тему

Решил погуглить на тему +ZUSIMR:2 и нашел вот это:
http://linuxforum.ru/index.php?showtopic=72408&st=30&start=30
по совету передал команду в модем:

at+cpbs="sm" и at+cpms="sm","sm",""

После этого удалось отправить смс. Соответсвенно можно считать что модем заработал. Теперь буду курить на тему работоспособности после ребута.

Пытаюсь позвонить на обычный

Пытаюсь позвонить на обычный аналоговый модем, но не выходит.
Ни кто не подскажет он вообще это умеет?

По умолчанию, тарифный план

По умолчанию, тарифный план Би-лайна запрещает звонки на все номера кроме специальных. Модем, по идее, должен спокойно соединятся с аналоговым модемом (просто надо подправить скрипт инициализации)...

Сорри за небольшой

Сорри за небольшой оффтоп.....

Кто-нибудь пробовал его в качестве смс-гейта, например через smstools???
Хочу прикрутить к nagios

SMS-Tools

Гость написал(а):
Сорри за небольшой оффтоп.....

Кто-нибудь пробовал его в качестве смс-гейта, например через smstools???
Хочу прикрутить к nagios

Целый день сегодня крутил ZTE MF636. Терял сеть, регулярно. Понял что не с проста. Сначала писал ему в /dev/ttyUSB2, через echo, но увы иногда было смертельно для smstools. Пошел другим путем...
С данным патчем, при регулярных потерях сигнала, восстанавливается за 2 секунды)))

--- smstools3/src/modeminit.c<->2009-05-30 20:06:23.000000000 +0400
+++ smstools3/src/modeminit.c<->2010-06-08 16:20:17.000000000 +0400
@@ -1469,7 +1469,9 @@
}
else if (strstr(answer,"+CREG:"))
{
- writelogfile(LOG_NOTICE, 0, "MODEM IS NOT REGISTERED, WAITING %i SEC. BEFORE RETRYING %i. TIME", waitnetwork_errorsleeptime, retries +1);
+<----->char fuck[500];
+ put_command("AT+CFUN=1\r", fuck, sizeof(fuck), 2, "(\\OK)|(ERROR)");
+ writelogfile(LOG_NOTICE, 0, "MODEM IS NOT REGISTERED, FUCKING %i SEC. BEFORE RETRYING %i. TIME", waitnetwork_errorsleeptime, retries +1);
if (t_sleep(waitnetwork_errorsleeptime))
return -2;
}

MF626 немного нестандартное решение

Всё-таки удалось заставить работать модем ZTE MF626 под линуксом нормально.

Изначально он работал около трёх минут и разрывал соединение. Казалось бы проблема решается или элементарной перепрошивкой на версию M02 с австралийского сайта, или переодически посылать в модем какие-то команды, чтоб он не разрывал соединения.

Последний вариант, как понимаете костыль. Железо (в данном случае модем) должно выполнять свою работу чётко, независимо от ОС, в которой функционирует.

Теперь про смену прошивки модема. А не прошивается он! И всё тут! Ну никак!:( Речь идёт о последней версии модема (дефолтная билайновская прошивка BD_BLNP673M3V1.0.1B02). Программа смены прошивки MF626_M02_Upgrade Tool.exe немного поработав пишет switch to DownLoad mode... switch to DownLoad mode fail!

И что же получается!? Я заплатил деньги за модем, а он у меня не работает! Ну чтож, беру гарантийник, модем и всё что с ним было, несу в сервисный центр с диагнозом "в ОС Linux работает 3 минуты и разрывает соединение". Модем принимают на гарантийный ремонт, через несколько дней возвращают и говорят, что перепрошили его. Как они это сделали для меня пока загадка...

Я радостно вставляю модем в ноутбук, устанавливаю соединение, проверяю что инет поднялся и работает и...бац! через три минуты дисконнект. Но кричать о том, что мастера из сервисного центра - халтурщики пока рано. Отыскав виндовый компьютер, подключаю модем и запускаю MF626_M02_Upgrade Tool.exe. Модем успешно прошивается до M02! В сервисном центре хоть и не отремонтировали мне его полностью, но сделали великое дело - разлочили чтоб его можно было прошивать.

Теперь обратно подключаю модем к ноутбуку, проверяю, с австралийской прошивкой инет работает нормально, оставляю соединение подключеным. Модем проработал 258 минут (четыре с лишним часа!), но потом завис, светодиод перестал моргать вообще, помогло только отключение от порта USB и повторное подключение, ну да ладно, по этому поводу я не слишком расстраиваюсь. 258 минут и 3 минуты - разница очевидна. И насколько я слышал отзывы, в родной ОС с родной программой модем работает полтора-два часа, потом происходит программная ошибка (кривые драйвера?).

Проблема с работой модема именно в качестве модема в ОС Linux решена. Что же осталось? Посылка USSD запросов и приём/отправка SMS. Предлагаю комьюнити объединится и допилить это, тем более что работы в этом направлении насколько мне известно уже идут.

Посылка USSD запросов нужна скажем для проверки баланса, перехода на другой тарифный план и пр.

А вот возможность отправлять/получать SMS сообщения будет очень полезна тем, кто устраивает SMS рассылки или создаёт автоматизированную систему обработки запросов с помощью SMS.

Созданим некий mf626-tools порт, в котором будут эти две универсальные консольные программы, а кому надо создадут для этих программ GUI.

И последнее. Если вдруг эту ветку будут читать программисты, которые по заказу билайн создали эту самую прошивку для MF626 и разработали эту глупую кривую программу "Билайн Интернет дома" или "USB модем от билайн", то знайте: ваши действия не что иное как прямое нарушение антимонопольного законодательства. Ваш монополизированный прозомбированный мозг не способен мыслить как мыслят свободные люди. И ваша цель заставить людей пользоваться ОС Windows для работы с этим модемом потерпела неудачу.

>Созданим некий mf626-tools

>Созданим некий mf626-tools порт

Начинайте... Ну а проще говоря никто за вас ничего делать не будет.

Каков сакральный смысл вашего поста?

TheMixa

TheMixa написал(а):
Начинайте... Ну а проще говоря никто за вас ничего делать не будет.

Да, пожалуй я на базе уже существующих решений разработаю для своих задач необходимые программы. Даже тут ничего никому не надо...

Ну почему не надо, просто не

Ну почему не надо, просто не сто́ит чересчур серьёзно воспринимать комментарий человека, первый раз отметившегося в дискуссии. В чём «сакральный смысл» его комментария, мне тоже неясно, кстати говоря.
А кому нужно будет, стукнется сам, предложит посильную помощь.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Цитата: Последний вариант,

Цитата:
Последний вариант, как понимаете костыль. Железо (в данном случае модем) должно выполнять свою работу чётко, независимо от ОС, в которой функционирует.

Если производитель захотел, чтобы в модем посылалась команда, то это не костыль. Ведь под виндовс Вы не можете запустить модем не посылая команды?

Цитата:
Модем проработал 258 минут (четыре с лишним часа!), но потом завис, светодиод перестал моргать вообще, помогло только отключение от порта USB и повторное подключение, ну да ладно, по этому поводу я не слишком расстраиваюсь. 258 минут и 3 минуты - разница очевидна. И насколько я слышал отзывы, в родной ОС с родной программой модем работает полтора-два часа, потом происходит программная ошибка (кривые драйвера?).

А у меня (с драйвером hso) он работает минимум по 16-18 часов... А какой у Вас уровень сигнала? А питания достаточно?

Цитата:
Что же осталось? Посылка USSD запросов и приём/отправка SMS.

Это уже всё есть. Первое делается с помощью АТ комманд, второе с помощью gammu (есть фронтенд wammu).

Цитата:
знайте: ваши действия не что иное как прямое нарушение антимонопольного законодательства. Ваш монополизированный прозомбированный мозг не способен мыслить как мыслят свободные люди. И ваша цель заставить людей пользоваться ОС Windows для работы с этим модемом потерпела неудачу.

А где же Ваше обращение в ФАС или хотя бы в роспотребнадзор?

ArtSh написал(а): Если

ArtSh написал(а):
Если производитель захотел, чтобы в модем посылалась команда, то это не костыль. Ведь под виндовс Вы не можете запустить модем не посылая команды?

Производитель в данном случае компания ZTE и этот самый производитель ничего не захотел, посылать какие-то команды в модем уж точно. Захотел как раз билайн, вот только чего: посылать команды в модем или сделать возможной работу модема под виндовс?

ArtSh написал(а):
А у меня (с драйвером hso) он работает минимум по 16-18 часов... А какой у Вас уровень сигнала? А питания достаточно?

Действительно модем может работать намного дольше, наверное в том месте был слабый уровень сигнала. Вот например модем от МТС у меня вообще проработал двое суток непрерывно и НИ ЕДИНОГО РАЗРЫВА (с). Может он и дольше проработал бы, но мне надо было выключать и забирать ноут, поэтому эксперимент пришлось прекратить. Кстати на модеме от МТС я даже прошивку не менял, он и так работает хорошо.

ArtSh написал(а):
Это уже всё есть. Первое делается с помощью АТ комманд, второе с помощью gammu (есть фронтенд wammu).

Не знал о существовании gammu. Спасибо, посмотрю.

ArtSh написал(а):
А где же Ваше обращение в ФАС или хотя бы в роспотребнадзор?

Пока это надо одному мне так что думаю обращение будет бесполезно. Достаточно вспомнить как сейчас производители ноутбуков "охотно" возвращают деньги за предустановленную висту.

unixioid написал(а): ArtSh

unixioid написал(а):
ArtSh написал(а):
Если производитель захотел, чтобы в модем посылалась команда, то это не костыль. Ведь под виндовс Вы не можете запустить модем не посылая команды?

Производитель в данном случае компания ZTE и этот самый производитель ничего не захотел, посылать какие-то команды в модем уж точно. Захотел как раз билайн, вот только чего: посылать команды в модем или сделать возможной работу модема под виндовс?

Конечно захотел ZTE (как я понимаю это штатная функция, которая активизируется специальным флагом)! Или Вы думаете, что оператор связи обладает ресурсами для разработки прошивки?

unixioid написал(а):
ArtSh написал(а):
А где же Ваше обращение в ФАС или хотя бы в роспотребнадзор?

Пока это надо одному мне так что думаю обращение будет бесполезно. Достаточно вспомнить как сейчас производители ноутбуков "охотно" возвращают деньги за предустановленную висту.

Один думает что пока это надо одному, другой, третий, а производители потом говорят, что это не нужно никому...

ArtSh написал(а): Конечно

ArtSh написал(а):
Конечно захотел ZTE (как я понимаю это штатная функция, которая активизируется специальным флагом)! Или Вы думаете, что оператор связи обладает ресурсами для разработки прошивки?

Хз, спорить не буду. Хотелось бы получше изучить прошивку. Кто-нить знает как можно в ней поковыряться под отладчиком?

Хотел спросить, но решение

Хотел спросить, но решение нашёл, напишу здесь результат.

Использую я этот модем уже более года, всё было нормально. Но вчера выяснилось, что появилось в нашем городе такое чудо двадцать первого столетия, как сеть 3G от Megafon. Раньше я использовал 3G от Beeline в Питере и там такого эффекта не было.

Значит так - скорость действительно большая. То, что я видел (по данным wget при скачивании больших файлов) - 210 кбайт/c. По сравнению с тем, что было в EDGE - 25 кбайт/с это действительно много. Но возникла проблема. Интернет после некоторого времени работы начинал тормозить. Если отправить повторный запрос, опять немного скачивал и начинал тормозить.

Эту проблему я узнал, т.к. с этим уже сталкивался в своё время при настройке VPN местного проводного провайдера. Причина - в значениях MTU и MRU. По умолчанию они заданы 1500 (это можно посмотреть с помощью ifconfig). Тогда для VPN я уменьшил их до 1024. А вот сколько взять теперь для Мегафона? Я попробовал 1024, по-моему, скорость передачи данных несколько упала.

Как узнать? Очень просто. Запускаем ping, указав объём пакета:
ping www.ya.ru -s 1500
Это может работать без ошибок, нужно дождаться проявления тормозов. И тогда ping начинает ругаться, что не все данные возвращаются правильно. У меня ping писал, что байт номер 1436 не соответствует переданному и выводил содержимое принятого пакета. Оно должно быть заполнено линейно растущими значениями. И действительно, начиная с 1436 пакета шли несколько нулей, а потом - мусор:

>> ping www.ya.ru -s 1500
PING ya.ru (93.158.134.8) 1500(1528) bytes of data.
1508 bytes from ya.ru (93.158.134.8): icmp_seq=1 ttl=47 time=309 ms
wrong data byte #1436 should be 0x9c but was 0x0
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47
.......
#1416 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 0 0 0 0 0 0 0 0 0 0 0 0
#1448 0 0 0 0 0 0 0 0 0 0 5 e4 10 38 aa 6b 7e 97 4b 19 ff 58 af 49 c0 c1 c2 c3 c4 c5 c6 c7
#1480 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db

Отсюда я сделал вывод, что MRU и MTU не следует делать больше 1435 байт. У себя я поставил 1400, теперь всё работает. Устанавливать это нужно в параметрах pppd: mru 1400 mtu 1400.

$BOC(\pi, e)$

ловил похожий глюк на однмо

ловил похожий глюк на однмо из первых MF626. не разобрался с ним и завел MF622й вместо него.
но он еще у меян есть. надо будет попробовать еще раз.

те что посвежее модемы не имеют этого бага.

А у меня ничего такого не

А у меня ничего такого не наблюдается, всё работает без проблем именно с 3G и именно с мегафоном... Может в службу поддержки стоит позвонить?

У меня раньше тоже этого не

У меня раньше тоже этого не было. Что поменялось - теперь на модеме горит зелёная лампочка, а была синяя. Ну и скорость стала больше. Вот в этот момент проблема и возникла. То есть при появлении 3G от Мегафона.

$BOC(\pi, e)$

У меня тоже зелёная, раз 3G

У меня тоже зелёная, раз 3G ;) Поэтому я и пишу — обратитесь в службу поддержки мегафона.

помоему для этого как раз

помоему для этого как раз создана программка tracepath

Не очень понятно, программа

Не очень понятно, программа tracepath выдаёт значение 1500, при этом пишет:
>> tracepath www.gentoo.ru
1: 10.216.109.102 (10.216.109.102) 0.126ms pmtu 1500
1: 10.77.196.218 (10.77.196.218) 119.934ms asymm 2
...........
16: mo-bb-teng2-4.msk.corbina.net (195.14.54.139) 129.938ms asymm 6
17: no reply
...........
30: no reply
31: no reply
Too many hops: pmtu 1500
Resume: pmtu 1500
Как это понимать? Вывод - MTU 1500, но много пакетнов не вернулось? Для этого теста я устанавливал в ppp MTU и MRU 16384 (максимально допустимое значение), но после подключения ifconfig сообщила, что MTU 1500, видимо, так ppp договорился с сервером.
Если ограничить длину пакета 1400 в tracepath, получится:
>> tracepath -l 1400 www.gentoo.ru
1: 10.77.196.218 (10.77.196.218) 269.915ms asymm 2
...........
16: mo-bb-teng2-4.msk.corbina.net (195.14.54.139) 119.402ms asymm 6
17: no reply
...........
31: no reply
Too many hops: pmtu 1400
Resume: pmtu 1400

$BOC(\pi, e)$

Здравствуйте! Пытаюсь завести

Здравствуйте! Пытаюсь завести модем mf100, он вроде похож на mf626.
Ядро 2.6.32.3, модуль option. C помощью программы qpst удалил файлы NODOWNLOAD.FLG и AUTORUN.FLG.
Когда втыкаю модем появляются устройства /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2.
Но не удается поднять интерфейс ppp0. Использовал конфиги для wvdial, приведенные выше.
На AT+ZOPERTE="beeline" модем отвечает: ERROR. В /dev/ttyUSB1 переодически появляются записи вида +ZOPERTER: 0,E8761454AE480E68.
У кого-нибудь получилось настроить данный девайс в linux?

Зато удалось получить информацию о балансе, мой вариант программы:

#include <stdlib.h>
#include <iconv.h>
#include <iostream>
#include <fstream>
#include <unistd.h>
using namespace std;

int main(void)
{
	char rawdata[1024];
	char text[1024];
	fstream dev;
	dev.open("/dev/ttyUSB2", fstream::out);
	if (!dev) {cout << "Нет доступа к модему. Нужны права суперпользователя\n"; exit(1);} 
//	dev << "AT+CPBS=\"SM\"\r\n";
//	dev << "AT+CPMS=\"SM\",\"SM\",\"\"\r\n";
	dev << "AT+CUSD=1,*102#,15\r\n";
	dev.close();
	dev.open("/dev/ttyUSB2", fstream::in);                                                                                                                                                                                                                                            
	do                               
	{
		dev>>rawdata;
		cout<<"Диалог с модемом: "<<rawdata<<endl;
		if (rawdata[0] == 'E') exit(1);
		usleep(10000);
	} 
	while(rawdata[0]!='0' || rawdata[1] != ',' || rawdata[2] != '"');                                                                                     
	dev.close();
	printf("Расшифровка:\n");
	size_t i = 0; size_t j = 0;
	while (rawdata[i++] != '"') if (i > 10) {cout << "Открывающие кавычки не найдены\n"; exit(1);};
	while (rawdata[i] != '"') {text[j++] = rawdata[i++]; if (j > 500) {cout << "Закрывающие кавычки не найдены\n"; exit(1);}}
	unsigned short data[256];
	char str[512]; int ss;
	for (i = 0; i <= j/4; i++) {sscanf(text+i*4, "%04X", &ss); data[i] = (unsigned short) ss;}
	data[i]=0;
	size_t i1 = i*2 + 2; size_t i2 = 512;
	char *c1 = (char*)data; char *c2 = (char*)str;
	iconv_t cnv = iconv_open("utf-8", "UCS-2");
	if (iconv(cnv, &c1, &i1, &c2, &i2) == 0) cout<<str<<endl;
}

Непонятно только с командами "AT+CPBS=\"SM\"\r\n" "AT+CPMS=\"SM\",\"SM\",\"\"\r\n". Сначала без них частенько ошибки выскакивали, а теперь если их отправлять в порт, то модем на первую отвечает и молчит. Зато без них все работает.

Rebel написал(а): Когда

Rebel написал(а):
Когда втыкаю модем появляются устройства /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2.
Но не удается поднять интерфейс ppp0. Использовал конфиги для wvdial, приведенные выше.
На AT+ZOPERTE="beeline" модем отвечает: ERROR. В /dev/ttyUSB1 переодически появляются записи вида +ZOPERTER: 0,E8761454AE480E68.

Ваш случай похож на описанный в Вики. Если Вы не хотите в нём ковыряться, лучше обратиться в сервисный центр, или взять другой модем.

те две строки все-таки надо

те две строки все-таки надо раскомментировать...

Да, я читал это, но решения там нет еще.
Поковыряться я уже успел. Раз пять пытался залить прошивку от mf626 - размыкал, замыкал провода c разными паузами, но в download mode не переключилось, хорошо хоть не сгорел :)

net.ppp0

У меня похожая ситуация с модемом ZTE MF626, перешитым до версии М02.
То есть - при запуске /etc/init.d/net.ppp0 start сама служба запускается, но пишет -
Device "ppp0" does not extst.
Модем продолжает работать около двух минут, причём интернета нетю ;), затем разрывает соединение,
после чего, опция persist снова поднимает модем вместе с ppp0 .
После всех этих "комбинаций" модем может работать без разрыва соединения х.з. сколько времени.
Вот мой /etc/conf.d/net

willy написал(а): У меня

willy написал(а):
У меня похожая ситуация с модемом ZTE MF626, перешитым до версии М02.
То есть - при запуске /etc/init.d/net.ppp0 start сама служба запускается, но пишет -
Device "ppp0" does not extst.
Модем продолжает работать около двух минут, причём интернета нетю ;), затем разрывает соединение,
после чего, опция persist снова поднимает модем вместе с ppp0 .
После всех этих "комбинаций" модем может работать без разрыва соединения х.з. сколько времени.

В ядре все нужные модули есть? Модем не подвисает? Соединяется быстро?

willy написал(а):
Вот мой /etc/conf.d/net

Шибко наворочено. AT+ZSNT запоминается в модеме, не нужно его каждый раз мучать (переключение занимает некоторое время, модем может зависнуть). Попробуйте что-нибудь попроще для начала

config_ppp0="ppp"
modules_ppp0="usbserial"
link_ppp0="/dev/ttyUSB2" 
username_ppp0='beeline' 
password_ppp0='beeline' 
pppd_ppp0="usepeerdns defaultroute usehostname modem crtscts"                                                       
chat_ppp0="                                                                                                         
        ABORT BUSY                                                                                                  
        ABORT ERROR
        ABORT 'NO ANSWER'
        ABORT 'NO CARRIER'
        ABORT 'NO DIALTONE'
        ABORT 'Invalid Login'
        ABORT 'Login incorrect'
        TIMEOUT 5
        '' '\\d'
        '' '\\d'
        '' '\\d'
        '' '\\d'
        '' '\\d'
        '' AT
        OK 'ATV1'
        OK 'ATE0'
        OK 'AT&F&D2&C1S0=0'
        OK 'ATS7=60S30=0'
        OK 'ATS0=0'
        TIMEOUT 10
        '' ATZ
        OK 'AT+CGDCONT=1,\"IP\",\"home.beeline.ru\"'
        TIMEOUT 20
        OK 'ATDT*99#'
        CONNECT ''
        TIMEOUT 5
        '~--' ''
"

Обратите внимание на паузы и на использование DNS, и пока настраиваете соединение, лучше отключить iptables...

chat_ppp0 O_O

Ну что сказать - спасибо, что ответили :)
Попробовал поднять соединение с Вашими настройками "chat_ppp0" - то же самое, что и было раньше -
Device "ppp0" does not exist, модем работает около 2ух минут, затем следует разрыв соединения + пауза,
примерно 60 сек, апосля чего модем, ppp0, интернет скопом поднимаются и "стоят, пока сам не пришибёшь" :D
Девайс после перешивки до версии М2 работает без нареканий, соединение происходит где-то секунд через 20,
после ввода команды /etc/init.d/net.ppp0 start, все нужные модули в ведре имеются.
При поднятии "биляйна" через wvdial, соединение происходит где-то через минуту.
Вообще-то я не жаловался %-), а просто решил написать, как у меня это дело работает.

Кстати... По-моему где-то выше писали, что модемы с прошивкой В_09 не перешиваются... Я свой перешил без проблем.

p.s: Последовав Вашему совету, изменил все "модемные" настройки в /etc/conf.d/net.
Интернет поднялся примерно через 10 сек. и пока не падаеть.
Тхэнкс!

Короче, все дело в том, что

Короче, все дело в том, что новые модемы периодически посылают запрос, на который ответить можно только зная страшно секретный алгоритм.
Вот программа (любезно предоставленная Alex-ом), которая работает:
http://narod.ru/disk/15941552000/mf626-b09-1.1-i486-1_ALX.tgz.html

Проблема такая. Система видит

Проблема такая. Система видит устройство как:

Bus 002 Device 005: ID 19d2:0031 ONDA Communication S.p.A.

но не видит его как модем, никаких сообщений в dmesg типа "GSM modem......ttyUSB*", так как в liveCD Ubuntu 9.10 все определяется корректно и интернет соединение настроил без проблем. Gentoo установил впервые, система голая - ни DE, ни X-ов.
Что сделать что бы устройство определялось как модем? Может я что то упустил при сборке ядра...
Замечу что модем ZTE MF626 был зашит прошивкой от Globe.

Реально проблема вселенского

Реально проблема вселенского маштаба, неужели ни у кого мыслей нет по данной проблеме. Просто я уже несколько дней пытаюсь оживить этот модем под генту. Нагуглился...

Проблема в конфигурации ядра.

Проблема в конфигурации ядра. Как надо — не знаю.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

А какая версия ядра?

А какая версия ядра? А драйвер в ядре собран?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".