MF626

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск

Содержание

[править] ZTE MF626, он же ONDA MT503HS

Данное руководство составлено по мотивам http://www.gentoo.ru/node/12140. Началось всё после того, как я купил данное устройство в комплекте «Билайн. Интернет дома». В коробке оказался USB модем ZTE MF626. Данный модем поддерживает стандарты HSDPA/HSUPA/UMTS 850/1900/2100 МГц и GSM/GPRS/EDGE 850/900/1800/1900 МГц. Также у данного модема имеется скрытое гнездо для внешней антенны (под наклейкой с информацией), трёхцветный индикатор (красный/синий/зелёный) и слот для microSD карты памяти (до 4Gb). В данном модеме применяется технология ZeroCD, поэтому при подключении данный модем сперва представляется как съёмный диск, на котором находятся драйвера для Windows. Для того, чтобы начать работу непосредственно с модемом, нужно "извлечь диск". Существует другой вариант: можно отключить загрузку ZeroCD с помощью специальной утилиты, работающей под Windows. Итак, приступим.

На заметку: Для работы всех функций устройства, ядро должно быть собрано с драйверами usbserial и usb-storage и sr_mod
На заметку: Начиная с ядра 2.6.28 модем поддерживается драйвером option

[править] Теперь модемы MF626 с версией прошивки BD_BLNP673M3V1.0.1B02 прошиваются

Для этого необходимо в разрыв провода +5v usb-кабеля (он обычно красный) припаять кнопку (нам необходимо его размыкать). Затем запустить прошивку, при появлении надписи switching in download mode в окне прошивальщика подождать 1-4 сек, разомкнуть провод на долю секунды и замкнуть обратно, затем подождать 2-5 сек, снова разомкнуть на долю секунды и замкнуть обратно. Модем войдет в режим диагностики и начнётся процесс прошивки. В моём случае пауза между появлением "switching in download mode" и первым размыканием составила 2 сек, между первым и вторым размыканием - 2,5-3 сек. Лучше всего потренироваться входу в режим диагностики перед диспетчером устройств в windows - если весь процесс проделан правильно в портах останется только zte diagnostics interface, при этом светодиод модема не будет гореть. То же возможно произвести быстро вынимая и вставляя модем из usb-порта, однако, это неудобно. Модем стабильно прошился на ноутбуке с внешним питанием, через 3х-метровый usb-кабель. При использовании прошивки от Telestra можно удалить CD_STARTUP_FLAG, устройство сразу определится как модем, и будет работать встроенный кардридер (ядро 2.6.31). После прошивки таким способом модем разлочен, и его возможно прошивать ещё раз без всяких ухищрений обычным методом. Инструкция взята отсюда.

ВНИМАНИЕ! модемы запарываются если неправильно шить: как минимум, если не получается сразу ввести в режим диагностики при switching in download mode, нужно немедленно выдернуть модем из usb порта и начать все заново. При этом для модемов MF100 положительный результат все равно не гарантируется.

[править] Подключение модема

В некоторых версиях ядра Linux драйвер usbstorage игнорирует подключение устройств с ZeroCD. Данная модель модема подпадает под это правило, но без команды на извлечения диска модем не подключится. Для того, чтобы начать, вставьте модем в разъём USB компьютера, который поддерживает стандарт USB 2.0 HighSpeed. Если в системном журнале (/var/log/messages или в выводе команды dmesg) вы увидите что-то похожее на

Code: dmesg
usb 1-5: new high speed USB device using ehci_hcd and address 9
usb 1-5: configuration #1 chosen from 1 choice

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

это значит, что вам придётся одним из двух способов переключить устройство в режим модема.

[править] С отключением ZeroCD

Если вы не хотите ждать, пока модем переподключится, и не хотите ковыряться в ядре, можно поковыряться в модеме. ;)

Сперва надо скачать и установить в Windows программу QPST от Qualcomm. Сама Qualcomm не распространяет открыто эту программу, но поискав в интернете её можно найти. Далее следует установить её и запустить входящую в неё EFSExplorer, которая позволяет работать с файловой системой устройства. В трее появится значок, при двойном щелчке на котором появляется окно настроек. Выберите в нём вкладку Ports, выберите добавление нового порта и выберите порт к которому прикрепилось устройство. После этого, закройте окно настроек. Соответствующее устройство появилось в окне выбора EFSExplorer.

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

Подобным образом можно запретить требование запросов каждые 2 минуты (нужно удалить один ещё один файл FLAG_NO_DOWNLOAD после этого модем работает без запросов какая сим карта. Однако при этом скорее всего перестанет работать встроенный microSD картридер.

Примечание : 22 апреля 2009 : Файлы CD_STARTUP_FLAG и FLAG_NO_DOWNLOAD в устройстве теперь называются AUTORUN.FLG и NODOWNLOAD.FLG соответственно

[править] Смена идентификатора устройства в ядре

В некоторых случаях после разблокировки (а точнее удаления файла FLAG_NO_DOWNLOAD) модем странным образом меняет идентификатор продукта. В этом случае ядро не сможет его опознать. В таком случае следует проверить вывод lsusb или cat /proc/bus/usb/devices. Если среди прочих, вы увидите строку

Code: lsusb
Bus 002 Device 005: ID 19d2:0016 ONDA Communication S.p.A.

это значит, что модем сменил идентификатор устройства (ProdID). Ядро ожидает, что в режиме модема устройство будет идентифицироваться как 19d2:0031. Простейший способ это исправить --- заменить соответствующий номер в исходных текстах ядра.

Для ядра старше 2.6.28 следует в файле drivers/usb/serial/option.c сделать следующее исправление:

Code: drivers/usb/serial/option.c
/*#define ZTE_PRODUCT_MF626			0x0031*/
#define ZTE_PRODUCT_MF626			0x0016

После пересборки ядра (со включённым драйвером option модем должен опознаться верно. Однако, устройством модема в этом случае обычно становится /dev/ttyUSB2.

[править] Без отключения ZeroCD

Если после строки configuration #1 chosen from 1 choice в выводе dmesg вы увидите usb-storage: device ignored, то необходимо закомментировать следующий кусок кода:

Code: /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),
*/ //это знак конца комментария

после этого собрать ядро и перезагрузиться. В результате вы должны увидеть в dmesg примерно следующее:

Code: dmesg
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

После этого следует установить программу emerge usb_modeswitch и настроить её:

Файл: /etc/usb_modeswitch.conf
DefaultVendor=  0x19d2
DefaultProduct= 0x2000

TargetVendor=   0x19d2
TargetProduct=  0x0031

DetachStorageOnly=1

а также создать правило udev:

Файл: /etc/udev/rules.d/91-usb_modeswitch.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2000", RUN+="/usr/sbin/usb_modeswitch; eject /dev/sr1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0031", RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x031"
На заметку: имя устройства в команде eject зависит от настроек ядра и конфигурации оборудования компьютера
На заметку: в ядрах 2.6.27.9 и 2.6.28-rc1 и выше поддержка ZTE MF626 включена в драйвер option и вторая строка правила не требуется

Теперь, после команды udevadm control --reload-rules и подключения модема, вы должны увидеть приблизительно следующее:

Code: dmesg
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

Это значит, что модем найден, а также найдено устройство чтения microSD карт памяти.

[править] Настройка

Наконец, мы прошли треть пути, о, счастливый обладатель ZTE MF626... Теперь нам предстоит узнать, какие команды и как надо передавать модему, чтобы он правильно работал, как подключиться к интернету, и как узнать баланс.

Если посмотреть внимательно на аппаратный интерфейс данного устройства, то можно увидеть следующее:

Code: /proc/bus/usb/devices
T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#=  4 Spd=480 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= 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=usbfs
I:* If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbfs
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= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 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=2ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms

Как можно увидеть, каждый интерфейс предназначен для определённой цели. Так, третий интерфейс является стандартным преобразователем USB-Serial, к нему подключён драйвер usbserial, и через этот интерфейс осуществляется основной обмен данными. Второй интерфейс предоставляет доступ к карте microSD, и к данному интерфейсу подключён драйвер usb-storage. Первый интерфейс предназначен для отправки специфических команд, речь о которых пойдёт ниже, к нему через usbfs подключена программа, которая выполняется в пространстве пользователя. Нулевой интерфейс предназначен для настройки устройства, именно через него работает программа qpst.

При подключении данного модема к компьютеру, он автоматически подключается к сети, однако через две минуты модем отключается от сети. С помощью обратного инженерного анализа (просматривая обмен данных между устройством и компьютером) работы программы "Билайн. Интернет Дома" удалось установить, что раз в минуту в модем через первый интерфейс следует отсылать команду
AT+ZOPERTE="beeline"\r\n
. Все остальные команды, а также последовательсти подключения и выключения соединения в отсутствии документации были получены методом обратной разработки.

[править] Команды модема и как их использовать

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

Code:
AT+ZOPERTE="beeline"\r\n
AT+ZOPRT=5\r\n
AT+ZOPERTE="beeline"\r\n
AT+ZSTART\r\n
AT+CPBS="SM"\r\n
AT+CPMS="SM","SM",""\r\n

+ZOPRT=5 включает приёмопередатчик модема. Приёмопередатчик всключается около 5 секунд, ещё около 5-10 происходит поиск сети. +ZSTART -- включает некий таймер. Две последние команды указывают, где хранятся SMS сообщения (без этих команд модем раз в секунду пишет сообщение +ZUSIMR: 2). После этого раз в минуту в модем надо посылать первую команду. Для того, чтобы автоматизировать этот процесс, можно использовать эту утилиту (Программу следует собирать с ключём -lusb, и перед этим следует установить библиотеку libusb), либо же залить другую прошивку, после которой "залочка" пропадает.

Чтобы остановить модем, следует отправить следующие команды:

Code:
AT+ZSTOPT\r\n
AT+ZOPRT=6\r\n

Первая команда останавливает загадочный таймер, вторая выключает приёмопередатчик.

Чтобы узнать баланс, следует отправить команду
AT+CUSD=1,*102#,15\r\n
где *102# - это та команда, с помощью которой можно узнать баланс, набрав её на обычном сотовом телефоне и нажав кнопку вызова. Номер разный для каждого оператора связи. В ответ модем присылает ответ сети в виде текстовой строки, в которой записаны hex значения(sic!) строки сообщения в кодировке UCS-2BE. Если модем не подключён к интернету, то ответ будет передан через третий интерфейс, если модем подключен к интернету, то через первый. Ниже приведён пример программы на языке Python, которая позволяет узнать баланс; Предполагается, что драйвер option создал устройство /dev/ttyUSB1.

В некоторых случаях, при подключении к /dev/ttyUSB1 и /dev/ttyUSB0 модем просто виснет, даже при отключенном, и не разу не подключенном интернете после его подключения к USB входу. В этих случаях, подключение к /dev/ttyUSB2, как ни странно, решает проблему.

Code:
#!/usr/bin/python
#coding: utf8
import time, io, tty

def decodeUcs(s1):
  s2 = '"'
  for i in xrange(0, len(s1)-1, 2): 
    s2+='\\x'+s1[i:i+2]
  return eval(s2+'"').decode('utf_16_be')

def writeToPort(s1):
  f.write('\n'+s1+'\r\n')
  f.flush()
  time.sleep(0.1)

f = io.open('/dev/ttyUSB1', 'w+b', 0)
tty.setraw(f)
writeToPort('AT+CPBS="SM"')
writeToPort('AT+CPMS="SM","SM",""')
writeToPort('AT+ZSNT=0,0,2')
writeToPort('AT+CUSD=1,*102#,15')

print 'Waiting answer...'
for ln in f:
  if ln[:5]=='+CUSD':
    print decodeUcs(ln[ln.find('"')+1:ln.rfind('"')])
    break

f.close()

[править] Изменения для версии "Beeline Интернет Дома" B09.

Изменения для новой версии софта RUBLPCMANAGERV1.0.0B09 и прошивки BD_BLNP673M3V1.0.1B02 соответственно.

В новой версии программы команды чуть другие и простым AT+ZOPERTE="beeline" не обойтись.

Code:
OUT: AT+CPBS="SM"\r\n
OUT: AT+CPMS="SM","SM",""\r\n
OUT: AT+ZOPRT=6\r\n
 ^^^^^ остановка цикла
OUT: AT+ZOPRT=5\r\n
 ^^^^^ запуск нового цикла
OUT: AT+ZSTART\r\n
 ^^^^^ судя по всему уже не обязателен
IN:  +ZOPERTER: 0,XXXXXXXXXXXXXXXX\r\n
 ^^^^^ запрос от модема. на этот запрос и нужно отвечать
OUT: AT+ZOPERTE=1,YYYYYYYY\r\n
 ^^^^^ а это наш ответ
IN:  +ZOPERTE: 1,1
 ^^^^^ а это модем сказал что мы угадали 
       (или 1,0 если не угадали. в этом случае модем краснеет 
        и перестает работать до следующего перезапуска цикла)
IN:  +ZOPERTER: 1,XXXXXXXXXXXXXXXX\r\n
 ^^^^^ через ~2-3 минуты модем снова задает вопрос

Если правильно и быстро (на это есть около 20 секунд) отвечать на все +ZOPERTER: то модем исправно работает, если не отвечать вообще, то модем работает около 3х минут, задает второй вопрос(первый он задает сразу при запуске цикла), ждет 20 секунд ответа, а потом краснеет, рвет соединение и все. А вот теперь самое главное: алгоритм по которому вычисляется это самое YYYYYYYY. Алгоритм есть. Неделя истязаний дизассемблером нового exe'шника от Beeline принесла свои плоды. Код пока очень сырой, т.к. является прямым преобразованием из ASM в C++ (чуть более 1000 строк) :) так что как доведу до ума, куда-нить выложу. Пока модем пашет уже около часа и все ОК. Если есть пожелания пишите на alex@unnamed.tomsk.ru. Утилита для работы под Linux выложена здесь http://www.altcomtsk.info/index.php?option=com_content&view=article&id=46&Itemid=44.

На заметку: Теперь модем с этой версией прошивки возможно перепрошить, после чего он работает без посылки этих команд

[править] Настройка демона

Чтобы подключаться к интернету (особенно на ноутбуке), следует использовать такие программы как NetworkManager, или Wicd. Но иногда (особенно если Вы используете модем на домашнем компьютере) лучше использовать специфические для дистрибутива способы настройки сети. В Gentoo следует использовать стандартные возможности openrc.

Сперва создайте символьную ссылку /etc/init.d/net.ppp0 на /etc/init.d/net.lo. После этого нужно настроить сервис:

Файл: /etc/conf.d/net
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'
        '' 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
        '~--' ''
"

Чтобы автоматизировать действия по управлению модемом без перепрошивки, можно сделать свой стартовый скрипт.

Code: /etc/init.d/beeline
#!/sbin/runscript

start()
{
    ebegin "Connecting to Beeline - home Internet"
        ebegin "Starting mf626-helper"
        start-stop-daemon -b -m -p /var/run/beeline -S /usr/local/bin/mf626-helper
        eend $?

        sleep 10
        ebegin "Starting ppp0"
        /etc/init.d/net.ppp0 start
        eend $?

        ebegin "Starting ntp"
        /etc/init.d/ntp-client start
        eend $?
    eend 0
}

stop()
{
    ebegin "Disconnecting from Beeline - home Internet"
        ebegin "Stopping ntp"
        /etc/init.d/ntp-client stop
        eend $?

        ebegin "Stoppingg ppp0"
        /etc/init.d/net.ppp0 stop
        eend $?

        ebegin "Stopping mf626-helper"
        start-stop-daemon -p /var/run/beeline -K /usr/local/bin/mf626-helper
        eend $?
    eend 0
}

Где mf626-helper программа, ссылка на которую уже была выше [1]. При подключении модема, его нужно инициализировать (послать команды, которые уже были перечислены выше), иначе он может отключиться приблизительно через 6 минут.

[править] Полезные советы

  • Если модем отключён от интернета, то команды можно посылать и принимать ответ через /dev/ttyUSB0 например так
Code:
# echo -e "AT+CFUN=1\r\n" > /dev/ttyUSB0
# echo -e "AT+ZOPERTE=\"beeline\"\r\n" >/dev/ttyUSB0
# cat /dev/ttyUSB0
  • Если 3G сеть работает в том месте где Вы находитесь, но модем не подключается к ней (индикатор светится синим цветом, а не зелёным), то можно принудительно заставить модем подключаться к 3G сети, а не к GSM. Для этого отправьте команду
    AT+ZSNT=2,0,0\r\n
    Чтобы включить автоматический выбор сети с приоритетом 3G отправьте команду
    AT+ZSNT=0,0,2\r\n
    больше команд можно найти по ссылке внизу.
  • Модем может зависать при использовании некоторых ядер и драйвера usbserial. В исходном обсуждении на gentoo.ru есть некоторые предложения как этого избежать. Также там можно узнать что данное устройство хорошо поддерживается драйвером HSO.
  • В случае зависания модема с драйвером usbserial и beeline_script есть альтернативное решение - запускать скрипт, отправляющий команду "AT+ZOPERTE..." с помощью cron. Подробности на форуме: UnBeeline.c, Автоматизания с помощью cron.
  • На большинстве модемов наблюдается жесткий перегрев и перезагрузка после удаления флагов.....(M02)
  • У некоторых (возможно, всех) модемов имеется конструктивная особенность: из-за непродуманного размещения надписей на одной из плат модема (верхняя, где контакты для симкарты) существует вероятность замыкания между заземляющими экранами нижней платы и одной из дорожек на верхней (надпись выполнена в виде отсутствия защитного лака). Проявляется как неожиданная "смерть" модема, полная невозможность его определения в ОС. Лечится заклеиванием надписи куском скотча.
  • Иногда возможна проблема, заключающаяся в том, что файл начинает загружаться (или страница открываться), потом всё останавливаетя. После повторного запроса снова начинается скачивание, потом останавливается. Возможная причина - неверные значения MTU и MRU (maximum transmit unit, maximum receive unit). Это максимальный объём пакета, на который будет делиться трафик. Возможно, в настройках провайдера установлено меньшее значение, чем в системе, тогда пакеты начинаются теряться. Узнать текущую величину MTU и MRU можно с помощью команды ifconfig - для требуемого устройства, применительно к модему это будет ppp0. По умолчанию устанавливается 1500 байт. Как узнать требуемое значение MTU/MRU? Это можно сделать с помощью ping:
Code:
 ping ru.gentoo-wiki.com -s 1500
Последний параметр - объём запросного пакета. Если вызвать эту команду при возникновении описанного пакета, ping будет отвечать, что принятый пакет не соответствует отправленному. У меня это возникло при подключении к сети 3G Megafon, начиная с байта 1436 возвращались неверные данные. Вывод - объём пакета не следует делать больше 1435 байт. Установить значение MTU/MRU можно среди параметров pppd: mtu 1400, mru 1500. (Сообщение на форуме)

[править] Ссылки

Источник — «http://ru.gentoo-wiki.com/wiki/MF626»
поддержка по wiki