Перед тем, как приступить к загрузке, учтите, что:
- загрузка сторонних прошивок лишает вас фирменной гарантии 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
Теперь у вас новый DIR-400!
Last edited by YuriKr on Wed Dec 24, 2008 15:40; edited 1 time in total
1. Прежде всего нам необходимы 2 файла: vmlinux.bin.l7 and rootfs (см. архив во вложении), а также Putty и любой tftp сервер.
2. Помещаем vmlinux.bin.l7 and rootfs в корневую папку tftp сервера и стартуем его.
3. Меняем ip адрес сетевой карты на 192.168.0.99 (или любой другой в диапазоне 192.168.0.2-192.168.0.254) и подключаем компьютер к WAN порту маршрутизатора (если на маршрутизатор когда либо устанавливалась бета оригинальной прошивки версии 1.02В07, что требовало перепрошивки RedBoot, то маршрутизатор будет открывать 9000 порт на LAN интерфейсе и в данном случае компьютер нужно подключить к LAN соответственно).
4. Запускаем ping 192.168.0.1 -t.
5. Запускаем Putty, выбираем тип соединения telnet. IP: 192.168.0.1, Port: 9000.
6. Сбрасываем маршрутизатор включением-выключением питания.
7. В окне командной строки наблюдаем за результатами пинга и сразу после второго успешного пинга устанавливаем соединение в Putty. Если соединение не установилось, закрываем сессию Putty и повторяем с 5 шага.
8. Далее приведен лог Putty. Красным выделены команды, которые необходимо набрать в консоли Putty.
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2008.07.08 23:40:49 =~=~=~=~=~=~=~=~=~=~=~=
== Executing boot script in 0.060 seconds - enter ^C to abort
^C
RedBoot> ip_address -h 192.168.0.99нажмите Enter
IP: 192.168.0.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.0.99
RedBoot> fis initнажмите Enter
About to initialize [format] FLASH image system - continue (y/n)? yнажмите Enter
*** Initialize FLASH Image System
And a descriptor for the configuration data size = 10000
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> load -r -b 0x80041000 vmlinux.bin.l7нажмите Enter
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x800d0fff, assumed entry at 0x80041000
RedBoot> fis create vmlinux.bin.l7нажмите Enter
... Erase from 0xbfc40000-0xbfcd0000: .........
... Program from 0x80041000-0x800d1000 at 0xbfc40000: .........
prog_ok
flash_addr = 0xbfc40000
mem_addr = 0x80041000
entry_addr = 0x80041000
length = 0x90000
img_size = 0x90000
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> load -r -b 0x80041000 rootfsнажмите Enter
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x80350fff, assumed entry at 0x80041000
RedBoot> fis create -l 0x310000 -f 0xbfcd0000 -e 0x00000000 -r 0xbfcd0000 rootfsнажмите Enter
... Erase from 0xbfcd0000-0xbffe0000: .................................................
... Program from 0x80041000-0x80351000 at 0xbfcd0000: .................................................
prog_ok
flash_addr = 0xbfcd0000
mem_addr = 0xbfcd0000
entry_addr = 0x0
length = 0x310000
img_size = 0x310000
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> fis listнажмите Enter
Name FLASH addr Mem addr Length Entry point
RedBoot 0xBFC00000 0xBFC00000 0x00030000 0x00000000
Config 0xBFC30000 0xBFC30000 0x00010000 0x00000000
vmlinux.bin.l7 0xBFC40000 0x80041000 0x00090000 0x80041000
rootfs 0xBFCD0000 0xBFCD0000 0x00310000 0x00000000
FIS directory 0xBFFE0000 0xBFFE0000 0x0000F000 0x00000000
Calibration 0xBFFF0000 0xBFFF0000 0x00010000 0x00000000
RedBoot> fconfigнажмите Enter
Run script at boot: true нажмите Enter
Boot script:
.. fis load -l linux
.. exec
Enter script, terminate with empty line
>> fis load -l vmlinux.bin.l7нажмите Enter
>> goнажмите Enter
>> нажмите Enter
Boot script timeout (1000ms resolution): 2 нажмите Enter
Use BOOTP for network configuration: false нажмите Enter
Gateway IP address: нажмите Enter
Local IP address: 192.168.0.1 нажмите Enter
Local IP address mask: нажмите Enter
Default server IP address: 192.168.0.100 нажмите 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: .
RedBoot> resetнажмите Enter
9. После перезагрузки мы получаем маршрутизатор с оригинальной прошивкой версии 1.0.
10. Для дальнейшей работы с роутером рекомендуется в настройках сетевой карты установить автоматическое получение ip адреса.
Last edited by dmitry1972 on Sat Dec 13, 2008 8:48; edited 1 time in total
Насчет же стикового топика - вроде это можно только при создании топика определить, а уже имеющийся прилепить у меня что-то не получается.
Я думаю - надо русскую вики делать и все важные материалы помещать туда. Так оно, наверно, будет не хуже. А кое-что ценное, что туда можно поместить, на форуме уже есть (и переводы, и оригинальные материалы).
Кстати, а как 400-й ведет себя при обратной перепрошивке? Все нормально? А то на 300-й нарекания: у кого-то MAC пропадает, у кого-то WPA не работает.
Joined: 06 May 2008 Posts: 26 Location: Chelyabinsk, Russia
Posted: Sat Dec 13, 2008 8:55 Post subject:
bologov wrote:
YuriKr wrote:
Кстати, а как 400-й ведет себя при обратной перепрошивке? Все нормально?
Там все нормально с возвратом, т.к оригинальный redboot при прошивки не затрагивается.
все обстоит именно так. поскольку DIR-300 изначально имеет обчекрыженный RedBoot, то для прошивки dd-wrt его необходимо подменять. к счастью в DIR-400 этого делать не нужно, соответственно куча проблем отпадает.
YuriKr,
я подкорявил инструкцию по восстановлению на предмет того, что RedBoot может быть доступен не на WAN порту, а на LAN. в твою инструкцию эти дополнения тоже нужно внести.
YuriKr,
я подкорявил инструкцию по восстановлению на предмет того, что RedBoot может быть доступен не на WAN порту, а на LAN. в твою инструкцию эти дополнения тоже нужно внести.
(Прошу прощения за неоперативную реакцию, несколько закрутился со всякими делами )
А где именно и что подправить? Напишите, что на что заменить...
Ну вот, час от часу не легче. Попытался прошиться на последнюю PreSP2 от 18 декабря, все команды вроде удачно прошли, только некоторые цифры не совпали, но после reset'a ни фига не заработало, он не выдаёт айпишники и всё время перегружается. Прикладываю файл с копипастом putty-сессии.
Joined: 06 May 2008 Posts: 26 Location: Chelyabinsk, Russia
Posted: Wed Dec 24, 2008 12:31 Post subject:
YuriKr wrote:
А где именно и что подправить? Напишите, что на что заменить...
что:
Соединение устройств
1. Соедините сетевым кабелем сетевой разъем вашего компьютера и порт WAN (именно WAN!) DIR-400.
на что:
подключаем компьютер к WAN порту маршрутизатора (если на маршрутизатор когда либо устанавливалась бета оригинальной прошивки версии 1.02В07, что требовало перепрошивки RedBoot, то маршрутизатор будет открывать 9000 порт на LAN интерфейсе и в данном случае компьютер нужно подключить к LAN соответственно).
сейчас DIR-400 прошит 24 sp1 rc7, хочу перешить на pre-sp2, после заливки через веб-морду ничего не меняется.. резет после этого жал 30 сек.. linux.bin каким макаром заливать? Что я вообще не так делаю?
сейчас DIR-400 прошит 24 sp1 rc7, хочу перешить на pre-sp2, после заливки через веб-морду ничего не меняется.. резет после этого жал 30 сек.. linux.bin каким макаром заливать? Что я вообще не так делаю?
Насколько понимаю, через веб-морду надо лить не linux.bin, а firmware.bin.