Перед тем, как приступить к загрузке, учтите, что:
- загрузка сторонних прошивок лишает вас фирменной гарантии D-Link; - ни авторы руководств, ни переводчик не несут никакой ответственности за все, что может произойти с вашим устройством при выполнении нижеописанной процедуры.
Что вам потребуется:
- Файл linux.bin, который можно скачать из папки прошивки для DIR-400; - Сервер TFTP, который можно скачать оттуда же (или другой, например, PumpKIN); - PuTTY - телнет-клиент, который можно скачать с сайта www.putty.org (или другой; однако использование встроенного телнет-клиента Windows не рекомендуется). Распакуйте сервер и поместите его в папку по вашему выбору.
Соединение устройств
1. Соедините сетевым кабелем сетевой разъем вашего компьютера и порт WAN (!) DIR-400. Однако если на маршрутизатор когда-либо устанавливалась бета оригинальной прошивки версии 1.02В07, что потребовало перепрошивки RedBoot, то маршрутизатор будет открывать 9000 порт на LAN интерфейсе и в данном случае компьютер нужно подключить к LAN соответственно. (Питание маршрутизатора пока не включайте.) 2. Установите IP-адрес вашего компьютера 192.168.0.2 и маску подсети 255.255.255.0.
Определение момента входа в телнет
В отличие от DIR-300, у DIR-400 нет обходных способов входа в телнет. Старый фокус с нажатием и удержанием кнопки Reset дает вход не в телнет, а в веб-сервер аварийного восстановления. Нам придется определить, в какой момент следует входить в телнет, ибо временной интервал, в течение которого возможен такой вход, составляет всего лишь две секунды.
1. Откройте окно командной строки. 2. Выдайте команду непрерывного пингования DIR-400: ping -t 192.168.0.1 3. Включите питание DIR-400. 4. Определите, сколько времени прошло от момента включения питания до первого успешного пинга.
Способа гарантированного попадания в Redboot, к сожалению, нет. У меня получилось, что от включения питания до появления ответа на пинг проходит примерно 10 секунд. Имейте в виду, что я не пользовался секундомером, а считал секунды вслух.
Соединение с RedBoot
Теперь, когда у нас есть результат предыдущего эксперимента, мы готовы соединиться телнетом с DIR-400. Процесс достаточно прост:
- включите питание DIR-400; - запустите телнет-сессию на адрес 192.168.0.1 и порт 9000 через примерно то же время после включения, которое вы определили ранее (т.е. время от включения питания до первого успешного пинга).
Может быть, вы сочтете нужным открыть несколько окон PuTTY и запускать соединение в каждом из них по очереди - какое-нибудь да соединится. Когда вы подключитесь к RedBoot, вы увидите на экране примерно следующее:
== Executing boot script in 1.140 seconds - enter ^C to abort ^C RedBoot>
Альтернативный способ подключения к RedBoot
- подготовьте в PuTTY телнет-сессию на адрес 192.168.0.1 и порт 9000. - Откройте рядом с PuTTY окно командной строки и запустите в нем команду непрерывного пингования адреса 192.168.0.1 ping 192.168.0.1 -n 9000 -t - Включите питание DIR-400, дождитесь второго успешного пинга и немедленно после этого запустите телнет-сессию. - Нажмите Ctrl-C, как только вы увидите на экране сообщение о выполнении бут-скрипта (если у вас PuTTY версии 0.60 или более поздней, то это необязательно).
Запуск сервера TFTP
Запустите сервер TFTP и положите файл linux.bin в его папку.
Конфигурирование клиента PuTTY
1. Щелкните правой кнопкой мыши по заголовку окна PuTTY. 2. Выберите пункт «Change Setings...» 3. В окне «PuTTY Reconfiguration» установите для параметра «Close window on exit» значение «Never». 4. Нажмите кнопку «Apply» («Применить»)
Загрузка DD-WRT
В этом разделе описано, как загрузить прошивку DD-WRT в DIR-400. Помните, что некоторые команды требуют значительного времени (до 5 минут) для завершения. Поэтому НЕ ВЫКЛЮЧАЙТЕ устройство во время выполнения команд fis create. == Executing boot script in 0.130 seconds - enter ^C to abort ^C RedBoot> ip_address -l 192.168.0.1/24 -h 192.168.0.2 IP: 192.168.0.1/255.255.255.0, Gateway: 0.0.0.0 Default server: 192.168.0.2 RedBoot> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System And a descriptor for the configuration data size = 10000 … Erase from 0xbffe0000-0xbfff0000: . … Program from 0×80ff0000-0×81000000 at 0xbffe0000: . RedBoot> load -r -b 0x80041000 linux.bin Using default protocol (TFTP) Raw file loaded 0×80041000-0×803cffff, assumed entry at 0×80041000 RedBoot> fis create linux … Erase from 0xbfc40000-0xbffcf000: ………………………………………………… … Program from 0×80041000-0×803d0000 at 0xbfc40000: ………………………………………………… prog_ok flash_addr = 0xbfc40000 mem_addr = 0×80041000 entry_addr = 0×80041000 length = 0×38f000 img_size = 0×38f000 … Erase from 0xbffe0000-0xbfff0000: . … Program from 0×80ff0000-0×81000000 at 0xbffe0000: . RedBoot> fconfig Run script at boot: true Boot script: .. fis load -l vmlinux.bin.l7 .. go Enter script, terminate with empty line >> fis load -l linux >> exec >> Boot script timeout (1000ms resolution): 2 Use BOOTP for network configuration: false Gateway IP address: Local IP address: 192.168.0.1 Local IP address mask: Default server IP address: 192.168.0.100 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: . RedBoot> reset