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

Прошиваем маршрутизатор  DIR-300 другой прошивкой DD-WRT.

Подготовка к прошивке:
1. Скачиваем с веб-сайта dd-wrt.com последнюю прошивку для маршрутизатора.
2. Скачиваем и устанавливаем TFTP-Сервер.
3. Для данной операции нам нужен telnet-клиент. В принципе можно пользоваться стандартным клиентом Windows (Запуск -> Выполнить -> cmd -> telnet). Можно пользоваться и кандидатурой — TeraTerm, Putty, SecureCRT.

Внимание! Все деяния Вы производите лишь на собственный ужас и риск. Администрация веб-сайта не несет ответственности за повреждения Ваших устройств.
Последовательность действий:
шаг 1. Распаковываем архив с прошивкой в корне диска С.

шаг 2. Запускаем TFTP-сервер. Указываем ему папку где лежат файлы прошивки.

шаг 3. Подключаем маршрутизатор DIR-300 к компу, но не через LAN а через WAN-порт (он помечен как Internet). Отключаем питание маршрутизатора (если оно было подключено).

шаг 4. Установливаем айпишник компьютера: 192.168.20.82, маска: 255.255.255.0, шлюз: 192.168.20.81.

примечание: зависимо от версии устанавливаемой прошивки,  в неких случаях айпишник компьютера нужно установить 192.168.20.80 , маска: 255.255.255.0, шлюз: 192.168.20.81.

шаг 5. Сейчас нам нужно войти в режим аварийного восстановления прошивки. Для этого жмем и удерживаем кнопку RESET (на задней панели маршрутизатора). Не отпуская ее, подключаем питание. Ждем 30 секунд с момента включения маршрутизатора и отпускаем RESET.

шаг 6. Запускаем телнет-клиент и подключаемся к 192.168.20.81 на порт 9000.
Если всё сделали верно, то в окне появится приветствие командной строчки сервисного режима модема — надпись RedBoot>. Может быть с первого раза и не получится — сервисный режим ожидает подключения в течение всего 1 секунды приблизительно через 5 секунд после начала загрузки маршрутизатора. Если ее нет — то в одном из шагов допушена ошибка.

шаг 7. Загружаем в маршрутизатор временный загрузчик последующей командой:
RedBoot> load ap61.ram

Ответ на эту команду должен быть таким:
Using default protocol (TFTP)
Entry point: 0x800410bc, address range: 0×80041000-0x800680d8

Последующая команда:
RedBoot> go

Если телнет-соединение вдруг прервется – это нормально. Главное — не перезагружать маршрутизатор и не отключать его питание.

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

шаг 9. Сейчас меняем айпишник компьютера на 192.168.1.2, маска: 255.255.255.0, шлюз: 192.168.1.1.

шаг 10. Подключаемся телнетом к 192.168.1.1 на порт 9000.
Если соединение установилось — вводим (конкретно вводим а не копиуем) последующие команды:
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 0x80ff0000-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 0x807f0000-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-0x800a8717, assumed entry at 0×80080000

DD-WRT> fis create -l 0?30000 -e 0xbfc00000 RedBoot
(здесть ключ -l значит первую буковку слова «linux»)

An image named ‘RedBoot’ exists – continue (y/n)? y
… Erase from 0xbfc00000-0xbfc30000: …
… Program from 0×80080000-0x800a8718 at 0xbfc00000: …
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x807f0000-0×80800000 at 0xbffe0000: .
DD-WRT> reset

После последней команды маршрутизатор уйдет в перезагрузку.
шаг 11. Опять подключаемся телнетом к адресу 192.168.1.1 и порту 9000 после перезапуска маршрутизатора.
При всем этом главное — не отключать сетевой кабель и кабель питания.
шаг 12. Вводим последующие комманды:

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 0x80ff0000-0×81000000 at 0xbffe0000: .
DD-WRT> load -r -b 0×80041000 linux.bin
Using default protocol (TFTP)
Raw file loaded 0×80041000-0x803cffff, assumed entry at 0×80041000
DD-WRT> fis create linux
… Erase from 0xbfc30000-0xbffbf000: …………………………………………………
… Program from 0×80041000-0x803d0000 at 0xbfc30000: …………………………………………………
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-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 0x80ff0000-0×81000000 at 0xbffe0000: .
DD-WRT> fconfig boot_script_timeout 4
boot_script_timeout: Setting to 4
Update RedBoot non-volatile configuration – continue (y/n)? y
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-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 0x80ff0000-0×81000000 at 0xbffe0000: .
DD-WRT> fconfig
Run script at boot: true
Boot script:
.. fis load -l vmlinux.bin.l7
.. exec
Enter script, terminate with empty line

>> fis load -l linux
>> exec
>>             !!! в этом месте жмем ENTER на пустой строке !!!
Boot script timeout (1000ms resolution): 4
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 0x80ff0000-0×81000000 at 0xbffe0000: .
DD-WRT> fconfig bootp_my_ip 192.168.1.1
DD-WRT> fconfig bootp_my_ip_mask 255.255.255.0
DD-WRT> fconfig bootp_my_gateway_ip 0.0.0.0
DD-WRT> reset
Маршрутизатор опять уйдет на перезагрузку. Она можем продолжается от 1 до 5 минут и сопровождаться морганием индикаторов. шаг 12. Подключайтесь к веб-интерфейсу на 192.168.1.1.
Login: root
Password: admin
Сейчас остается только настроить маршрутизатор.

UPD. Если у Вас по какой-нибудь причине не выходит перепрошить маршрутизатор DIR-300 вышеуказанным способом, то можно пользоваться вариантом прошивки через CRASH-MODE. Аннотацию по прошивке в креш-режиме можно отыскать тут.

Related posts:

  1. Прошивка dir-620