Прошивка DIR-320
From DD-WRT Wiki
Contents |
[edit] Прошивка DD-WRT в DIR-320
[edit] Рекомендации по выбору прошивки
В DIR-320 установлено 4 мегабайта флэш-памяти, поэтому прошивка должна быть не более указанного размера. Можно использовать версию standard, однако в этом случае в файловой системе jffs не остается места для пользовательских файлов. Предпочтительнее пользоваться прошивками от Eko - их можно найти в папке others/eko/V24_TNG/svnNNNNN (выбираем папку с самым большим номером). Для поддержки USB можно выбрать версию NEWD_mini_usb_ftp или NEWD_mini_usb.
Если вам требуется большая функциональность, чем предусмотренная в версиях mini или standard, воспользуйтесь методом, описанным на странице Установка DD-WRT mega на маршрутизаторы с объемом флэш-памяти 4 МБ.
[edit] Подготовка к прошивке
Если на вашем маршрутизаторе уже прошита DD-WRT, то новую версию данной прошивки можно загрузить в него с помощью веб-интерфейса. Если же в маршрутизаторе фирменная прошивка D-Link, то из-за различия форматов файлов с прошивками DD-WRT можно загрузить только с помощью протокола TFTP. Процедура загрузки подробно описывается далее.
Создайте на вашем диске C: папку (например, C:\dd-wrt). Скачайте в эту папку файл прошивки и переименуйте его в firmware.bin.
Установите IP-адрес сетевого интерфейса вашего компьютера 192.168.0.10 и маску 255.255.255.0. Соедините сетевой разъем вашего компьютера с портом LAN1 DIR-320. Питание маршрутизатора пока не включайте.
[edit] Прошивка вручную
Прежде, чем использовать TFTP, стоит попробовать залить DD-WRT через crash mode (времени потрачено будет меньше). Если возникнут проблемы, тогда переходим к прошивке через TFTP.
Прошивка DIR-320 выполняется по протоколу TFTP. После включения питания маршрутизатора на короткое время (около 2 секунд) запускается встроенный сервер TFTP, с помощью которого можно загрузить в устройство новую прошивку. Самое трудное - это поймать нужный момент времени, в течение которого нужно выдавать команду для закачки прошивки. С первого раза это получается редко, так что будьте готовы к тому, что придется совершить несколько попыток, и наберитесь терпения.
Важно: Вероятно DIR-320 со свежими прошивками D-Link не запускают TFTP сервер совсем и поймать нужный момент времени невозможно. В этом случае, чтобы загрузить свою прошивку с первого раза придется сделать полный сброс DIR-320: выключаем питание, нажимаем и держим кнопку Reset, включаем питание, ждем 15 сек., отпускаем кнопку Reset. После этой процедуры роутер должен откликаться на ping c TTL=100:
Reply from 192.168.0.1: bytes=32 time<1ms TTL=100
В таком состоянии роутер нефункционален, он ожидает загрузки прошивки через веб-интерфейс (только D-Link) или по TFTP. Причем TFTP работает не все время, а только несколько секунд (около 4 сек.) после включения питания. Это немного, но достаточно чтобы залить прошивку с первого раза. Выключаем DIR-320.
Запустите на вашем компьютере командную строку, перейдите в папку dd-wrt на диске C:\ и наберите приведенную ниже команду, но не нажимайте пока клавишу <Enter>. На экране должно быть примерно следующее:
Microsoft Windows XP [Version 5.1.2600] Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\someuser> cd c:\dd-wrt C:\dd-wrt> tftp -i 192.168.0.1 put firmware.bin
(Набранные вами команды выделены жирным шрифтом.)
Непосредственно перед началом прошивки желательно осуществить сброс на заводские настройки (Кнопка Reset, рядом с гнездом питания).
Вы должны нажать клавишу <Enter> для запуска показанной выше команды «tftp -i 192.168.0.1 put firmware.bin» примерно через две секунды после включения питания DIR-320 (т.е. когда загорится индикатор соединения по Ethernet). Если прошивка будет принята маршрутизатором, индикатор LED1 на нем будет быстро моргать и команда успешно завершится менее чем через полминуты. На экране появится сообщение об успешном завершении команды:
Успешная передача: 3092480 байт за 11 сs, 281134 байт/с
Если же вы поспешите или опоздаете нажать клавишу <Enter>, команда через некоторое время выдаст сообщение о неуспешном завершении. В этом случае просто повторите описанный выше процесс: выключите питание маршрутизатора и буквально через секунду снова включите его, перед этим снова подготовив команду tftp для передачи в него прошивки.
Имейте в виду, что процесс прошивки продолжается несколько минут после завершения команды пересылки файла, поэтому не выключайте питание маршрутизатора и не нажимайте Reset немедленно после завершения этой команды. Дайте маршрутизатору 10 минут времени для завершения процесса прошивки. За это время выпейте чашечку кофе и получите удовольствие – и только после этого переходите к следующему пункту. Если в списке беспроводных сетей появился новый SSID «dd-wrt» - значит, процесс прошивки успешно завершился.
Чтобы не ловить момент, в который нужно выдать команду загрузки, вручную, воспользуйтесь способом, описанным в следующем разделе.
Внимание: В последних версиях роутера, если tftp выдается сообщение <Error 3>: Operation cancelled, то попробуйте прошить прошивку меньшего объема. Опытным путем установлено, что dd-wrt VPN прошивка не шьется напрямую из-за своего объема, надо использовать меньшую по объему (mini/micro), а затем из mini или micro прошивки прошить нужную через веб-интерфейс dd-wrt.
[edit] Прошивка с использованием пакетного файла
Записываем файл flashing.cmd в папку C:\dd-wrt, куда мы ранее записали файл с прошивкой. Содержимое этого файла следующее:
@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 firmware.bin :END
Более продвинутая версия пакетного файла с выдачей комментариев на консоль приведена в приложении (см. ниже).
Запускаем командную строку, переходим в папку c:\dd-wrt и запускаем командный файл flashing.cmd.
Включаем питание маршрутизатора.
Наблюдаем процесс прошивки:
C:\dd-wrt>flashing.cmd Обмен пакетами с 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 **** Успешная передача: 3092480 байт за 11 сs, 281134 байт/с C:\dd-wrt>
После того, как загорится индикатор статуса (~1-2 мин.), можно подключаться к маршрутизатору по адресу 192.168.1.1.
Другой вариант командного файла (первый в моем случае не помог) вызвать с момента включения маршрутизатора с интервалом например в 500мс подряд несколько процессов tftp. Соответственно какой-то из них попадет в момент, когда маршрутизатор "согласен" принять прошивку. Как организовать паузу http://wiki.oszone.net/index.php/Пауза_в_пакетном_файле, я использовал nircmdc.exe (http://www.nirsoft.net/utils/nircmd.zip)
for /l %%a in (1, 1, 10) do (nircmdc.exe wait 500 start cmd.exe /ktftp -i 192.168.0.1 put firmware.bin)
Запустить данный командный файл одновременно с включением маршрутизатора. Откроется 10 консольных окон, и в одном из них пройдет загрузка файла, все остальные отвалятся по таймауту. Если все равно не получается попасть в нужный интервал, то можно дополнительно отключить в windows сброс IP-адреса при отсутствии кабельного подключения (ускорит инициализацию интерфейса). Создать reg-файл следующего содержания:
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "DisableDHCPMediaSense"=dword:00000001
Добавить информацию в реестр, перегрузить компьютер и попробовать снова прошить маршрутизатор.
[edit] Подключение к веб-интерфейсу DD-WRT
После успешной прошивки настройте сетевой интерфейс вашего компьютера на получение IP-адреса от сервера DHCP и введите в адресной строке вашего браузера http://192.168.1.1. По умолчанию имя пользователя и пароль для доступа к веб-интерфейсу – соответственно «root» и «admin» (без кавычек).
Если вы по-прежнему видите веб-интерфейс D-Link, повторите процедуру прошивки.
P.S. Еще один простой и удобный способ поймать момент включения режима прошивки - использовать команду arping (В *nix системах она уже есть), для Windows можно нагуглить или попробовать эту ссылку http://www.ipacct.com/f/arping_for_windows-1.0.zip, как только будет первый ответ - нужно посылать файл на роутер и все прошьется :)
[edit] Восстановление фирменной прошивки
Восстановление фирменной прошивки после DD-WRT опять-таки делается с помощью TFTP.
Скачиваем с http://ftp.dlink.ru прошивку для DIR-320, сохраняем ее на диске C:\dd-wrt и переименовываем в firmware.bin .
Далее делаем следующее:
- Сбрасываем маршрутизатор, нажав кнопку Reset и удерживая ее не менее 30 секунд. (Или делаем «сброс 30/30/30».)
- Устанавливаем на сетевом интерфейсе компьютера адрес 192.168.0.10 и маску 255.255.255.0, соединяем сетевой разъем компьютера с портом маршрутизатора LAN1, питание маршрутизатора пока не включаем.
- Загружаем в маршрутизатор заводскую прошивку по протоколу TFTP на адрес 192.168.0.1. Действия для запуска пересылки по TFTP такие же, как и при загрузке DD-WRT (см. выше разделы "Прошивка вручную" и "Прошивка с помощью пакетного файла", рекомендуется последний способ как более простой).
- После десятиминутной паузы набираем в адресной строке браузера http://192.168.0.1 и попадаем в сервер аварийного восстановления. Выбираем опять-таки скачанный нами файл с прошивкой D-Link и нажимаем Update.
- Снова ждем 10 минут, после чего опять заходим браузером на адрес http://192.168.0.1 и проверяем, установилась ли фирменная прошивка (имя пользователя по умолчанию – admin, пароль пустой). Если зайти не удается – выполняем аппаратный сброс кнопкой Reset (держать 30 секунд) и устанавливаем в свойствах сетевого интерфейса компьютера автоматическое получение IP-адреса.
[edit] Форс-мажор
Если прошивка не удалась или по ошибке залили чужую прошивку и маршрутизатор стал свичем, то можно сделать следующее: При нажатой кнопке Reset включить питание и удерживать кнопку в течении 15 секунд. После этого зайти на 192.168.0.1 через web-интерфейс. Будет доступна консоль восстановления. Следуя инструкции прошить фирменную прошивку (http://ftp.dlink.ru/pub/Router/DIR-320/Firmware/).
[edit] Приложения
[edit] Приложение 1. Расширенная версия файла flashing.cmd
Расширенная версия пакетного файла flashing.cmd с выдачей комментариев на консоль:
@echo off echo ================================================================== echo This batch file will upload dd-wrt firmware in the current directory to echo 192.168.0.1 during the router's bootup. echo. echo * Set your ethernet card's settings to: echo IP: 192.168.0.2 echo Mask: 255.255.255.0 echo Gateway: 192.168.0.1 echo * Unplug the router's power cable. echo. echo Press Ctrl+C to abort or any other key to continue... pause > nul echo. echo * Re-plug the router's power cable. echo. echo ================================================================== echo Waiting for the router... Press Ctrl+C to abort. echo. set FIND=%WINDIR%\command\find.exe if exist %FIND% goto PING set FIND=%WINDIR%\system32\find.exe if exist %FIND% goto PING set FIND=find :PING ping -n 1 -w 50 192.168.0.1 | %FIND% "TTL=" if errorlevel 1 goto PING echo *** Start Flashing **** tftp -i 192.168.0.1 put firmware.bin if errorlevel 1 goto PING set FIND= echo. echo ================================================================== echo * WAIT for about 2 minutes while the firmware is being flashed. echo * Reset your ethernet card's settings back to DHCP. echo * The default router address will be at 192.168.1.1 echo. pause
[edit] Приложение 2. Bash-скрипт, аналогичный пакетному файлу flashing.cmd
Bash-скрипт, аналогичный расширенной версии пакетного файла flashing.cmd.
#!/bin/bash echo "==================================================================" echo "This script will upload dd-wrt firmware (firmware.bin)" echo "in the current directory to 192.168.0.1 " echo "during the router's bootup. " echo "" echo "* Set your ethernet card's settings to: " echo " IP: 192.168.0.10 " echo " Mask: 255.255.255.0 " echo " Gateway: 192.168.0.1 " echo "* Unplug the router's power cable. " echo "" echo "Press Ctrl+C to abort or any other key to continue... " read echo "" echo "* Re-plug the router's power cable. " echo "" echo "==================================================================" echo "Waiting for the router... Press Ctrl+C to abort. " echo "" try(){ ping -c 1 -w 1 192.168.0.1 } try while [ "$?" != "0" ] ; do try done echo "*** Start Flashing **** " atftp --no-source-port-checking -p -l firmware.bin 192.168.0.1 echo "Firmware successfully loaded!"
[edit] Приложение 3. sh-скрипт для FreeBSD, аналогичный пакетному файлу flashing.cmd
sh-скрипт для FreeBSD.
#!/bin/sh echo "Power on DIR-320."; ping -Qqo 192.168.0.1 1>/dev/null 2>/dev/null; echo "Start Flashing."; cat <<EOF | tftp; mode binary rexmt 1 connect 192.168.0.1 put firmware.bin EOF
Источники: