Роутер dir 320 прошивка для модема

История эта началась примерно неделю назад со звонка автоинформатора Skylink, металлическим женским голосом сообщившего мне, что с 1 мая компания начинает ремонт оборудования и шёл бы я лучше в Tele 2. Ни много, ни мало — это означало, что к летнему сезону я рискую остаться без интернета на даче.

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

В качестве новой «жертвы» был выбран МТС, а в качестве «устройства связи» — комплект «МТС-Коннект» за 1200 рублей, содержавший внутри USB-модем МТС 827F и sim-карту. Для получения полноценного WiFi «свисток» было решено воткнуть в роутер D-Link DIR-320NRU, на место столь «скоропостижно скончавшегося скайлинковского».

4g-модем МТС 827FРоутер D-Link DIR 320NRU

Вчера, когда модем был приобретен, история получила продолжение, а когда симка была вставлена в модем и модем воткнут в роутер, — достигла своей кульминации: ничего не работало!

Проблема и её решение

Итак, возникшая проблема в двух словах сводилась к следующей: «подружить» роутер DIR-320NRU и 4G-модем МТС 827F. Для её решения были перелопачены пара десятков страниц в интернете, пока наконец-то не было найдено следующее решение.

Решение в двух словах

Сделаем из D-Linkа Zyxel. Точнее: установим прошивку от Zyxel на D-Link.

Необходимое оборудование

  • Роутер D-Link DIR-320NRU
  • 4G-модем МТС 827F
  • Компьютер или ноутбук
  • Кабель Ethernet RJ-45

Необходимые файлы

  • Прошивка для DIR-320NRU версии 1.2.94 (самая ранняя)
    http://ftp.dlink.ru/pub/Router/DIR-320_NRU/Firmware/Old/DIR_320NRU-1.2.94-20110803.bin
  • Прошивка для Zyxel Keenetic 4G II версии 2.04[AAKW.7]C5
    http://zyxel.ru/sites/default/download/Keenetic_4G_II/firmware/KEENETIC_4G_II_2.04%5BAAKW.7%5DC5.zip

После загрузки, распаковываем zip-архивы и складываем всё в одну папку, чтобы потом не запутаться.

Порядок перепрошивки

1. Включаем роутер и делаем ему Reset, нажав на потайную кнопку в его торце скрепкой или острым карандашом.
2. Задаем сетевой карте ноутбука IP=192.168.0.2 MASK=255.255.255.0 GW=192.168.0.1
3. Соединяем кабелем ноутбук и один из четырех портов роутера.
4. Заходим на веб-интерфейс роутера: http://192.168.0.1 (логин=admin, пароль=admin).
5. В меню ищем обновление прошивки, закачиваем прошивку от D-LINK версии 1.2.94.
6. После перепрошивки проверяем версию, опять зайдя на веб-интерфейс роутера: http://192.168.0.1
7. Выключаем роутер, выдернув из него шнур питания.
8. Нажимаем на потайную кнопку Reset скрепкой и, продолжая держать её, включаем роутер, вставив шнур питания обратно.
9. Продолжая держать Reset, ждём пока роутер загрузится секунд 10, затем отпускаем кнопку.
10. Заходим по адресу http://192.168.0.1, вместо веб-интерфейса там будет только кнопка «Обзор», «Upload» и пара предложений на английском.
11. Жмём на «Обзор», выбираем файл с прошивкой Zyxel, жмём на «Upload».
12. Ждём окончания загрузки, а потом и окончания перепрошивки — после завершения процесса должен немигая гореть индикатор питания.
13. Задаем сетевой карте ноутбука автоматическое получение IP-адреса.
14. Заходим на веб-интерфейс роутера: http://192.168.1.1 (логин=admin, пароль=1234).
15. Вставляем USB-модем в роутер, настраиваем параметры сети, wifi и т.п.

ИНСТРУКЦИЯ

Как использовать роутер Dlink DIR-320 в качестве клиента шаринга

Роутер представляет отличную возможность поднять MPCS, сервер FTP, качать торренты и т.д. и т.п.

Добавлям COM-порт

1. Перво-наперво, вскрываем роутер, необходимо найти отладочную консоль роутера. Отладочная консоль роутера изображена на рисунке(рис.1)

Изображение

Консоль выглядит как ряд из 4-х контактов. Расположены они возле передней панели и отмечены на рис.1.

2. Собираем схему, предоставленную на (рис.2.1-2.6) по возможности какую хотите .

Рис 2.1

Изображение

Рис 2.2

Изображение

Рис 2.3

Изображение

Рис 2.4

Изображение

Рис 2.5

Изображение

Рис 2.6

Изображение

Рис.2. ВНИМАНИЕ для Openbox X820 пришлось перекинуть провода 2 и 3 внутри роутера не меняя кабель на прямой, чтобы иметь возможность подключать ресивер к ПК.

Для этого Вам понадобиться:

Одна микросхема К561ЛН2 (или иностранная SN74HC14N по схеме)

Разъем COM-male (т.е. папа).

Припаиваем провода от схемы к следующим контактам консоли — GND, VCC(3,3V), Tx, Rx.

Распайка контактов нуль-модемного кабеля

2 — RxD — 3

3 — TxD — 2

5 — GND – 5

4. Все собрали, припаяли теперь нужно залить прошивку и настроить MPCS

Прошивка c MPCS и поддержкой USB модемов из командной строки при помощи скрипта. Консоль отключена.

Внутри прошивки все модули для модемов и скрипт usbmodem.sh Перед запуском скрипта устанавливаем тип модема и дополнительные параметры:

1 nvram set modem= может принимать значения gprs, cdma, dialup, ipw — этот параметр зависит от того, какой у вас модем;

2 nvram set apn= точка доступа для gprs и ipw модемов, например internet.mts.ru;

3 nvram set dialnumber= номер набора для gprs и dialup модемов например *99#;

4 nvram set dialinit= строка инициализации dialup модема;

5 nvram set username= имя пользователя;

6 nvram set ipwpin= пин код ipw модема;

7 nvram set ipwclpin= пин код ipw модема;

8 nvram set ipwmode= режим ipw модема.

9 nvram set maxpacketsize= максимальный размер пакета модема;

10 nvram set vid= индентификатор модема;

11 nvram set pid= индентификатор модема.

Для всех модемов обязательно указываем параметр № 1.

Для GPRS модемов дополнительно параметры № 2 №3.

Для CDMA UMTS модемов только параметр № 1.

Для dialup модемов дополнительно параметры № 3 №4.

Параметры № 10 и № 11 необходимо указывать ТОЛЬКО если ваше устройство не опозналось драйвером и в логе нет строки /dev/ttyUSB0 или /dev/ttyACM0.

В настройках подключения переводим роутер в режим Automatic IP.

И запускаем скрипт просто введя в командной строке usbmodem.sh (Скрипт хранится в /usr/sbin).

mpcs находится в папке /usr/sbin роутера и запускается даже без указания каталога и прав на запуск.

Заодно и новая иструкция запуска mpcs с подключением как по USB так и по COM порту на роутере для любых операционных систем без использовани FTP сервера:

Проводно или беспроводно соединяемся с роутером.

Заходим в командную строку роутера:

В Windows: ПУСК->Выполнить->cmd и в командной строке вводим

telnet 192.168.1.1

В linux: запускаем терминал и и в командной строке вводим

telnet 192.168.1.1

Пароль и логин роутера по умолчанию: admin

Оставляем открытым окно командной строки роутера

Зайдя на роутер, первым делом создаем конфигурационные файлы mpcs во встроенном редакторе роутера vi

Для этого открываем конфигурациооные файлы mpcs, заранее подготовленные для роутера, в любом текстовом редакторе компьютера.

Приведу пример для файла mpcs.conf.

Содержимое файла mpcs.conf целиком выделяем и копируем в буфер в текстового редактора компьютера.

В открытой нами командной строке роутера вводим

vi

Откроется текстовый редактор роутера, нажав кнопку i переводим редактор vi в режим ввода текста.

Вставляем содержимое буфера текста(правой кнопкой мыши) в вернем левом углу редактора vi.

Нажав кнопку Esc переводим редактор vi в коммандный режим.

Сохраняем файл mpcs.conf в папке введя команду

:w /tmp/local/mpcs.conf

Выход из редактора vi командой

:q

Таким же образом создаем в папке /tmp/local роутера остальные конфигурационные файлы(не забывая изменять имя файла при сохранении)

Для тюнеров, подключенных через USB-COM переходник

вводим в командной строке роутера команды для создания скрипта автозапуска mpcs:

mkdir /usr/local/sbin

echo «#!/bin/sh» > /usr/local/sbin/post-boot

echo «insmod usbserial.o» >> /usr/local/sbin/post-boot

echo «insmod pl2303.o» >> /usr/local/sbin/post-boot

echo «insmod ftdi_sio.o» >> /usr/local/sbin/post-boot

echo «mknod /dev/ttyUSB0 c 188 0» >> /usr/local/sbin/post-boot

echo «chmod 666 /dev/ttyUSB0» >> /usr/local/sbin/post-boot

echo «mpcs -c /tmp/local &» >> /usr/local/sbin/post-boot

chmod +x /usr/local/sbin/post-boot

echo «/usr/local/sbin/post-boot» > /usr/local/.files

flashfs enable

flashfs save

flashfs commit

reboot

Для тюнеров, подключенных к COM порту роутера напрямую

вводим в командной строке роутера команды для создания скрипта автозапуска mpcs:

mkdir /usr/local/sbin

echo «#!/bin/sh» > /usr/local/sbin/post-boot

echo «mpcs -c /tmp/local &» >> /usr/local/sbin/post-boot

chmod +x /usr/local/sbin/post-boot

echo «/usr/local/sbin/post-boot» > /usr/local/.files

flashfs enable

flashfs save

flashfs commit

reboot

Для Dlink DIR-320 берем прошивку WL500gPV2 со встроеной уже мпцс http://depositfiles.com/files/7ucy8nao4

DIR-320 Router Firware Updater (загрузчик) и прошива Dir-320_Open_Wert 3G_usb_modemswitch_mpcs_DANtes_2.4.trx в одном архиве http://depositfiles.com/files/yn5akkioh

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

mkdir /tmp/local/opt

mount /tmp/local/opt /opt

cd /opt

tftp -g -l mpcs.conf 192.168.1.2

tftp -g -l mpcs.server 192.168.1.2

tftp -g -l mpcs.user 192.168.1.2

tftp -g -l mpcs 192.168.1.2

mkdir /usr/local/sbin

echo «#!/bin/sh» > /usr/local/sbin/post-boot

echo «mount /tmp/local/opt /opt» >> /usr/local/sbin/post-boot

echo «mkdir /var/tmp/mycfg» >> /usr/local/sbin/post-boot

echo «mkdir /var/tmp/mycfg/etc» >> /usr/local/sbin/post-boot

echo «cp /opt/mpcs.conf /var/tmp/mycfg/etc» >> /usr/local/sbin/post-boot

echo «cp /opt/mpcs.user /var/tmp/mycfg/etc» >> /usr/local/sbin/post-boot

echo «cp /opt/mpcs.server /var/tmp/mycfg/etc» >> /usr/local/sbin/post-boot

echo «cp /opt/mpcs /var/tmp/mycfg» >> /usr/local/sbin/post-boot

echo «chmod +x /var/tmp/mycfg/mpcs» >> /usr/local/sbin/post-boot

echo » /var/tmp/mycfg/mpcs &» >> /usr/local/sbin/post-boot

chmod +x /usr/local/sbin/post-boot

echo «/usr/local/sbin/post-boot» > /usr/local/.files

flashfs save

flashfs commit

flashfs enable

reboot

необходимо, чтобы IP адрес компа в этот момент был 192.168.1.2

И еще момент. Что значит зайти по телнету? Выходов, как всегда, несколько.

1-скачать программу puttytel http://depositfiles.com/files/ctaohgc3zНаходясь в категории Category и в элементе Session установить в поле Host Name (or IP adress) IP адрес роутера 192.168.1.1 (по умолчанию). Нажать Open. Откроется окно телнета. Введете имя (admin) и пароль (admin). Появиться строка [admin@(none) root]$. Далее копируем (Ctrl+C) и вставляем (правая кнопка мыши) в командную строку строки приведенные выше.

Изображение

Рис.3. Окно программы Puttytel.

2- использовать CMD (командная консоль) от Microsoft. Для этого: Пуск -> Выполнить -> cmd -> Ок. В командной строке вводим: telnet 192.168.1.1 Появяться строки приглашающие ввести login: и password: Есть минус этого способа – прийдеться все команды набирать в ручную. Возможны ошибки и как следствие, ничего не фурычит!

5. Важно! При выполнении этого пункта, вся аппаратура должна быть выключена.

Подключаем, нуль-модемным кабелем роутер к ресиверу, в роутер в гнездо WAN втыкаем LAN-кабель по которому бежит Инет. И последовательно все включаем — ресивер в последнюю очередь.

И все!

Тестируем COM-порт роутера

Возможен случай, что Вы все сделали как изложено в инструкции, но о беда – ни чего не работает! Не отчаивайтесь, где-то Вы допустили досадную ошибку и все еще поправимо. Тем более, после теста COM, Вы точно будете знать, что проблема не в нем и сузите поиск.

Лог mpcs и то самое «ни чего не работает»:

1970/01/01 3:01:12 142 s >> STREAMBOARD << mp-cardserver started

1970/01/01 3:01:12 142 s userdb reloaded: 0 accounts freed, 1 accounts loaded

1970/01/01 3:01:12 142 s signal handling initialized (type=sysv)

1970/01/01 3:01:12 142 s can’t open file «/var/tmp/mycfg/etc/mpcs.srvid» (err=2), no service-id’s loaded

1970/01/01 3:01:12 142 s monitor: disabled

1970/01/01 3:01:12 142 s camd 3.3x: disabled

1970/01/01 3:01:12 142 s camd 3.5x: disabled

1970/01/01 3:01:12 142 s cs378x: disabled

1970/01/01 3:01:12 142 s newcamd: disabled

1970/01/01 3:01:12 142 s radegast: disabled

1970/01/01 3:01:12 142 s logger started (pid=143)

1970/01/01 3:01:12 142 s resolver started (pid=144, delay=30 sec)

1970/01/01 3:01:12 142 s proxy started (pid=145, server=*************)

1970/01/01 3:01:12 142 s anti cascading disabled

1970/01/01 3:01:12 142 s serial: initialized (pid=146, ********)

1970/01/01 3:01:12 145 p02 proxy ************:******* newcamd525 (fd=5)

1970/01/01 3:01:14 146 c01 too many errors, reiniting…

1970/01/01 3:01:16 146 c01 too many errors, reiniting…

1970/01/01 3:01:57 146 c01 too many errors, reiniting…

Проверить, работает ли собранный Вами СОМ или нет можно следующим образом.

Подключаем нуль-модемный кабель от роутера к компу, к примеру к СОМ1. Запускаем обычный виндозный HyperTerminal. Изображен на картинке:

Изображение

Выставляем скорость(* порта СОМ1 для начала 115200. Остальные настройки соединения, как то, четность, биты данных и т.д. — менять не нужно. В оконце HyperTerminalа должны увидеть кракозябры, которые шлет mpsc. Не увидели? Тогда заходим в роутер по телнету. Убиваем процесс mpcs. Вводим:

echo «1234567» > /dev/tts/1

в окне Терминала должно отобразиться 1234567. Слово в кавычках может быть любым, например: «Hello».

Установить скорость порта можно и вручную (и даже нужно, при снятом процессе mpcs, тогда и гадать со скоростью порта не надо):

stty 115200 < /dev/tts/1

или

stty -F /dev/tts/1 speed 115200

В обоих командах, вместо 115200 может быть любое значение, свойственное скорости порта. Например: 9600, 19200, 38400 и т.д.

При отладке.

Посмотреть сколько байтов набежало:

more /proc/tts/device/serial

При этом увидите следующее:

serinfo:1.0 driver:5.05c revision:2001-07-08

0: uart:16550A port:B8000300 irq:3 baud:114583 tx:708 rx:0 RTS|DTR

1: uart:16550A port:B8000400 irq:3 baud:9593 tx:789 rx:1836 RTS|CTS|DTR|DSR|CD

Красным отмечено устройство /dev/tts/1. По значениям tx и rx (о них немного ниже), можно узнать сколько байт принято/передано через COM.

Открыть устройство /dev/tts/1, как файл и посмотреть состояние регистров:

stty -a < /dev/tts/1

Посмотреть, инфу о компорте:

ls -l /dev/tts/1

ls -l /dev/tts/0

Здесь, l – это латинская буква «эль».

Если запросы (или эхо) от роутера не идут, то наверняка что-то не так ввели/собрали. До тривиального – не качественная пайка и в результате отсутствие питания в цепи. Одной из проблем может быть и неправильное подключение контактов Rx, Tx друг с другом. Открою Вам один секрет (да, и не секрет он вовсе). RxD – это remote data или принимаемые данные компортом; TxD – это transmission data или отправляемые данные от порта. Следовательно, при соединении двух устройств между собой, они всегда подключаются друг к другу, таким образом: RxD первого устройства – TxD соответственно, второго. Если же их соединить так RxD – RxD или TxD – TxD, то работать «ни чего не будет».

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

И еще, как вариант – слишком длинный кабель или помехи. И еще … да, что угодно! Это предстоит выяснить Вам.

возможно со скоростью порта прийдется поиграть в перебор.

Просмотр лога работы mpcs

Во-первых, необходимо использовать вот такой файл конфигурации mpcs.conf с выводом на экран в нужный момент:

[global]

ClientMaxIdle = 20

Nice = -1

#LogFile = log

#LogFile = /dev/tty

ClientTimeout = 5

LogFile = stdout

[serial]

Device =

gi://tuner@/dev/tts/1?delay=1&timeout=300

И во-вторых, собственно как смотреть лог:

1. Ну естественно установить mpcs в роутер;

2. Зайти в роутер по телнету;

3. Посмотреть список запущенных процессов командой top и узнать номер первого из процессов mpcs потом выйти в командную строку по Ctrt+C;

4. Убить процесс mpcs запущенный в фоновом режиме дав команду kill номер первого процесса mpcs

5. Запускаем mpcs в реальном режиме командой /var/tmp/mycfg/mpcs смотрим лог потом выходим по Ctrt+C;

6. Запускаем mpcs в фоновом режиме командой /var/tmp/mycfg/mpcs &

Также лог можно посмотреть с помощью программы MONITOR

Это новая прошивка DIR-320_OpenWrt_3g_usb-modeswitch_mpcs_DANtes_2.5.1

Размер файла: 3.24 MBhttp://depositfiles.com/ru/files/e7t0oc30y?redirectDIR-320_OpenWrt_3g_usb-modesw… .zip

Прога для прошивки DIR_320 — Flecher.zip Размер файла: 224.55 KB http://depositfiles.com/ru/files/woegmjin2?redirect

Всё одним файлом http://depositfiles.com/ru/files/h5bcuk7mc?redirect DIR-320.zip Размер файла: 21.96 MB

_________________
DSL-2600U.DIR-320.DWA-110.DM-800.Tuхbох TХ980L HD PVR,HDD HitachiHTS-160gb,Домика 4.0_OE-1.5.DM-500.PROF-7300.OPENBOX-820

13-36-56-75-80e

Как подружить Yota LTE и D-Link DIR 320?Добрался прогресс и до нашего славного города Уфа. С 29 июля 2012 года Yota перешла на технологию LTE, что по идее, должно улучшить и сделать более удобной работу пользователей.

Не обошлось, конечно же и без накладок. Многие столкнулись с проблемой, что новый модем Yota не определяется в системе. А  те, кто пользовался Yota через Wi-Fi маршрутизаторы 100% должны были перепрошить свои устройства, чтобы они заработали с новыми модемами. Проблема может возникнуть с маршрутизаторами D-Link DIR 320, т.к. официальной прошивки для LTE устройств для них пока не вышло.

Подключение LTE модема Yota в системе Windows

Если вы подключаете модем Yota напрямую к своему компьютеру через USB порт, то вам нужно обновить версию ПО Yota Access. Удаляете старую версию, ставите новую. Все, Yota заработала!

Никаких драйверов устанавливать не требуется. В случае с Windows XP SP2 надо дополнительно скачать и установить ActiveSync 4.5 с сайта Microsoft.

Yota LTE модем и Wi-Fi роутеры

Некоторые производители Wi-Fi оборудования оперативно выпустили новые прошивки обеспечив поддержку современных LTE сетей. Скачать новые прошивки можно по следующим ссылкам:

  • Drytek Vigor Fly 200 —  Скачать 
  • ZyXEL Keenetic — Скачать
  • ZyXEL Keenetic 4G — Скачать

Обновление программного обеспечения данных устройств происходит через их веб-интерфейс. Никаких сложностей обычно с этим не возникает, если вы имеете хотя бы базовые знания работы с ПК. Скачиваете файл прошивки, заходите в меню устройства, в разделе «обновление ПО» указываете файл с прошивкой (firmware) и все, через несколько минут роутер перепрошит и готов трудится дальше.

Как подружить Yota LTE и D-Link DIR 320?

Официальной прошивки для DIR 320 под LTE нет, поэтому будем прошивать неофициальной, спасибо энтузиастам с сайта Vampik.

Поддерживаются ТОЛЬКО устройства с ревизией ver. Ax. Определить какая у вас версия можно посмотрев наклейку на нижней стороне роутера.

Как подружить Yota LTE и D-Link DIR 320?

Изображение с сайта Vampik.ru

В моем случае прошивался роутер с ревизией A2.

Скачиваем прошивку по этой ссылке. Вот прямая ссылка на файл, который шил я.

Итак, для прошивки понадобится:

  • Wi-Fi роутер DIR 320
  • Патчкорд
  • Компьютер

Далее, я описываю действия, которые были предприняты мною для прошивки

1. Создаем на диске С папку, например DIR и сохраняем туда прошивку.

2. Переименовываем ее в firmware.bin (для того, чтобы переименовать расширение файла, включите его отображение в свойствах файла)

3. Вставляем в 1 LAN порт маршрутизатора патчкорд и соединяем его с ПК.

4. В свойствах сетевого подключения вручную назначаем IP адрес — 192.168.0.10 и маска подсети 255.255.255.0

5. Создаем в папке DIR текстовый файл следующего содержания:

@Echo Off
:BEGIN
ping -n 1 -w 10 192.168.0.1
If errorlevel 1 Goto BEGIN
If errorlevel 0 Goto FLASH
Goto END
:FLASH
Echo *** Start Flashing ****
tftp -i 192.168.0.1 put c:\DIR\firmware.bin
:END

и переименовываем его в flashing.cmd

6. Открываем командную строку (Пуск — Выполнить -CMD)

набираем то, что выделено жирным cd c:\DIR — это для перехода в папку DIR

7. Нажимаем ENTER и на новой строке набираем команду flashing.cmd, но ENTER пока давить не надо.

8. Отключаем питание маршрутизатора, зажимаем кнопку RESET на нем, снова включаем питание, кнопку RESET при этом, продолжаем держать еще секунд 15. Отпускаем RESET после чего в командной строке жмем ENTER.  Индикатор Lan начнет часто моргать. Это свидетельствует о передаче файла. В случае успешной передачи об этом будет выдано сообщение вроде:

Успешная передача: столько-то байт за 11 сs, 281134 байт/с

9. На этом этапе ничего делать не надо, только ждать. Отключать питание или жать RESET также нельзя, если не хотите превратить свой DIR 320 в кирпич.

10. Минут через 10 заходим в веб-интерфейс роутера по адресу: 192.168.0.1.

Чтобы настроить маршрутизатор на работу через LTE модем надо:

  • Перейти в раздел WAN;
  • WAN Connection Type установить значение Ethernet over USB;
  • Переставить галку Get IP automatically в значение No и записать IP самостоятельно:
  • IP Address: 10.0.0.10
  • Subnet mask: 255.255.255.0
  • Default gateway 10.0.0.1
  • Переставляем галку в разделе Get DNS Server automatically в положение No и вбиваем IP: 10.0.0.1
  • Жмем Apply или Save

Успехов!

dir 320 3g thumb D Link DIR 320 прошивка для 3G модемов ZTE MF180 и Huawei E156GПосле разблокировки 3G-модема ZTE MF180, понадобилось подружить его с роутером D-Link DIR-320. Чтобы раздавать интернет с одного 3G-модема. В стандартной прошивке роутера нет такой возможности, но есть альтернативная прошивка от D-Link для работы с  3G-модемами. С ней мне удалось завести только один из своих модемов — Huawei E156G, а ZTE MF180 ни в какую не захотел работать. Плюс ко всему прошивка оказалась глючная и скромная по функционалу. В поисках нормальной прошивки наткнулся на прошивку Tomato с доработками DANtes.

Перепрошил роутер D-Link DIR-320 за пару минут. Интерфейс порадовал, юзабилити выше среднего, функционал на высоте. Модем ZTE MF180 запустился практически сразу, а вот с Huawei пришлось повозиться. Но уже через пару часов я получил роутер с хорошим функционалом и возможностью подключать к нему 3G-модемы и раздавать с них 3G-интернет по Wi-Fi.

Далее опишу процесс прошивки роутера D-Link DIR-320 и настройки 3G-модемов…

Прошивка роутера

1. Скачать прошивку DANtes (Tomato) и программу для прошивки DIR-320 Router Firmware Updater. Прошивку лучше скачать с оф. сайта, чтобы была последняя версия, а на программу я дам ссылку ниже, либо ищите в гугле.

2. Подключаем роутер к ПК напрямую, либо через коммутатор. Задаем на ПК IP из подсети, в которой находится DIR-320. Например, у роутера 192.168.0.1, то ПК задаем 192.168.0.15. Проверяем связь командой из cmd: ping 192.168.0.1. Если роутер отвечает, то переходим к следующему пункту.

3. Запускаем программу DIR-320 Router Firmware Updater с правами администратора. Жмем кнопку Запустить и выбираем файл с прошивкой DANtes. Перепрошивка длится пару минут. После нужно искать роутер по адресу 192 .168.1.1, т.е. не забываем и на ПК поменять адрес на 192.168.1.15.

clip image002 thumb D Link DIR 320 прошивка для 3G модемов ZTE MF180 и Huawei E156G

4. При первом входе вводим login: admin и password: admin. Пароль необходимо сразу же сменить.

5. Далее делаем стандартный настройки роутера: время, шифрование Wi-Fi, DHCP и т.д.

Если возникли проблемы с прошивкой DIR-320, то решение проблем нужно искать на форуме.

Настройка роутера для 3G-модемов ZTE MF180 и Huawei E156G

1. Переходим в пункт меню роутера USB and NAS. Выставляем галочки как на рисунке. Жмем Save и Reboot.

dir 320 usb support thumb D Link DIR 320 прошивка для 3G модемов ZTE MF180 и Huawei E156G

2. Подключаем модем к роутеру и идем смотреть логи. Нас интересует на какой порт подключился модем и не возникло ли ошибок при подключении. Весь лог смотреть не обязательно, так что выбираем только последние 25 записей (View Last 25 Lines)

dir 320 logs thumb D Link DIR 320 прошивка для 3G модемов ZTE MF180 и Huawei E156G

Из лога видно, что модем успешно подключен

dir 320 logs 2 thumb D Link DIR 320 прошивка для 3G модемов ZTE MF180 и Huawei E156G

3. Переходим в меню Basic – Network и выставляем настройки для нашего модема и оператора.

Параметр Modem Port выставляем один из: ttyUSB0, ttyUSB1, ttyUSB2. ZTE MF180 у меня заработал на ttyUSB2, а Huawei E156G на ttyUSB0. Подбираем методом тыка, если в логах не указан конкретный порт.

User Modem VendorID: задаем 211f, если модем не определился автоматически и не отобразился в меню USB and NAS.

APN для Мегафон: internet, а username и password пустые.

Еще я уменьшил MTU со стандартных 1492 до 1400, т.к. на одном модеме интернет из-за этого не работал. Если заработало со стандартным значением, то менять не нужно.

Жмем Save и Reboot.

dir 320 network thumb D Link DIR 320 прошивка для 3G модемов ZTE MF180 и Huawei E156G

После перезагрузки роутера сразу же должно установиться соединение с интернетом через 3G-модем. Если нет соединения, то можно попробовать запустить его вручную в меню Status – Overview, кнопка Connect. В противном случаем начинаем подбирать настройки для своего 3G-модема.

За пару часов экспериментов мне удалось настроить оба модема для работы с роутером D-Link DIR-320 с прошивкой DANtes (tomato).

Полезные ссылки

Есть много инструкций, советов и решений проблем на форуме Sat-forum.su. Только нужно умело использовать поиск.

Скачать прошивку DANtes ТУТ, либо прямо с блога с программой DIR-320 Router Firmware Updater.

Время на прочтение
10 мин

Количество просмотров 120K

Я более чем уверен, что многие уже не один раз видели подобные заголовки. Но каждый раз, когда их читаешь, получается, что нужно купить какой-то самый в мире проверенный модем, да к тому же удача должна быть к тебе благосклонна. А ведь самая распространённая проблема заключается в том, что нет такого модема, который бы не зависал по истечению определенного времени. Самый длинный интервал, что я видел – это 8 (восемь) часов. Как следствие, многие отказываются от подобной задумки и опускают руки, а в случае если без роутера никак, то приспосабливают для этих целей старенький ПК, да еще и устанавливают Windows (как правило, XP, ну или что будет под рукой).
Так как ПК и уж тем более Windows, для меня не вариант и «того самого» модема у меня не было под руками, пришлось искать решение.
Если интересно продолжение, прошу под «кат».

Введение

Как, наверное, многим стало понятно из предисловия, передо мной стояла задача сделать небольшой и очень стабильный 3G роутер.
Что для этого потребовалось:

  • Роутер DIR-320 (был в наличии)
  • 3G модем
  • Внешняя антенна

Исследования и постановка целей

Итак, прежде чем делать что-то самому, я начал с того, что проанализировал многочисленные форумы и сообщества. На каждом форуме были ветки с описание тех самых чудо модемов и бесконечного ряда, связанных с ними проблем. Одни были мега стабильными, но с неприемлемо низкой скоростью, другие радовали производительностью, но уже через 30 минут «зависали» намертво. Все это очень сильно огорчало.

Прежде чем идти в «закрома родины» за стареньким ПК, я решил проанализировать имеющиеся факты и самостоятельно исследовать проблему.

Для первичных экспериментов я решил воспользоваться стационарным ПК с Linux. Настроив 3G соединение, посредством имеющегося в наличии Huawei E173, запустил вызов команды ping + wget с интервалом раз в 10 минут. Соединение продержалось около 4 (четырёх) часов, после чего модем перестал отвечать на PPP команды, AT при этом работали. Такой же эксперимент я провел и с AnyDATA ADU-500A (это модем из списка «тех самых»). Как ни странно, закончилось все тем же, только через 5 часов.
Всякие попытки оживить, не приносили долгожданного результата, только полное обесточивание спасало ситуацию.
В очередной раз я решил перезагрузить модем и тут меня осенило, а почему бы просто не потушить USB порт. Сказано-сделано:

  1. Находим модем из списка всех USB устройств:
    for f in `ls /sys/bus/usb/devices/*/product`; do echo -e "$f\t`cat $f`"; done
    

  2. Выключаем порт на 5 секунд и затем включаем:
    echo “suspend” | sudo tee /sys/bus/usb/devices/1-1/power/level
    sleep 5
    echo "on" | sudo tee /sys/bus/usb/devices/1-1/power/level
    

Эксперимент показал, что все прекрасно перезагружается. И соединение может быть опять установлено. С этого момента стало предельно ясно, что нужно делать.

Взяв четыре прошивки для роутера: D-Link, Asus, OpenWRT или DD-WRT, начал повторять эксперимент, но вот незадача, на удивление, ни в одной из прошивок не оказалось возможности управления питанием USB. Вначале я подумал, что это проблема ядра 2.4.x. Но и та же проблема и с 2.6. Более того, после перезагрузки роутера модем оставался проинициализированным. Вывод напрашивался сам собой, нужно разбирать роутер.
Внимательный осмотр и «прозвонка» платы показали, что ножка питания «+5В» подключена непосредственно к источнику питания. Это меня не устраивает и нужно делать модернизацию платы и источника питания.

Наступил момент выбора дистрибутива. У этого замечательного роутера очень мало оперативной памяти и не хотелось, чтобы её потребляли ненужные сервисы, будь то httpd, FTP, SAMBA или что еще. Было принято решение построить дистрибутив на базе OpenWRT самостоятельно, при этом с минимумом предустановленных пакетов и сервисов.

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

Просмотрев карту покрытия разных операторов, пришел к выводу, что наиболее подходящим является MTS. Помимо карты покрытия, мне очень понравилось то, что у них можно всю статистику и управление совершить из достаточно удобного WEB интерфейса. Купив их самый лучший модем, с обещанным максимумом в 14,7 Мбит/с и минимум в 3Мбит/с, начал свое приключение.
Возможно, кому-то будет интересно:

  • 3G модем (был куплен MTS WeTelecom WM-D300)
  • Направленная антенна CDMA-450 (неплохая по заверению продавца, какого-то неизвестного производителя)

После покупки начал попытки подключиться к этому модему. И как всегда возник ряд вопросов:

  1. Он настойчиво отображается как CD-ROM
  2. Ни слова в интернете об этом модеме, максимум, что было найдено это упоминание о предыдущей модели (WM-D200)

Анализ dmesg показал, что CD-ROM монтируется как SCSI, это навело на мысль, что его нужно отключать именно как SCSI, никакие usb_modeswitch тут не работают, да собственно и не нужны.
Разумеется, был сразу написан свой софт, который это делал. Но непокидающая мысль, о том, что это кто-то уже писал и скорее всего это уже есть в портах/portage или еще где-то, заставило поискать. Первый же проход по папке с man’ами показал, что есть чудеснейший пакет sdparm. Установив и проверив, стало ясно — это то, что нужно.
Так как теперь все стало на свои места и больше не осталось вопросов, можно приступать к работе.

Сборка OpenWRT

Все шаги выполняются в консоли Linux. Обратите внимание, релиз Backfire выбран из-за того, что это последний релиз с ядром 2.4. Это очень важно, так как ядро 2.6 само по себе очень требовательно как к производительности процессора, так и к системным ресурсам.

  • Скачиваем исходник OpenWRT:
    svn co svn://svn.openwrt.org/openwrt/branches/backfire openwrt-backfire
    
  • Переходим в папку с исходником
    cd openwrt-backfire
    
  • Обновляем все пакеты
    ./scripts/feeds update -a
    
  • Добавляем из пакетов sdparm
    ./scripts/feeds install sdparm
    
  • Открываем меню настройки
    make menuconfig
    
  • Выбираем интересующую платформу
    Target System (Broadcom BCM947xx/953xx [2.4])
    
  • Встраиваем интересующие нас пакеты (по умолчанию они не включены даже как модули)
    <*> sdparm........................ Read or modify SCSI or USB disk parameters
    <*> chat................................. Establish conversation with a modem
    <*> comgt............................... Option/Vodafone 3G/GPRS control tool
    <*> kmod-scsi-generic........................ Kernel support for SCSI generic
    <*> kmod-usb-core............................................ Support for USB
    <*> kmod-usb-ohci............................... Support for OHCI controllers
    <*> kmod-usb-serial..................... Support for USB-to-Serial converters
    <*> kmod-usb-storage..................................... USB Storage support
    <*> kmod-usb2................................... Support for USB2 controllers
    
  • Все остальные пункты оставляем без изменения
  • Выходим из меню конфигуратора с сохранением
  • Собираем инструменты
    make tools/install -j`grep -c processor /proc/cpuinfo`
    make toolchain/install -j`grep -c processor /proc/cpuinfo`
    
  • Открываем меню настройки ядра Linux
    make kernel_menuconfig
    
  • Настраиваем MTD
    [*]     Support 2-chip flash interleave
    
  • Выходим из меню конфигуратора с сохранением
  • Собираем OpenWRT
    make -j`grep -c processor /proc/cpuinfo`
    
  • После того как прошивка собрана, её нужно прошить в устройство. На эту тему есть масса инструкций (например, на сайте DD-WRT)

Проверка прошивки

После того как прошивка была «залита» и роутер перезагрузился, подключите к нему модем и соедините роутер посредством Ethernet с вашим ПК. Настройте на интерфейсе (в моём случае это eth0) вашего ПК IP адрес выполнив команду:

ifconfig eth0 inet 192.168.1.2/24

Далее, подключитесь к роутеру по Telnet. Для этого из консоли выполните следующую команду:

telnet -l root 192.168.1.1

Вход будет совершен автоматически без запроса пароля. Это в корне не верно. Чтобы исправить ситуацию, задайте пароль, выполнив команду в консоли:

passwd

Выполните команду «exit», для выхода из telnet сессии.
Выполните вход по ssh:

ssh root@192.168.1.1

Следующим шагом, удостоверимся, что модем был распознан ядром, выполнив команду в консоли:

grep "^P\:.*22de.*6803" /proc/bus/usb/devices

Результатом выполнения этой команды, будет строка с VID и PID модема. В противном случае, проверьте, что было сделано не по инструкции.

Модернизация аппаратного обеспечения роутера

Для управления питанием USB порта нужна свободная ножка процессора. Но так как это не инженерная плата, а конечный продукт, данный вариант не подходит. По счастливой случайности, у этого роутера масса светодиодных индикаторов на передней панели. Один из них мы вполне можем приспособить под наши нужды. В моем случае выбор пал на индикатор со значком принтера, так как он соответствовал светодиоду USB на proc-fs (/proc/diag/led/usb).

Управление питанием будет осуществлять дополнительная плата с минимально необходимым набором деталей. Вот её схема:

Пара слов о схеме. Оба транзистора работают в качестве ключей. При подаче логической единицы на вход «CTRL», транзистор VT1 откроется, что в свою очередь приведет к открытию транзистора VT2 и питающее напряжение подастся на USB порт. Как таковые, расчеты не производились, поэтому, схема не может считаться оптимальной. Например, транзистор VT1, просто был единственным N-P-N транзистором в поле досягаемости, собственно как и резисторы.

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

Зелёными надписями отмечены одноименные порты на схемы. Резистор R4, припаян непосредственно к ножке светодиода.

Пошаговая инструкция по модификации:

Модернизация программного обеспечения роутера

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

Создание утилит для управления USB

Перейдите в папку /etc/ppp. Многих заинтересует, почему была выбрана именно эта папка в качестве целевой. Ответ прост, так исторически сложилось. Думаю, /usr/local/sbin будет более подходящей, но сути это не меняет

cd /etc/ppp

  • Создайте usb-up.sh. Этот скрипт будет включать питание на USB порте
    $ cat usb-up.sh
    #!/bin/sh
    logger -t "USB PwrCtrl" "Turn-on USB power"
    echo 1 > /proc/diag/led/usb
    
  • Создайте скрипт для перезагрузки USB порта
    $ cat resetusb.sh
    #!/bin/sh
    logger -t "USB PwrCtrl" "Turn-off USB power"
    echo 0 > /proc/diag/led/usb
    # Sleep in 3 sec is an optional, but may be useful for some modem types
    #sleep 3
    logger -t "USB PwrCtrl" "Turn-on USB power"
    echo 1 > /proc/diag/led/usb
    
  • Создайте скрипт для проверки существования процесса pppd
    #!/bin/sh
    if ps | grep -q /usr/sbin/pppd; then
        logger -t "PPP watcher" "PPP alive"
    else
         logger -t "PPP watcher" "No PPP daemon"
         /etc/ppp/resetusb.sh
    fi
    
  • Сделайте скрипты исполняемыми
    chmod  a+x /etc/ppp/*.sh
    
  • Добавим корректную обработку подключения модема к USB. Обратите внимание на то, что в OpenWRT, по умолчанию, нет udev, а вместо этого используется hotplug «демон»
    $ cat /etc/hotplug.d/usb/11-modem
    #!/bin/sh
     
    # Copyright (C) 2013 Sergey Shcherbakov <shchers@gmail.com>
     
    case "$ACTION" in
            add)
                    (grep -q "^P\:.*22de.*6803" /proc/bus/usb/devices) && {
                            logger -t "WM-D300" "Detected ZeroCD of WM-D300 modem"
                            # Checking ZeroCD status
                            while [ "$(sdparm -q --command=ready /dev/scsi/host0/bus0/target0/lun0/generic)" != "Ready" ]; do
                                    logger -t "WM-D300" "ZeroCD yet not ready"
                                    # Workaround for bug with multiple calls of scripts
                                    (/usr/bin/lsusb | grep -q 22de:6801) && {
                                            logger -t "WM-D300" "Seems that script called twice and device already initialized"
                                            return 0
                                    }
                                    sleep 2
                            done
     
                            logger -t "WM-D300" "ZeroCD ready and will be ejected"
                            /usr/bin/sdparm --command=eject /dev/scsi/host0/bus0/target0/lun0/generic
                    }
     
                    (grep -q "^P\:.*22de.*6801" /proc/bus/usb/devices) && [ ! -c /dev/usb/tts/0 ] && {
                            logger -t "WM-D300" "Updating USB Serial driver with D200/D300 vendor and product ID"
                            rmmod usbserial && insmod usbserial vendor=0x22de product=0x6801
                    }
     
                    (grep -q "^P\:.*22de.*6801" /proc/bus/usb/devices) && [ -c /dev/usb/tts/2 ] && ! (ifconfig 3g-wan 1>/dev/null 2>/dev/null) && {
                            logger -t "WM-D300" "All modem interfaces installed, turning on WAN"
                            ifdown wan && ifup wan
                    }
                    ;;
            remove) 
                    ! (grep -q "^P\:.*22de.*6801" /proc/bus/usb/devices) && {
                            logger -t "WM-D300" "Modem disconnected, turning off WAN interface"
                            ifdown wan
                    }
                    ;;
    esac
    

Внесение изменений в существующие скрипты

  • Запретите WAN интерфейс, заданный по умолчанию, выполнив команду
    sed -i 's/interface\ wan$/interface\ wan_dflt/' /etc/config/network
    
  • Добавьте новый описатель WAN интерфейса с настройками для 3G
    $ cat /etc/config/network
    …
    config interface wan
        option ifname  ppp0
        option device  /dev/usb/tts/0
        option service evdo
        option proto  3g
        option username 'mobile'
        option password 'internet'
        option pppd_options 'noipdefault maxfail 3'
        option connect '/etc/ppp/usb-up.sh'
        option disconnect '/etc/ppp/resetusb.sh'
        option keepalive 20
    
  • Для того чтобы добавить автоматическое включение USB порта при инициализации роутера, нужно модифицировать стандартный скрипт /etc/init.d/usb, добавив в конце функции start() вызов скрипта /etc/ppp/usb-up.sh
    $ cat /etc/init.d/usb
    …
    start() {
        ...
        # Turn-on power on USB     
        /etc/ppp/usb-up.sh 
    }
    …
    
  • Дополнительно можно модифицировать, но необязательно, Chat скрипт (/etc/chatscripts/evdo.chat). На самом деле, он должен работать даже без изменений, но я предпочел немного его «причесать». Вот мой вариант:
    ABORT   BUSY
    ABORT   'NO CARRIER'
    ABORT   ERROR
    ABORT   'NO DIAL TONE'
    ABORT   'NO DIALTONE'
    ABORT   'NO ANSWER'
    REPORT  CONNECT
    TIMEOUT 10
    ''              AT
    OK              ATDT#777
    CONNECT ''
    
  • Добавляем в Cron задачу, которая будет проверять наличие процесса pppd каждые пять минут. Для этого следует вызвать команду “crontab -e” и добавить следующую строку:
    */5     *       *       *       *               /etc/ppp/check.sh
    
  • Разрешаем выполнение Cron и запускаем его
    /etc/init.d/cron enable && /etc/init.d/cron start
    
  • Настройку WiFi приводить не буду, так как она достаточно стандартная и прекрасно описана на официальном сайте OpenWRT

На этом все, больше изменений не будет. Я рекомендую перезагрузить роутер, хотя 3G и так должен «ожить» через пять минут.

Вместо эпилога

Домашние испытания продлились 41 день. Как результат, ни единого сбоя на протяжении всего периода. Ожидаемая стабильность достигнута.
Перед отправкой в «поля», были проведены испытания пропускной способности в киевской квартире. Разочарование застигло врасплох, достигнутый максимум не превышал 1Мбит/с, при этом только на больших файлах. Минимальный пинг был а пределах 220мс. Решив не прекращать испытания, поехал за город. Уровень был на максимуме, при этом индикатор CDMA Rev.B уже не горел. На самом деле, я не теплил надежд на 14Мбит/с, но ожидал увидеть, как минимум, уже достигнутый 1Мбит. Но очередное разочарование не заставило себя ждать, достигнутый максимум составлял уже около 350Кбит/с.
На этом, всяческие эксперименты с модемом от MTS были прекращены. Вернуть его так и не удалось. А вот антенну продавец обменял на модель способную работать в связке с модемами Интертелеком и PeopleNET. Чему я был несказанно рад, а модем пускай будет в коллекции, когда-нибудь пригодится.

  • Роутер dir 320 после неудачной прошивки
  • Роутер dir 620 нет интернет
  • Роутер dir 320 подключение модема
  • Роутер dir 300 прошивка dd wrt
  • Роутер dir 300 чтобы поставить пароль