Просто под рукой другого не было (оператор был л на нём Beeline)сразу оговорюсь что модем прошит был австрийской прошивкой Telstra M02 да и отключил авто загрузку на модеме (удалены с модема файлы CDSTART и DOWNLOAD.)(кому надо будет инструкции и ссылы по прошивке этого девайса размещу ниже!)
Ну теперь передём к прошивке и настройке Dlink Dir-320!
И так по порядку:
1. Качаем прошивку.
Код:
На данный момент это версия 1.9.2.7-d-r211
"Прошивка Олега на роутере Dlink DIR-320"
Все прошивают по разному но я делаю так !
Cохраняю файл прошивки его в папке c:bin
Создаем файл flashing.cmd в любом текстовом редакторе и сохраняем этот файл в папку c:bin
Содержимое файла flashing.cmd:
-Echo Off
:BEGIN
ping -n 1 -w 1 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 firmware.bin
:END
Устанавливаем адрес сетевой карты компьютера 192.168.0.2, маска 255.255.255.0, шлюз и DNS прописывать не надо. Подключаем к сетевой карте компьютера сетевой кабель, а второй конец сетевого кабеля вставляем в любой порт LAN роутера, питание роутера не включаем.
Запускаем командную строку ПУСК->Выполнить-> cmd, переходим в папку cd c:bin и запускаем командный файл flashing.cmd
C:bin>flashing.cmd
Нажимаем и удерживаем кнопку Reset нажатой ну например спичкой, включаем питание роутера, и как только замигает индикатор Lan, кнопку Reset отпускаем.
Наблюдаем процесс прошивки
Обмен пакетами с 192.168.0.1 по 32 байт:
Превышен интервал ожидания для запроса.
Статистика Ping для 192.168.0.1:
Пакетов: отправлено = 1, получено = 0, потеряно = 1 (100% потерь),
<<< SKIP >>> <<< SKIP >>> <<< SKIP >>> <<< SKIP >>>
Обмен пакетами с 192.168.0.1 по 32 байт:
Ответ от 192.168.0.1: число байт=32 время=4мс TTL=100
Статистика Ping для 192.168.0.1:
Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 4мсек, Максимальное = 4 мсек, Среднее = 4 мсек
Start Flashing
*
Успешная передача: 3592480 байт за 11 сs, 281134 байт/с
C:bin>
После того, как загорится индикатор статуса (~1-2 мин) производим сброс настроек роутера по умолчанию. Для этого нажимаем и удерживаем кнопку Reset нажатой, пока не замигает индикатор статуса. Отпускаем Reset. Роутер перезагрузится. После этого необходимо изменить IP адрес сетевой карты компьютера(по кабелю или WiFi) на получение адреса автоматически по DHCP.
Обращаю внимание, что после перепрошивки MAC адрес проводной части роутера изменится на 00 90 4c c0 00 00, а беспроводной на 00 90 4c c1 00 00.
1.1. Обязательно выполнить полный сброс.
Роутер готов к работе (как стандартный вариант для LAN, с разницей что он с изменённой прошивкой, которая уже даёт много новых возможностей + достаточно стабильна)
Далее займёмся модификацией
Зайти телнетом на роутер:
c:/>telnet 192.168.1.1
Login: admin
Password: admin
Далее в консоли (можно через copy/paste)
2. Нам нужно определить параметры vendor=????? product=????? для нашего модема. Для каждого устройства они уникальны.
Делаем следующее. В открытой сессии telnet даём команду:
tail -f /usr/tmp/syslog.log - получаем логи ядра системы.
Теперь вставляем модем в роутер и наблюдаем за происходящим. На экран выдаст нечто подобное:
Jan 1 02:02:09 kernel: hub.c: new USB device 00:03.0-1, assigned address 2
Jan 1 02:02:09 kernel: usb.c: USB device 2 (vend/prod 0x19d2/0x16) is not claimed by any active driver.
Переписываем нужные нам параметры. Выход по Ctrl-C.
2.1. Проверяем запуск порта модема
insmod usbserial vendor=0x19d2 product=0x16
Примечание: для некоторых моделей модемов может понадобится дополнительный параметр maxSize, с помощью которого можно увеличить пропускную способность порта модема. Иначе скорость работы модема через роутер может оказаться ниже скорости работы тоже же модема напрямую в ПК. Например для Нокиа Е51:
insmod usbserial vendor=0x19d2 product=0x16 maxSize=4096
После успешного старта команды:
ls -l /dev/usb/*
на экране:
crw------- 1 admin root 188, 0 Jan 1 1970 0
crw------- 1 admin root 188, 1 Jan 1 1970 1
Теперь доступны следующие порты:
. Создаем нужные каталоги:
Код:
mkdir /tmp/local/sbin
mkdir /tmp/ppp/peers
. Создаем нужные файлы:
vi /etc/usb_modeswitch.conf
Код:
CheckSuccess=2
# ZTE MF628+ (tested version from Telia / Sweden)
# ZTE MF626
#
# Contributor: Joakim Wennergren
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0031
MessageEndpoint=0x01
MessageContent="555342431234567820000000 80000c85010101180101010101000000000000"
# if that command doesn't work, try the other ("eject")
MessageContent="555342431234567800000000 0000061b000000030000000000000000000000"
vi /tmp/local/sbin/post-boot
Код:
#!/bin/sh
chmod 777 /tmp
usb_modeswitch
sleep 5
rmmod usbserial
sleep 5
s=0
DEVICE=2
insmod usbserial vendor=0x19d2 product=0x31 maxSize=4096
sleep 10
while true; do
if [ -e /dev/usb/tts/${DEVICE} ]; then
echo 'modem on'
/tmp/local/sbin/post-pppd start &
sleep 20
s=0
else
echo 'modem off'
fi
while [ -e /dev/usb/tts/${DEVICE} ]; do
if [ -n "`pidof pppd`" ]
then
sleep 30
else
break #end while
echo "pppd down"
fi
done
echo ''
if [ $s = 0 ]; then
killall pppd
killall -SIGHUP pppd
killall /dev/usb/tts/*
killall chat
killall cat
s=1
else
sleep 30
fi
done
vi /tmp/local/sbin/post-pppd
Код:
#! /bin/sh
sleep 10
pppd call dialup
sleep 60
cat /dev/usb/tts/1 &
vi /tmp/ppp/peers/dialup
Код:
debug
/dev/usb/tts/2
921600
mtu 1472
mru 1400
crtscts
noipdefault
ipcp-accept-local
ipcp-accept-remote
lcp-echo-interval 180
lcp-echo-failure 3
mppc
maxfail 1
usepeerdns
defaultroute
noauth
persist
holdoff 10
user 'beeline'
password 'beeline'
connect "/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log"
vi /tmp/ppp/dialup.chat
Код:
'' ''
'' 'ATZ'
'' 'AT+CFUN=1'
'' 'ATQ0 V1 E1 S0=0 &C1 &D0 +FCLASS=0'
'' 'AT+ZSNT=0,0,2'
'' 'AT+ZOPRT=5'
'' 'AT+ZSTART'
'' 'AT+CPBS="SM"'
'' 'AT+CPMS="SM","SM",""'
'' 'AT+CGDCONT=1,"IP","internet.beeline.ru" '
'OK' 'ATD *99#'
'CONNECT' ''
Здесь:
Приоритет 3G:
AT+ZSNT=0,0,2
Приоритет GPRS/EDGE:
AT+ZSNT=0,0,1
3G only:
AT+ZSNT=2,0,0
GPRS/EDGE only:
AT+ZSNT=1,0,0
. Сохраняем сделанное!!!
Код:
echo /tmp/ppp/peers/dialup > /tmp/local/.files
echo /tmp/ppp/dialup.chat >> /tmp/local/.files
echo /etc/usb_modeswitch.conf >> /tmp/local/.files
chmod +x /tmp/local/sbin/post-boot
chmod +x /tmp/local/sbin/post-pppd
flashfs save && flashfs commit && flashfs enable && reboot
Не плохо бы проверить работоспособность соединения перед завершающим этапом создания автозагрузки.
Файлы дозвона у нас сохранены. Необходимо лишь снова, пока вручную, запустить порт модема.
insmod usbserial vendor=0x19d2 product=0x16
Теперь можем пробовать соединиться. В скрипте dialup указан параметр nodetach. Как результат мы будем оставаться в открытой сессии до нажатия Ctrl-C. Можно будет увидеть что происходит в процессе дозвона. И так звоним!
pppd nodetach call dialup
После ввода команды должно происходить что-то подобное:
Script /usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log finished (pid 162), status = 0x0
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <--> /dev/usb/tts/0
........................................ .......
local IP address 94.248.29.187
remote IP address 77.109.0.148
primary DNS address 77.109.1.8
secondary DNS address 77.109.1.9
Script /tmp/ppp/ip-up started (pid 165)
Script /tmp/ppp/ip-up finished (pid 165), status = 0x0
Если же всё в порядке - переходим в следующему пункту
. Создаём файл автозапуска порта модема и соединения /tmp/local/sbin/post-boot
Нужно создать директорию
mkdir /tmp/local/sbin
Наполняем файл автозагрузки
echo "#!/bin/sh" > /tmp/local/sbin/post-boot
echo "insmod usbserial vendor=0x19d2 product=0x16" >> /tmp/local/sbin/post-boot
echo "sleep 10" >> /tmp/local/sbin/post-boot
echo "pppd call dialup" >> /tmp/local/sbin/post-boot
Естественно тут указываем параметры вендора и продукта вашего модема!
получаем
cat /tmp/local/sbin/post-boot
#!/bin/sh
insmod usbserial vendor=0x19d2 product=0x16
sleep 10
pppd call dialup
Что бы наш файл мог выполниться системой при загрузке, меняем ему атрибуты:
chmod +x /tmp/local/sbin/post-boot
Не забываем сохраняться
flashfs save && flashfs commit && flashfs enable
Всё готово! Пререгружается и пробуем!
reboot
Для контроля выполнения команд рекомендую открыть второе окно телнет с командой
tail -f /usr/tmp/syslog.log
Так мы будем видеть сообщения ядра.
Ну вроде всё. Дерзайте! В этой ветке и обсудим у кого как получилось...
P.S. Как показали тесты у этого варианта есть явные преимущества в отличие от стандартного варианта:
1. Стабильность соединения. Часами без залипаний. Тесты ещё не завершены...
2. Скорость соединения не ограничивается роутером. Получить 1500 Кбит/с оказалось вполне реально. Теперь уже больше зависит от оператора и модема.
3. Ну и наконец открытые возможности по дополнению функциональности.
Появились дополнения.
1. На некоторых моделях модемов наблюдается снижение скорости до 500Кбит/с при работе через роутер. Эту ситуацию удаётся исправить указанием дополнительного параметра при старте модуля usbserial , а именно maxSize.
1.1. Пробуем внести изменения в файл автозагрузки /tmp/local/sbin/post-boot таким образом:
insmod usbserial vendor=0x19d2 product=0x16 maxSize=4096
Не забываем указывать свои параметры vendor/product!
P.S.НЕ ЗАБЫВАЙТЕ СНЯТЬ ЗАПРОС PIN-КОДА НА МОДЕМЕ и наслаждайтесь!!!!
Прошивка последняя от DANtes на ядре 2.4.37.9 отлично работает с этим модемом Sierra Wireless AirCard 595U
1. По умолчанию отключены все не самые необходимые при начальной установке сервисы . Необходимое включите после настройки инета.
2. Изменены 3G-скрипты. Пинг-тест теперь включаем только в крайних случаях, в основном с восстановлением инета теперь справляется сам pppd.
3. Модем начинает работать сразу после настройки без ребута.
4. При настроенном 3G-соединении, даже при "горячем" включении модема, происходит дозвон.
5. Убраны "ложные" срабатывания usb_modeswitch.
6. Полностью и окончательно портирован драйвер HSO для ядра 2.4. Это должно обрадовать владельцев модемов Option, поддержки их модемов практически не было раньше на роутерах. При подключении данных модемов в настройках 3G-Device следует выбрать HSO-0 .
7. Добавлен ручной режим переключения режимов сети ( umts first/gprs first/umts only/gprs only) для модемов ZTE и Huawei (если данная функция есть в самих модемах).
8. В меню Status-Diagnostic появилась возможность проверки качества сигнала модема (интернет должен быть отключен и выбран нужный порт модема).
9. При нажатии кнопки Reset более, чем на 5 секунд производится сброс в начальные настройки.