Прошивка D-Link DIR-300 DD-WRT
Данная инструкция относится к маршрутизатору D-Link DIR-300, не путать с DIR-300NRU. Тем, кто собрался выбросить свой D-Link DIR-300. Не выбрасывайте!!! Из него можно сделать вполне сносный маршрутизатор, прошив его альтернативной прошивкой DD-WRT. Во многих инструкциях в Интернете есть неточности, поэтому мы решили предложить Вам инструкцию по прошивке, собственноручно успешно использованную.
На собственном опыте: проблемы в этой прошивке — не клонирует MAC-адреса (правда я сначала поставил не рекомендуемую версию прошивки, когда повторно прошил через web-интерфейс рекомендуемой, проблема исчезла), при отключении Wi-Fi на маршрутизаторе остальная сеть тоже перестаёт работать. Имейте ввиду, по умолчанию в DD-WRT включен фаервол. Так же может измениться MAC-адрес маршрутизатора.
Внимание! Все действия Вы производите только на свой страх и риск. Администрация сайта не несет ответственности за повреждения Ваших устройств. Полный откат к заводской прошивке будет невозможен. После установки прошивки DD-WRT вы лишаетесь гарантии производителя на свое оборудование.
Подготовка к прошивке:
1. Скачиваем с сайта dd-wrt.com последнюю прошивку для маршрутизатора: кликаем Router Database, в поисковой строчке вводим DIR-300, качаем файлы рекомендованной версии прошивки. При выборе прошивки не забываем глянуть на задней стороне роутера его ревизию (A1 или B1).
2. Скачиваем TFTP-Сервер. Например tftp32.
3. Так же для данной операции нам необходим telnet-клиент. Пользовался Putty 0.60(версия не принципиальна).
Последовательность действий:
шаг 1. Устанавливаем TFTP-сервер.
шаг 2. Файлы прошивки кидаем в папку установленного TFTP-сервера. Нам необходимы файлы ap61.rom, ap61.ram, linux.bin, файл dir300-firmware.bin используется для перепрошивки роутера через web-интерфейс в случае уже установленной DD-WRT.
шаг 3. Подключаем маршрутизатор DIR-300 к компьютеру, но не через LAN а через WAN-порт (он помечен как Internet). Отключаем питание маршрутизатора (если оно было подключено).
шаг 4. Установливаем ip-адрес компьютера: 192.168.20.82, маска: 255.255.255.0, шлюз: 192.168.20.81.
Примечание: в зависимости от версии устанавливаемой прошивки, в некоторых случаях ip-адрес компьютера необходимо установить 192.168.20.80 , маска: 255.255.255.0, шлюз: 192.168.20.81, уточнить можно кликнув файл dir-300_flashing.txt(находится там где качали прошивку).
шаг 5. Теперь нам надо войти в режим аварийного восстановления прошивки. Для этого нажимаем и удерживаем кнопку RESET (на задней панели маршрутизатора). Не отпуская ее, подключаем питание. Ждем 30 секунд с момента включения маршрутизатора и отпускаем RESET.
шаг 6. Запускаем TFTP-сервер. Запускаем телнет-клиент и подключаемся к 192.168.20.81 на порт 9000 по telnet(кнопочка ниже строчки с адресом). При измении протокола сбрасывается значение порта, перепроверьте после клика на telnet. Если всё сделали правильно, то в окне появится приветствие командной строки сервисного режима модема – надпись RedBoot> («возможно с первого раза и не получится — сервисный режим ждет подключения в течение всего 1 секунды примерно через 5 секунд после начала загрузки маршрутизатора, если ее нет – то в одном из шагов допушена ошибка» — подозреваю, что эта строчка лишняя в инструкции и относится она к другой модели, например к DIR-400, при его прошивке вход в RedBoot осуществляется немного иначе).
Далее просьба не торопиться, выполнение команд требует времени. <Enter> — это означает, что необходимо нажать клавишу Enter на клавиатуре.
шаг 7. Загружаем в маршрутизатор временный загрузчик следующей командой: RedBoot> load ap61.ram <Enter>
Ответ на эту команду должен быть таким:
Using default protocol (TFTP)
Entry point: 0x800410bc, address range: 0x80041000-0x800680d8
Следующая команда:
RedBoot> go <Enter>
Если телнет-соединение вдруг прервется – это нормально. Главное – не перезагружать маршрутизатор и не отключать его питание.
шаг 8. Переключаем сетевой кабель из разъёма WAN в разъём LAN1 маршрутизатора.
шаг 9. Теперь меняем ip-адрес компьютера на 192.168.1.2, маска: 255.255.255.0, шлюз: 192.168.1.1.
шаг 10. Подключаемся телнетом к 192.168.1.1 на порт 9000.
Если соединение установилось – вводим (именно вводим, а не копиуем) следующие команды:
DD-WRT> fconfig -i <Enter>
Initialize non-volatile configuration – continue (y/n)? y <Enter>
Run script at boot: false <Enter>
Use BOOTP for network configuration: true <Enter>
Default server IP address: <Enter>
Console baud rate: 9600 <Enter>
GDB connection port: 9000 <Enter>
Force console for special debug messages: false <Enter>
Network debug at boot time: false <Enter>
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fis init <Enter>
About to initialize [format] FLASH image system – continue (y/n)? y <Enter>
Initialize FLASH Image System
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x807f0000-0x80800000 at 0xbffe0000: .
DD-WRT> ip_address -h 192.168.1.2 <Enter>
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.2
DD-WRT> load -r -b %{FREEMEMLO} ap61.rom <Enter>
Using default protocol (TFTP)
Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000
DD-WRT> fis create -l 0x30000 -e 0xbfc00000 RedBoot <Enter>
(здесть ключ -l означает первую букву слова «linux»)
An image named ‘RedBoot’ exists – continue (y/n)? y <Enter>
… Erase from 0xbfc00000-0xbfc30000: …
… Program from 0x80080000-0x800a8718 at 0xbfc00000: …
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x807f0000-0x80800000 at 0xbffe0000: .
DD-WRT> reset <Enter>
После последней команды маршрутизатор уйдет в перезагрузку.
шаг 11. Снова подключаемся телнетом к адресу 192.168.1.1 и порту 9000 после перезапуска маршрутизатора. При этом главное – не отключать сетевой кабель и кабель питания.
шаг 12. Вводим следующие комманды:
DD-WRT> ip_address -h 192.168.1.2 <Enter>
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.2
DD-WRT> fis init <Enter>
About to initialize [format] FLASH image system – continue (y/n)? y <Enter>
Initialize FLASH Image System
… Erase from 0xbfc30000-0xbffe0000: …………………………………………………..
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> load -r -b 0x80041000 linux.bin <Enter>
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x803cffff, assumed entry at 0x80041000
DD-WRT> fis create linux <Enter>
… Erase from 0xbfc30000-0xbffbf000: …………………………………………………
… Program from 0x80041000-0x803d0000 at 0xbfc30000:…………………………………………………
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig boot_script true <Enter>
boot_script: Setting to true
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig boot_script_timeout 4 <Enter>
boot_script_timeout: Setting to 4 <Enter>
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig bootp false <Enter>
bootp: Setting to false
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig <Enter>
Run script at boot: true
Boot script:
.. fis load -l vmlinux.bin.l7
.. exec
Enter script, terminate with empty line
fis load -l linux <Enter>
exec <Enter>
<Enter> !!! в этом месте нажимаем ENTER на пустой строке !!!
Boot script timeout (1000ms resolution): 4 <Enter>
Use BOOTP for network configuration: false <Enter>
Default server IP address: <Enter>
Console baud rate: 9600 <Enter>
GDB connection port: 9000 <Enter>
Force console for special debug messages: false <Enter>
Network debug at boot time: false <Enter>
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig bootp_my_ip 192.168.1.1 <Enter>
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig bootp_my_ip_mask 255.255.255.0 <Enter>
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fconfig bootp_my_gateway_ip 0.0.0.0 <Enter>
Update RedBoot non-volatile configuration – continue (y/n)? y <Enter>
… Erase from 0xbffe0000-0xbfff0000: .
… Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> reset <Enter>
Маршрутизатор снова уйдет на перезагрузку. Она можем длится от 1 до 5 минут и сопровождаться морганием индикаторов.
шаг 13. Подключайтесь к веб-интерфейсу на 192.168.1.1.
Login: root
Password: admin
Теперь остается только настроить маршрутизатор.
ДО
ПОСЛЕ
З.Ы. В настройках фаервола, если не хотите его отключать, необходимо убрать галочку на фильтрации мультикастовых потоков, чтобы работало IP-TV. В прошивке можно изменить язык, кому на английском неудобно. С тех пор как прошил этой прошивкой забыл про то, что маршрутизатор у меня вообще есть, проблемы вроде потерь пакетов, зависания, частого переподключения ICQ и прочие отсутствуют. Пробовал прошивать DIR-400, попытка была неудачной, работало некорректно(даже рассказывать не хочется), пришлось вернуть на заводскую, хотя даже заводская последняя недоделанная, не работает Port Forvarding, оставил последнюю стабильную(не бета-версию), DIR-400 прошивается через веб интерфейс только в IE и только с очищенным кэшем.