×
Внимание, мошенник-работодатель (10 авг 2017)

Вниманию программистов Санкт-Петербурга, на SuperJob-е вновь активизировался Семен Григорьевич Шумейко..

Вопрос Перепрошиваем D-Link 400

Больше
6 года 6 мес. назад - 6 года 6 мес. назад #1 от Unior82
Unior82 создал эту тему: Перепрошиваем D-Link 400
Прошивку берем здесь .

Помните, что:
1. Загрузка сторонних прошивок лишает вас фирменной гарантии D-Link;
2. Все нижеописанное вы делаете сугубо на свой страх и риск.[/

Для прошивки необходимо скачать файл linux.bin из папки прошивки для DIR-400; сервер TFTP, который можно найти там же; PuTTY (telnet-клиент) версии 0.60 или более поздне.

Соединяем сетевым кабелем разъем вашего ПК и порт WAN(!) DIR-400. Однако, если на маршрутизатор когда-либо устанавливалась бета-версия оригинальной прошивки версии 1.02В07 (она потребовала перепрошивки RedBoot), то маршрутизатор будет открывать 9000 порт на LAN интерфейсе и в данном случае компьютер нужно подключить к LAN соответственно. (Питание маршрутизатора пока не включайте.)

Установите IP-адрес вашего компьютера 192.168.0.2 и маску подсети 255.255.255.0. Выключите питание маршрутизатора…

В отличие от, например, DIR-300, у DIR-400 нет обходных способов входа в телнет. Старый фокус с нажатием и удержанием кнопки Reset дает вход не в телнет, а в веб-сервер аварийного восстановления. Нам придется определить, в какой момент следует входить в телнет, ибо временной интервал, в течение которого возможен такой вход, составляет всего лишь две секунды.

Стало быть, так. Запускаем cmd и даем команду непрерывного пингования DIR-400:

ping -t 192.168.0.1

Введите в PuTTY адрес 192.168.0.1 и порт 9000, но сессию пока не запускайте.

Далее, включите питание DIR-400.

Когда увидите первый успешный пинг (бывает, что нужно ждать второго – определяйте экспериментально) - запускайте телнет-сессию.

Если прошло успешно - на экране появится следующее:

== Executing boot script in 1.140 seconds – enter ^C to abort
^C
RedBoot>

Запустите сервер TFTP и положите файл linux.bin в его папку.

Помните, что некоторые команды требуют значительного времени (до 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 0×80041000 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

Обсуждение на хабрахабре
Последнее редактирование: 6 года 6 мес. назад от p.rishard.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.