Прошивка DD-WRT для D-Link, или Linux опять удивляет

DD-WRTХех… полгода назад приобрел себе аппарат D-Link 400… Кто не понял о чем речь - нужен мне был wifi-маршрутизатор и черт надоумил меня купить именно эту модель - характеристики понравились а вот отзывы почитать видимо не судьба была… Смысл проблемы: пока ноутбук был один и скорость канала была невелика работа особых нареканий не вызывала однако когда появился еще один лэптоп да в плюс к тому канал доступа был расширен с 256 Кбит аж до 5 Мбит коробку захотелось выкинуть чуть ли не в тот же день: постоянные подвисания заметная обрезка скорости (особенно на upload)…

Прежде чем размахнуться и запустить ставший бесполезным ящичек от D-Link я решил-таки полазить по инету в поисках решения внезапно возникшей проблемы… Предложения обновить прошивку с различных сайтов поддержки D-Link особо ничем не помогли - все проблемы остались в той или другой степени… Таким образом остался один выбор - потерять гарантию (нафиг она мне нужна если прибор не пашет а поддержка сетует на свою же прошивку?!) и поставить восхваляемую многими прошивку DD-WRT (к слову - эта прошивка есть Линукс).

Прочитав здесь имеются небольшие но все-таки проблемы с установкой прошивки из-под Linux я решил даже не пробовать а перегрузился из Arch'a в Windows и занялся собственно прошивкой.

Саму прошивку можно найти в этом месте желательно выбирать последнюю на текущий момент версию…

Перед тем как приступить к загрузке учтите что:

  • загрузка сторонних прошивок лишает вас фирменной гарантии D-Link;
  • ни авторы руководств ни я ни господь бог не несут никакой ответственности за все что может произойти с вашим устройством при выполнении нижеописанной процедуры.

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

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

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

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

Делайте так.. Сперва откройте окно командной строки и в командной строке выдайте команду непрерывного пингования 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 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

После перезагрузки у Вас будет новый D-Link! Зайти в панель управления можно набрав в любом браузере http://192.168.1.1/ - Вас сразу спросят о логине и пароле для входа после чего можно наслаждаться новыми возможностями и стабильностью :) по-крайней мере за последние две недели у меня не разу не перегружался маршрутизатор со скоростью и делением канала на два ноутбука - также все ОК :)

Удачи :)

ПС: если что как вернуть все назад описано тут


Оригинал статьи http://pingvinoff.net/2009/05/03/proshivka-dd-wrt-dlya-d-link-ili-linux-wifi-udivlyaet/

0 комментариев

Оставить комментарий