D-Link DIR-300 rev A/ru

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 12:15, 4 August 2009 (edit)
Maniac-z (Talk | contribs)
(Прошивка DD-WRT в DIR-300)
← Previous diff
Current revision (17:49, 14 August 2019) (edit) (undo)
Santurysim (Talk | contribs)
m (Прошивка DIR-300 moved to D-Link DIR-300 rev A/ru: There is a page on the same router in English)
 
(15 intermediate revisions not shown.)
Line 1: Line 1:
 +{{Languages|D-Link DIR-300 rev A}}
 +
 +__TOC__
 +
==Прошивка DD-WRT в DIR-300== ==Прошивка DD-WRT в DIR-300==
-'''Если типа что-nj пошло не так... не бойтесь, убить таким способом железку очень тяжело. просто передергиваете питание и телнетитесь опять либо на ---20.81 либо на ---.1.1 на порт 9000 и все начинаем с того места, где возникла проблема.'''+Прежде, чем использовать TFTP, стоит попробовать [http://sergey-s-betke.blogs.novgaro.ru/proshivaem-d-link-proshivkoj-dd-wrt залить DD-WRT через crash mode] (времени потрачено будет меньше). Если возникнут проблемы, тогда переходим к прошивке через TFTP.
 + 
 +'''Если типа что-то пошло не так... не бойтесь, убить таким способом железку очень тяжело. просто передергиваете питание и телнетитесь опять либо на ---20.81 либо на ---.1.1 на порт 9000 и все начинаем с того места, где возникла проблема.'''
предварительная подготовка:<br> предварительная подготовка:<br>
Line 17: Line 23:
2. Втыкаем кабель в WAN порт (!) (INTERNET на нем написано) 2. Втыкаем кабель в WAN порт (!) (INTERNET на нем написано)
- 2.1 Включаем питание роутера.+:2.1 '''Зажимаем''' кнопку "RESET"
 +:2.2 Включаем питание роутера.
 +:2.3 Через '''30 секунд''' отпускаем "RESET"
3. Коннектимся к железке телнетом на 192.168.20.81 на порт 9000 3. Коннектимся к железке телнетом на 192.168.20.81 на порт 9000
-4. Возможно с первого раза не выйдет — редбут ждет подключения в течение 1 секунды примерно через +4. Возможно с первого раза не выйдет — редбут ждет подключения в течение 1 секунды примерно через 5 секунд после начала загрузки роутера
-5 секунд после начала загрузки роутера+5. Далее должна появиться приветственная надпись и надо жать CTRL+C
-5. Далее должна появиться приветственная надпись и надо жать ctrl + c+6. Нажать CTRL+C у меня это так и не получилось
- +:6.1 Можно воспользоваться пакетным файлом:
-6. Нажать ctrl+C у меня это так и не получилось+:6.1.1 создаем в корне C:\ файл xxx.bat, следующего содержания:
- 6.1 Можно воспользоваться пакетным файлом:+ <nowiki>:</nowiki>start
- 6.1.1 создаем в корне C:\ файл xxx.bat, следующего содержания:+ ping 192.168.20.81 -n 2 -w 1 > NULL
-:start + IF ERRORLEVEL 1 goto start
-ping 192.168.20.81 -n 2 -w 1 > NULL<br>+ break
-IF ERRORLEVEL 1 goto start<br>+ putty.exe telnet://192.168.20.81:9000 -m redboot.txt
-break<br>+:6.1.2 создаем там же файл redboot.txt, следующего содержания:
-putty.exe telnet://192.168.20.81:9000 -m redboot.txt<br>+
- 6.1.2 создаем там же файл redboot.txt, следующего содержания:+
только ДВА символа ^C только ДВА символа ^C
- 6.1.3 качаем в корень C:\ putty.exe [http://www.putty.org]+:6.1.3 качаем в корень C:\ putty.exe [http://www.putty.org]
7. Запустить батник. Батник будет пинговать 192.168.20.81 до тех пор, пока не получит ответ и сразу запустит putty , которая пошлет в роутер содержимое файла redboot.txt 7. Запустить батник. Батник будет пинговать 192.168.20.81 до тех пор, пока не получит ответ и сразу запустит putty , которая пошлет в роутер содержимое файла redboot.txt
8. В оном файле есть только 2 символа - ^C. Они остановят загрузку и откроет окно putty с приглашением <br> 8. В оном файле есть только 2 символа - ^C. Они остановят загрузку и откроет окно putty с приглашением <br>
-redboot>+ redboot>
9. теперь: 9. теперь:
10.Стартуем tftp server 10.Стартуем tftp server
-(там есть в комплекте файлик — просто оставьте его вместе с остальными файлами прошивки в папке c:/dir300/ и запустите. Или качаем любой TFTP Server и указываем папку где лежат файлы (C:\DIR300)+(там есть в комплекте файлик — просто оставьте его вместе с остальными файлами прошивки в папке c:\dir300\ и запустите. Или качаем любой TFTP Server и указываем папку где лежат файлы (C:\DIR300)
Line 54: Line 60:
11. Пишем в консоли редбута<br> 11. Пишем в консоли редбута<br>
-RedBoot>'''load ap61.ram''' <br>+ RedBoot>'''load ap61.ram'''
-Using default protocol (TFTP) <br>+ Using default protocol (TFTP)
-Entry point: 0×800410bc, address range: 0×80041000-0×800680d8 <br>+ Entry point: 0×800410bc, address range: 0×80041000-0×800680d8
-RedBoot> '''go'''<br>+ RedBoot> '''go'''
12. Если телнет-сессия после этого прервется – это нормально. 12. Если телнет-сессия после этого прервется – это нормально.
Line 74: Line 80:
14. в консоли: <br> 14. в консоли: <br>
-DD-WRT>'''fconfig -i'''<br>+
-Initialize non-volatile configuration - continue (y/n)?'''y''' <br>+ DD-WRT>'''fconfig -i'''
-Run script at boot: false <br>+ Initialize non-volatile configuration - continue (y/n)?'''y'''
-Use BOOTP for network configuration: true <br>+ Run script at boot: false
-Default server IP address: <br>+ Use BOOTP for network configuration: true
-Console baud rate: 9600 <br>+ Default server IP address:
-GDB connection port: 9000 <br>+ Console baud rate: 9600
-Force console for special debug messages: false <br>+ GDB connection port: 9000
-Network debug at boot time: false <br>+ Force console for special debug messages: false
-Update RedBoot non-volatile configuration - continue (y/n)?'''y''' <br>+ Network debug at boot time: false
- + Update RedBoot non-volatile configuration - continue (y/n)?'''y'''
-… Erase from 0xbffe0000-0xbfff0000: . <br>+
-… Program from 0×80ff0000-0×81000000 at 0xbffe0000: .<br>+ … Erase from 0xbffe0000-0xbfff0000: .
- + … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
-DD-WRT> '''fis init''' <br>+
-About to initialize [format] FLASH image system - continue (y/n)? '''y''' <br>+ DD-WRT> '''fis init'''
-*** Initialize FLASH Image System <br>+ About to initialize [format] FLASH image system - continue (y/n)? '''y'''
-… Erase from 0xbffe0000-0xbfff0000: . <br>+ *** Initialize FLASH Image System
-… Program from 0×807f0000-0×80800000 at 0xbffe0000: . <br>+ … Erase from 0xbffe0000-0xbfff0000: .
- + … Program from 0×807f0000-0×80800000 at 0xbffe0000: .
-DD-WRT> '''ip_address -h 192.168.1.2''' <br>+
-Default server: 192.168.1.23 <br>+ DD-WRT> '''ip_address -h 192.168.1.2'''
- + Default server: 192.168.1.23
-DD-WRT> '''load -r -b %{FREEMEMLO} ap61.rom''' <br>+
-Using default protocol (TFTP) <br>+ DD-WRT> '''load -r -b %{FREEMEMLO} ap61.rom'''
-Raw file loaded 0×80080000-0×800a8717, assumed entry at 0×80080000 <br>+ Using default protocol (TFTP)
- + Raw file loaded 0×80080000-0×800a8717, assumed entry at 0×80080000
-DD-WRT> '''fis create -l 0×30000 -e 0xbfc00000 RedBoot''' <br>+
-An image named ‘RedBoot’ exists - continue (y/n)?''' y''' <br>+ DD-WRT> '''fis create -l 0×30000 -e 0xbfc00000 RedBoot'''
-… Erase from 0xbfc00000-0xbfc30000: … <br>+ An image named ‘RedBoot’ exists - continue (y/n)?''' y'''
-… Program from 0×80080000-0×800a8718 at 0xbfc00000: … <br>+ … Erase from 0xbfc00000-0xbfc30000: …
-… Erase from 0xbffe0000-0xbfff0000: . <br>+ … Program from 0×80080000-0×800a8718 at 0xbfc00000: …
-… Program from 0×807f0000-0×80800000 at 0xbffe0000: . <br>+ … Erase from 0xbffe0000-0xbfff0000: .
- + … Program from 0×807f0000-0×80800000 at 0xbffe0000: .
-DD-WRT> '''reset'''<br>+
- + DD-WRT> '''reset'''
 +
После этого ваш маршрутизатор перезагрузится и сессия прервется. Снова подключитесь телнетом к адресу 192.168.1.1 и порту 9000 после того, как маршрутизатор перезапустится и будет ждать ваших команд (на это нужно примерно 30 секунд). После этого ваш маршрутизатор перезагрузится и сессия прервется. Снова подключитесь телнетом к адресу 192.168.1.1 и порту 9000 после того, как маршрутизатор перезапустится и будет ждать ваших команд (на это нужно примерно 30 секунд).
-'''Загрузка новой прошивки '''<br>+'''Загрузка новой прошивки '''
-15 . +15. Еще раз напомним – не выключайте питание маршрутизатора и не отсоединяйте сетевой кабель во время выполнения описанных ниже шагов!
- +
-Еще раз напомним – не выключайте питание маршрутизатора и не отсоединяйте сетевой кабель во время выполнения описанных ниже шагов! +
Команды fis create выполняются достаточно долго, наберитесь терпения и не прерывайте процесс. Команды fis create выполняются достаточно долго, наберитесь терпения и не прерывайте процесс.
-DD-WRT> '''ip_address -h 192.168.1.2''' <br>+ DD-WRT> '''ip_address -h 192.168.1.2'''
-IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0 <br>+ IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
-Default server: 192.168.1.2 <br>+ Default server: 192.168.1.2
- +
-DD-WRT> '''fis init''' <br>+ DD-WRT> '''fis init'''
-About to initialize [format] FLASH image system - continue (y/n)? '''y''' <br>+ About to initialize [format] FLASH image system - continue (y/n)? '''y'''
-*** Initialize FLASH Image System <br>+ *** Initialize FLASH Image System
-… Erase from 0xbfc30000-0xbffe0000: ………………………………………………….. <br>+ … Erase from 0xbfc30000-0xbffe0000: …………………………………………………..
-… Erase from 0xbffe0000-0xbfff0000: . <br>+ … Erase from 0xbffe0000-0xbfff0000: .
-… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . <br>+ … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
- +
-DD-WRT> '''load -r -b 0×80041000 linux.bin''' <br>+ DD-WRT> '''load -r -b 0×80041000 linux.bin'''
-Using default protocol (TFTP) <br>+ Using default protocol (TFTP)
-Raw file loaded 0×80041000-0×803cffff, assumed entry at 0×80041000 <br>+ Raw file loaded 0×80041000-0×803cffff, assumed entry at 0×80041000
- +
-DD-WRT> '''fis create linux''' <br>+ DD-WRT> '''fis create linux'''
-… Erase from 0xbfc30000-0xbffbf000: ………………………………………………… <br>+ … Erase from 0xbfc30000-0xbffbf000: …………………………………………………
-… Program from 0×80041000-0×803d0000 at 0xbfc30000: ………………………………………………… <br>+ … Program from 0×80041000-0×803d0000 at 0xbfc30000: …………………………………………………
-… Erase from 0xbffe0000-0xbfff0000: . <br>+ … Erase from 0xbffe0000-0xbfff0000: .
-… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . <br>+ … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
- +
-DD-WRT> '''fconfig boot_script true''' <br>+ DD-WRT> '''fconfig boot_script true'''
-boot_script: Setting to true <br>+ boot_script: Setting to true
-Update RedBoot non-volatile configuration - continue (y/n)? '''y''' <br>+ Update RedBoot non-volatile configuration - continue (y/n)? '''y'''
-… Erase from 0xbffe0000-0xbfff0000: . <br>+ … Erase from 0xbffe0000-0xbfff0000: .
-… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . <br>+ … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
- +
-DD-WRT> '''fconfig boot_script_timeout 3''' <br>+ DD-WRT> '''fconfig boot_script_timeout 3'''
-boot_script_timeout: Setting to 3 <br>+ boot_script_timeout: Setting to 3
-Update RedBoot non-volatile configuration - continue (y/n)? '''y''' <br>+ Update RedBoot non-volatile configuration - continue (y/n)? '''y'''
-… Erase from 0xbffe0000-0xbfff0000: . <br>+ … Erase from 0xbffe0000-0xbfff0000: .
-… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . <br>+ … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
 +
 + DD-WRT> '''fconfig bootp false'''
 + bootp: Setting to false
 + Update RedBoot non-volatile configuration - continue (y/n)? '''y'''
 + … Erase from 0xbffe0000-0xbfff0000: .
 + … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
 +
 + DD-WRT>''' fconfig'''
 + Run script at boot: true
 + Boot script:
 + .. fis load -l vmlinux.bin.17
 + .. exec
 + Enter script, terminate with empty line
 +
 + >> '''fis load -l linux'''
 + >> '''exec'''
 + >>
 +
 + Boot script timeout (1000ms resolution): 3
 + Use BOOTP for network configuration: false
 + Default server IP address:
 + Console baud rate: 9600
 + GDB connection port: 9000
 + Force console for special debug messages: false
 + Network debug at boot time: false
 + Update RedBoot non-volatile configuration - continue (y/n)? '''y'''
 + … Erase from 0xbffe0000-0xbfff0000: .
 + … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
 +
 + DD-WRT> '''ip_address -h 192.168.1.1'''
 +
 + DD-WRT> '''reset'''
-DD-WRT> '''fconfig bootp false''' <br> 
-bootp: Setting to false <br> 
-Update RedBoot non-volatile configuration - continue (y/n)? '''y''' <br> 
-… Erase from 0xbffe0000-0xbfff0000: . <br> 
-… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . <br> 
- 
-DD-WRT>''' fconfig''' <br> 
-Run script at boot: true <br> 
-Boot script: <br> 
-.. fis load -l vmlinux.bin.17<br> 
-.. exec <br> 
-Enter script, terminate with empty line <br> 
- 
->> '''fis load -l linux''' <br> 
->> '''exec''' <br> 
->> <br> 
- 
-Boot script timeout (1000ms resolution): 3 <br> 
-Use BOOTP for network configuration: false <br> 
-Default server IP address: <br> 
-Console baud rate: 9600 <br> 
-GDB connection port: 9000 <br> 
-Force console for special debug messages: false <br> 
-Network debug at boot time: false <br> 
-Update RedBoot non-volatile configuration - continue (y/n)? '''y''' <br> 
-… Erase from 0xbffe0000-0xbfff0000: . <br> 
-… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . <br> 
- 
-DD-WRT> '''reset'''<br> 
Роутер перезагрузится. Роутер перезагрузится.
Line 197: Line 205:
Замечание: если вы хотите изменить значение «Run script on boot» с false на true, выполните следующую команду перед командой fcohfig: <br> Замечание: если вы хотите изменить значение «Run script on boot» с false на true, выполните следующую команду перед командой fcohfig: <br>
-'''fconfig boot_script true'''<br>+ '''fconfig boot_script true'''
==Рекомендации по выбору прошивки== ==Рекомендации по выбору прошивки==
Line 225: Line 233:
==Восстановление фирменной прошивки== ==Восстановление фирменной прошивки==
 +
 +Оригинал англоязычной статья служившей мне руководством http://wi-fi.na.by/
 +
 +Предупреждение: При наборе команд не следует пользоваться буфером обмена т.к. буква "х" после процедуры "Вставить" не воспринимается, как символ "х". (набирайте адреса в ручную)
 +
 +Начало:
 +
 +1. Вам потребуется оригинальный загрузчик DIR-300 который Вы можете скачать здесь
 +http://www.shadowandy.net/wp/wp-content/uploads/dir300redboot.zip
 +или с одного из зеркал
 +
 +ftp://ftp.dlink.cz/dir/dir-300/driver_software/dir-300_sw_revA_redboot_all_en_20080307.zip
 +
 +ftp://ftp.dlink.pl/dir/dir-300/driver_software/dir-300_sw_revA_redboot_all_en_20080307.zip
 +
 +2. Также Вам потребуется файл конфигурации устройства shadowandy_board_config.bin, который необходимо создать с помощью конструктора расположенного по данной ссылке
 +http://www.shadowandy.net/2009/02/generating-dir-300s-board-config.htm
 +(для генерации файла Вам необходимо знать MAC ID и PIN коды, которые присутствуют на наклейках с нижней стороны устройства.)
 +после того как Вы введете нужные данные в конструкторе, будет предложено сохранить файл на диске.
 +
 +3. Запускаем TFTP сервер для возможности заливать в устройства файлы
 +
 +Установка загрузчика (RedBoot):
 +Отступление - в большенстве описаний, и оригинал статьи не исключение, необходимо по ходу перепрошивки устройства менять IP адрес вашего ПК, рекомендую воспользоваться кнопкой "Альтернативная конфигурация" в свойствах TCP/IP протокола вашей сетевой карты и сразу прописать следующие адреса и маски:
 +192.168.20.2/24 (255.255.255.0)
 +192.168.1.2/24
 +192.168.0.2/24
 +Это позволит не Беспокоиться о том, правильный ли в данный момент времени у Вас адрес или нет.
 +
 +1. Приготовьтесь подключиться телнетом к 192.168.1.1, port 9000, это можно сделать коммандой
 +putty.exe telnet://192.168.1.1:9000
 +Я в свою очередь подготовил следующий пакетный файл:
 +
 +'''connect1.bat'''
 +
 + rem echo off
 +
 + <nowiki>:</nowiki>start
 +
 + ping 192.168.1.1 -n 1 -w 1 > NULL
 +
 + IF ERRORLEVEL 1 goto start
 +
 + break
 +
 + putty.exe telnet://192.168.1.1:9000 -m redboot.txt
 +
 +также нам понадобится еще один пакетный файл
 +
 +'''connect20.bat'''
 +
 + rem echo off
 +
 + <nowiki>:</nowiki>start
 +
 + ping 192.168.20.81 -n 1 -w 1 > NULL
 +
 + IF ERRORLEVEL 1 goto start
 +
 + break
 +
 + putty.exe telnet://192.168.20.81:9000 -m redboot.txt
 +
 +
 +файл redboot.txt, как и в случае заливки DD-WRT содержит два символа - ^C
 +
 +Теперь Мы готовы приступить к восстановлению оригинальной прошивки
 +- Подключаем ПК к LAN порту
 +- Подаем питание на устройство
 +- запускаем connect1.bat
 +
 +Через несколько секунд появится приветствие
 +
 + DD-WRT> '''ip_address -h 192.168.1.2'''
 +
 + Default server: '''192.168.1.2'''
 +
 + DD-WRT> '''fis init'''
 +
 + About to initialize [format] FLASH image system – continue (y/n)? '''y'''
 +
 + *** Initialize FLASH Image System
 +
 + … Erase from 0xbffe0000-0xbfff0000: .
 +
 + … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
 +
 + DD-WRT> '''load -r -b %{FREEMEMLO} dir300redboot.rom'''
 +
 + Using default protocol (TFTP)
 +
 + Raw file loaded 0×80040800-0×800607ff, assumed entry at 0×80040800
 +
 + DD-WRT> '''fis create -l 0×30000 -e 0xbfc00000 RedBoot'''
 +
 + An image named ‘RedBoot’ exists – continue (y/n)? '''y'''
 +
 + … Erase from 0xbfc00000-0xbfc30000: …
 +
 + … Program from 0×80040800-0×80060800 at 0xbfc00000: ..
 +
 + … Erase from 0xbffe0000-0xbfff0000: .
 +
 + … Program from 0×80ff0000-0×81000000 at 0xbffe0000: .
 +
 + DD-WRT> '''reset'''
 +
 +После введенных комманд потребуется около 30 сек на перезагрузку устройства
 +
 +Переключаем кабель в порт WAN, подаем питание и запускаем connect20.bat
 +ждем соединения с устройством и приглашения
 +
 + RedBoot> '''load -r -b %{FREEMEMLO} shadowandy_board_config.bin'''
 +
 + Using default protocol (TFTP)
 +
 + Raw file loaded 0×80036400-0×800463ff, assumed entry at 0×80036400
 +
 + RedBoot> '''fwrite -f 0xbfff0000 -b 0×80036400 -l 0×10000 -e 0×80036400'''
 +
 + About to write image into flash – continue (y/n)? '''y'''
 +
 + … Erase from 0xbfff0000-0xc0000000: .
 +
 + … Program from 0×80036400-0×80046400 at 0xbfff0000: .
 +
 + update image info..
 +
 + Update RedBoot non-volatile configuration – continue (y/n)? '''y'''
 +
 + RedBoot> '''reset'''
 +
 +Теперь в пору скачать с официального сайта компании D-link, если конечно это еще не сделано, последнюю актуальную фпрошивку и языковой файл.
 +
 +Кабель должен быть подключен в порт WAN.
 +Подайте питание на устройство, подождите пока оно загрузится и подключитесь WEB браузером к хосту http://192.168.20.81 Вы увидите следующее:
 +[[Image:http://www.shadowandy.net/wp/wp-content/uploads/dir300originalfirmware01small.gif]]
 +остается лишь найти сохраненую оригинальную прошивку устройства и залить ее.
 +
 +После окончания загрузки прошивки, необходимо сделать завершающие штрихи.
 +
 +- Нажать на 30 сек кнопку сброс устройства
 +
 +- запустить connect20.bat
 +
 +- дождаться приглашения и выполнить следующее
 +
 +
 + RedBoot> '''fconfig img_entry_addr 0×80040000'''
 +
 + img_entry_addr: Setting to 0×80040000
 +
 + Update RedBoot non-volatile configuration – continue (y/n)? '''y'''
 +
 + … Erase from 0xbfff0000-0xbfffffff: .
 +
 + … Program from 0×80036400-0×80046400 at 0xbfff0000: .
 +
 + RedBoot> '''fconfig img_flash_addr 0xbfc20000'''
 +
 + img_flash_addr: Setting to 0xbfc20000
 +
 + Update RedBoot non-volatile configuration – continue (y/n)? '''y'''
 +
 + … Erase from 0xbfff0000-0xbfffffff: .
 +
 + … Program from 0×80036400-0×80046400 at 0xbfff0000: .
 +
 + RedBoot> '''fconfig img_length 0×003c0000'''
 +
 + img_length: Setting to 0×003c0000
 +
 + Update RedBoot non-volatile configuration – continue (y/n)? '''y'''
 +
 + … Erase from 0xbfff0000-0xbfffffff: .
 +
 + … Program from 0×80036400-0×80046400 at 0xbfff0000: .
 +
 +После этого вы можете отключить питание, переключить кабель в любой из LAN портов.
 +Подайте питание на устройство и подключитесь к нему через браузер по адресу 192.168.0.1
 +вы увидите следующее: [http://www.shadowandy.net/wp/wp-content/uploads/dir300originalfirmware03small.gif]
 +
 +После чего остается залогиниться учетными данными по умолчанию (смотрите наклейку на вашем устройстве) и залить языковой модуль.
 +Устройство вернулось к своему первоначальному виду.
 +
 +Удачи вам!
 +
 +P.S. Возникла необходимость откатится на оригинальную прошивку, хочу оговориться, что процедуру пришлось повторить дважды т.к. с первого раза MAC адрес устройства не был восстановлен :(
 +Вероятно мои действия имели какую либо ошибку.
 +
 +
 +[[Category:Русская документация]]

Current revision


Contents


[edit] Прошивка DD-WRT в DIR-300

Прежде, чем использовать TFTP, стоит попробовать залить DD-WRT через crash mode (времени потрачено будет меньше). Если возникнут проблемы, тогда переходим к прошивке через TFTP.

Если типа что-то пошло не так... не бойтесь, убить таким способом железку очень тяжело. просто передергиваете питание и телнетитесь опять либо на ---20.81 либо на ---.1.1 на порт 9000 и все начинаем с того места, где возникла проблема.

предварительная подготовка:
создаем папку C:\DIR300 (например), кладем туда
- файлы ap61.ram, ap61.rom и linux.bin : загрузите их с сайта dd-wrt.com, они находятся в папке с прошивкой для DIR-300.
- tftp-сервер: его можно загрузить оттуда же; распакуйте zip-файл и поместите содержимое в папку по вашему выбору.
- telnet-клиент, в качестве которого рекомендуется программа PuTTY : загрузите ее с сайта www.putty.org
Конфигурирование клиента PuTTY : Щелкните правой кнопкой мыши по заголовку окна PuTTY.
Выберите пункт «Change Setings...»
В окне «PuTTY Reconfiguration» установите для параметра «Close window on exit» значение «Never».
Нажмите кнопку «Apply» («Применить»)

1. Cтавим на компе IP 192.168.20.80/mask 255.255.255.0
2. Втыкаем кабель в WAN порт (!) (INTERNET на нем написано)

2.1 Зажимаем кнопку "RESET"
2.2 Включаем питание роутера.
2.3 Через 30 секунд отпускаем "RESET"

3. Коннектимся к железке телнетом на 192.168.20.81 на порт 9000

4. Возможно с первого раза не выйдет — редбут ждет подключения в течение 1 секунды примерно через 5 секунд после начала загрузки роутера

5. Далее должна появиться приветственная надпись и надо жать CTRL+C

6. Нажать CTRL+C у меня это так и не получилось

6.1 Можно воспользоваться пакетным файлом:
6.1.1 создаем в корне C:\ файл xxx.bat, следующего содержания:
:start
ping 192.168.20.81 -n 2 -w 1 > NULL
IF ERRORLEVEL 1 goto start
break
putty.exe telnet://192.168.20.81:9000 -m redboot.txt
6.1.2 создаем там же файл redboot.txt, следующего содержания:

только ДВА символа ^C

6.1.3 качаем в корень C:\ putty.exe [1]

7. Запустить батник. Батник будет пинговать 192.168.20.81 до тех пор, пока не получит ответ и сразу запустит putty , которая пошлет в роутер содержимое файла redboot.txt

8. В оном файле есть только 2 символа - ^C. Они остановят загрузку и откроет окно putty с приглашением

redboot>

9. теперь:

10.Стартуем tftp server (там есть в комплекте файлик — просто оставьте его вместе с остальными файлами прошивки в папке c:\dir300\ и запустите. Или качаем любой TFTP Server и указываем папку где лежат файлы (C:\DIR300)


Загрузка в маршрутизатор временного загрузчика

11. Пишем в консоли редбута

RedBoot>load ap61.ram 
Using default protocol (TFTP) 
Entry point: 0×800410bc, address range: 0×80041000-0×800680d8 
RedBoot> go

12. Если телнет-сессия после этого прервется – это нормально. Замечание: не перезагружайте маршрутизатор и не отключайте его питание.

Установка нового постоянного загрузчика

13. Переключите сетевой кабель из гнезда WAN в гнездо LAN1 маршрутизатора.

Важно: во время выполнения следующих шагов не отключайте сетевой кабель и не выключайте питание!

Установите IP-адрес 192.168.1.2 и маску 255.255.225.0.
Подключитесь телнетом к адресу 192.168.1.1 и порту 9000.

Когда сессия будет установлена, выполните следующие шаги:

14. в консоли:

DD-WRT>fconfig -i
Initialize non-volatile configuration - continue (y/n)?y
Run script at boot: false
Use BOOTP for network configuration: true
Default server IP address:
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)?y

… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0×80ff0000-0×81000000 at 0xbffe0000: .

DD-WRT> fis init 
About to initialize [format] FLASH image system - continue (y/n)? y 
*** Initialize FLASH Image System 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×807f0000-0×80800000 at 0xbffe0000: . 

DD-WRT> ip_address -h 192.168.1.2 
Default server: 192.168.1.23 

DD-WRT> load -r -b %{FREEMEMLO} ap61.rom 
Using default protocol (TFTP) 
Raw file loaded 0×80080000-0×800a8717, assumed entry at 0×80080000 

DD-WRT> fis create -l 0×30000 -e 0xbfc00000 RedBoot
An image named ‘RedBoot’ exists - continue (y/n)? y 
… Erase from 0xbfc00000-0xbfc30000: … 
… Program from 0×80080000-0×800a8718 at 0xbfc00000: … 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×807f0000-0×80800000 at 0xbffe0000: . 

DD-WRT> reset

После этого ваш маршрутизатор перезагрузится и сессия прервется. Снова подключитесь телнетом к адресу 192.168.1.1 и порту 9000 после того, как маршрутизатор перезапустится и будет ждать ваших команд (на это нужно примерно 30 секунд).

Загрузка новой прошивки

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

Команды fis create выполняются достаточно долго, наберитесь терпения и не прерывайте процесс.

DD-WRT> ip_address -h 192.168.1.2 
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0 
Default server: 192.168.1.2 

DD-WRT> fis init 
About to initialize [format] FLASH image system - continue (y/n)? y 
*** Initialize FLASH Image System 
… Erase from 0xbfc30000-0xbffe0000: ………………………………………………….. 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . 

DD-WRT> load -r -b 0×80041000 linux.bin 
Using default protocol (TFTP) 
Raw file loaded 0×80041000-0×803cffff, assumed entry at 0×80041000 

DD-WRT> fis create linux 
… Erase from 0xbfc30000-0xbffbf000: ………………………………………………… 
… Program from 0×80041000-0×803d0000 at 0xbfc30000: ………………………………………………… 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . 

DD-WRT> fconfig boot_script true 
boot_script: Setting to true 
Update RedBoot non-volatile configuration - continue (y/n)? y 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . 

DD-WRT> fconfig boot_script_timeout 3 
boot_script_timeout: Setting to 3 
Update RedBoot non-volatile configuration - continue (y/n)? y 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . 

DD-WRT> fconfig bootp false 
bootp: Setting to false 
Update RedBoot non-volatile configuration - continue (y/n)? y 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . 

DD-WRT> fconfig 
Run script at boot: true 
Boot script: 
.. fis load -l vmlinux.bin.17
.. exec 
Enter script, terminate with empty line 

>> fis load -l linux 
>> exec 
>> 

Boot script timeout (1000ms resolution): 3 
Use BOOTP for network configuration: false 
Default server IP address: 
Console baud rate: 9600 
GDB connection port: 9000 
Force console for special debug messages: false 
Network debug at boot time: false 
Update RedBoot non-volatile configuration - continue (y/n)? y 
… Erase from 0xbffe0000-0xbfff0000: . 
… Program from 0×80ff0000-0×81000000 at 0xbffe0000: . 

DD-WRT> ip_address -h 192.168.1.1  

DD-WRT> reset


Роутер перезагрузится. В процессе перезагрузки он может мигать светодиодами и не отвечать на любые запросы в течении минут эдак n-дцати (у меня все прошло за <5 мин.).
Когда загорится лампочка WLAN — дело сделано!

Можно коннектиться браузером на 192.168.1.1
Имя пользователя и пароль по умолчанию - «root» и «admin» соответственно (без кавычек).

Замечание: Если ваш маршрутизатор не может получить IP-адрес от модема – не беспокойтесь. Это известная ошибка в DD-WRT. Чтобы выйти из положения, выполните следующие шаги:
1. Отключите сетевой кабель, соединяющий модем и DIR-300.
2. Перезагрузите модем и маршрутизатор и дождитесь окончания их загрузки.
3. Подключите сетевой кабель.

Замечание: если вы хотите изменить значение «Run script on boot» с false на true, выполните следующую команду перед командой fcohfig:

fconfig boot_script true

[edit] Рекомендации по выбору прошивки

Рекомендую шить DD-WRT v24PreSP2 На момент написания последней была прошивка от 14 марта 09 Для заливки вам потребуются файлы

ap61.ram - Загрузчик ap61.rom - Образ загрузчика для записи в устройство linux.bin - Непосредственно образ (именно его ищем в новых каталогах) tftpsrv.zip - TFTP Сервер

Больше из файлов вам ничего не потребуется В обновленных прошивках файлы загрузчиков отсутствуют рекомендую их взять из каталога

DD-WRT v24 RC5

загрузчики из каталога

DD-WRT v24 SP1

не захотели корректно работать на моем экземпляре устройства.

Причем DD-WRT v24PreSP2 - уже есет в своем составе Русскую локализацию, чем я был приятно удивлен включается выбором языка интерфейса в закладке администрирование, начинает действовать при обновлении странички в браузере.

[edit] Восстановление фирменной прошивки

Оригинал англоязычной статья служившей мне руководством http://wi-fi.na.by/

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

Начало:

1. Вам потребуется оригинальный загрузчик DIR-300 который Вы можете скачать здесь http://www.shadowandy.net/wp/wp-content/uploads/dir300redboot.zip или с одного из зеркал

ftp://ftp.dlink.cz/dir/dir-300/driver_software/dir-300_sw_revA_redboot_all_en_20080307.zip

ftp://ftp.dlink.pl/dir/dir-300/driver_software/dir-300_sw_revA_redboot_all_en_20080307.zip

2. Также Вам потребуется файл конфигурации устройства shadowandy_board_config.bin, который необходимо создать с помощью конструктора расположенного по данной ссылке http://www.shadowandy.net/2009/02/generating-dir-300s-board-config.htm (для генерации файла Вам необходимо знать MAC ID и PIN коды, которые присутствуют на наклейках с нижней стороны устройства.) после того как Вы введете нужные данные в конструкторе, будет предложено сохранить файл на диске.

3. Запускаем TFTP сервер для возможности заливать в устройства файлы

Установка загрузчика (RedBoot): Отступление - в большенстве описаний, и оригинал статьи не исключение, необходимо по ходу перепрошивки устройства менять IP адрес вашего ПК, рекомендую воспользоваться кнопкой "Альтернативная конфигурация" в свойствах TCP/IP протокола вашей сетевой карты и сразу прописать следующие адреса и маски: 192.168.20.2/24 (255.255.255.0) 192.168.1.2/24 192.168.0.2/24 Это позволит не Беспокоиться о том, правильный ли в данный момент времени у Вас адрес или нет.

1. Приготовьтесь подключиться телнетом к 192.168.1.1, port 9000, это можно сделать коммандой putty.exe telnet://192.168.1.1:9000 Я в свою очередь подготовил следующий пакетный файл:

connect1.bat

rem echo off

:start

ping 192.168.1.1 -n 1 -w 1 > NULL

IF ERRORLEVEL 1 goto start

break

putty.exe telnet://192.168.1.1:9000 -m redboot.txt

также нам понадобится еще один пакетный файл

connect20.bat

rem echo off

:start

ping 192.168.20.81 -n 1 -w 1 > NULL

IF ERRORLEVEL 1 goto start

break

putty.exe telnet://192.168.20.81:9000 -m redboot.txt


файл redboot.txt, как и в случае заливки DD-WRT содержит два символа - ^C

Теперь Мы готовы приступить к восстановлению оригинальной прошивки - Подключаем ПК к LAN порту - Подаем питание на устройство - запускаем connect1.bat

Через несколько секунд появится приветствие

DD-WRT> ip_address -h 192.168.1.2

Default server: 192.168.1.2

DD-WRT> fis init

About to initialize [format] FLASH image system – continue (y/n)? y

*** Initialize FLASH Image System

… Erase from 0xbffe0000-0xbfff0000: .

… Program from 0×80ff0000-0×81000000 at 0xbffe0000: .

DD-WRT> load -r -b %{FREEMEMLO} dir300redboot.rom

Using default protocol (TFTP)

Raw file loaded 0×80040800-0×800607ff, assumed entry at 0×80040800

DD-WRT> fis create -l 0×30000 -e 0xbfc00000 RedBoot

An image named ‘RedBoot’ exists – continue (y/n)? y

… Erase from 0xbfc00000-0xbfc30000: …

… Program from 0×80040800-0×80060800 at 0xbfc00000: ..

… Erase from 0xbffe0000-0xbfff0000: .

… Program from 0×80ff0000-0×81000000 at 0xbffe0000: .

DD-WRT> reset

После введенных комманд потребуется около 30 сек на перезагрузку устройства

Переключаем кабель в порт WAN, подаем питание и запускаем connect20.bat ждем соединения с устройством и приглашения

RedBoot> load -r -b %{FREEMEMLO} shadowandy_board_config.bin

Using default protocol (TFTP)

Raw file loaded 0×80036400-0×800463ff, assumed entry at 0×80036400

RedBoot> fwrite -f 0xbfff0000 -b 0×80036400 -l 0×10000 -e 0×80036400

About to write image into flash – continue (y/n)? y

… Erase from 0xbfff0000-0xc0000000: .

… Program from 0×80036400-0×80046400 at 0xbfff0000: .

update image info..

Update RedBoot non-volatile configuration – continue (y/n)? y

RedBoot> reset

Теперь в пору скачать с официального сайта компании D-link, если конечно это еще не сделано, последнюю актуальную фпрошивку и языковой файл.

Кабель должен быть подключен в порт WAN. Подайте питание на устройство, подождите пока оно загрузится и подключитесь WEB браузером к хосту http://192.168.20.81 Вы увидите следующее: Image:Http://www.shadowandy.net/wp/wp-content/uploads/dir300originalfirmware01small.gif остается лишь найти сохраненую оригинальную прошивку устройства и залить ее.

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

- Нажать на 30 сек кнопку сброс устройства

- запустить connect20.bat

- дождаться приглашения и выполнить следующее


RedBoot> fconfig img_entry_addr 0×80040000

img_entry_addr: Setting to 0×80040000

Update RedBoot non-volatile configuration – continue (y/n)? y

… Erase from 0xbfff0000-0xbfffffff: .

… Program from 0×80036400-0×80046400 at 0xbfff0000: .

RedBoot> fconfig img_flash_addr 0xbfc20000

img_flash_addr: Setting to 0xbfc20000

Update RedBoot non-volatile configuration – continue (y/n)? y

… Erase from 0xbfff0000-0xbfffffff: .

… Program from 0×80036400-0×80046400 at 0xbfff0000: .

RedBoot> fconfig img_length 0×003c0000

img_length: Setting to 0×003c0000

Update RedBoot non-volatile configuration – continue (y/n)? y

… Erase from 0xbfff0000-0xbfffffff: .

… Program from 0×80036400-0×80046400 at 0xbfff0000: .

После этого вы можете отключить питание, переключить кабель в любой из LAN портов. Подайте питание на устройство и подключитесь к нему через браузер по адресу 192.168.0.1 вы увидите следующее: [2]

После чего остается залогиниться учетными данными по умолчанию (смотрите наклейку на вашем устройстве) и залить языковой модуль. Устройство вернулось к своему первоначальному виду.

Удачи вам!

P.S. Возникла необходимость откатится на оригинальную прошивку, хочу оговориться, что процедуру пришлось повторить дважды т.к. с первого раза MAC адрес устройства не был восстановлен :( Вероятно мои действия имели какую либо ошибку.