пʼятницю, 12 грудня 2008 р.

DIR-400 Повернення до офіційної прошивки.


Сталось так,що використовувати D-Link Dir-400 в якості роутера відпала необхідність, і я вирішив повернутися з DD-WRT до офіційної прошивки.
На форумі DD-WRT я знайшов інструкцію по поверненню назад http://www.dd-wrt.com/phpBB2/viewtopic.php?p=190818 . Прочитавши статтю, я так і не зміг зрозуміти де взяти необхідні для цього файли (First you need 2 files: vmlinux.bin.l7 and rootfs. (See attachment)). Attachment'у я небачив. Небачив поки не зареєструвався:). Скачавши файл dir-400_v1_00.zip (в середині були необхідні vmlinux.bin.l7 and rootfs) і дотримуючись наступної інструкції я повернувся до старої офіційної прошивки.
I restored the original firmware with putty, redboot and tftpd.
1.First you need 2 files: vmlinux.bin.l7 and rootfs. (See attachment). Also putty and tftp server.
2.Put vmlinux.bin.l7 and rootfs to root directory of tftp server and start it.
3.Make IP address of your computer is 192.168.0.99 (or or any from range 192.168.0.2-192.168.0.254). And connect your computer network card to the router's WAN port.
4.Run putty, set connection type to telnet. IP: 192.168.0.1, Port: 9000.
5.Start ping 192.168.0.1 -t
6.Restart router with power-off - power-on.
7.After second successful ping reply connect putty. If not works try from step 6 again.
8.putty log:

=~=~=~=~=~=~=~=~=~=~=~= 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 press Enter
IP: 192.168.0.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.0.99
RedBoot> fis init press Enter
About to initialize [format] FLASH image system - continue (y/n)? y press 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 press Enter
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x800d0fff, assumed entry at 0x80041000
RedBoot> fis create vmlinux.bin.l7 press 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 press 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 press 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 press 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 press Enter
Run script at boot: true press Enter
Boot script:
.. fis load -l linux
.. exec
Enter script, terminate with empty line
>> fis load -l vmlinux.bin.l7 press Enter
>> go press Enter
>> press Enter
Boot script timeout (1000ms resolution): 2 press Enter
Use BOOTP for network configuration: false
Gateway IP address: press Enter
Local IP address: 192.168.0.1 press Enter
Local IP address mask: press Enter
Default server IP address: 192.168.0.100 press Enter
Console baud rate: 9600 press Enter
GDB connection port: 9000 press Enter
Force console for special debug messages: false press Enter
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y press Enter
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
RedBoot> reset press Enter
(с) tklim from http://www.dd-wrt.com/phpBB2/viewtopic.php?p=190818

vmlinux.bin.l7 http://www.box.net/shared/v71hny91bu
rootfs http://www.box.net/shared/d79smhr44r

четвер, 11 грудня 2008 р.

D-LINK DIR-400 + DD-WRT

Як писало на сайті D-Link'а ставлячи прошивку стороннього виробника ми втрачаєм гарантію. Я вирішив ризикнути. Користувався інструкцією з сайту http://www.dd-wrt.com , а саме http://www.dd-wrt.com/wiki/index.php/Installation#D-Link_DIR-400 .
Коротка інструкція.
Для роботи нам потрібно Putty, TFTPserver, ну і саму прошивку (linux.bin та dir400-firmware.bin). Копіюєм TFTPserver (tftpsrv.exe) та 2 файли прошивки в одну директорію. Міняєм на роутері ІР на 192.168.0.1, та свою ІР на 192.168.0.2.
Запускаєм Putty та налаштовуєм зєднання на 192.168.0.1 порт 9000, але до роутера ще не підключаемся.
Запускаєм пінг до Д-Лінка Пуск - Виконати - ping -t 192.168.0.1. Не закриваючи вікно з пінгом, переключаемся на Putty і розміщаем вікно так щоб бачити вікно з пінгом. Виключаєм і включаєм живлення роутера і слідкуєм за пінгом до нього. Як тільки бачим 2 вдалих пінга, зразу підкючаємся до нього за допомогою Putty.
Починаєм вводити команди:

RedBoot> ip_address -l 192.168.0.1/24 -h 192.168.0.2 <еntеr>
P: 192.168.0.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.0.2


RedBoot> fis init <еntеr>

About to initialize [format] FLASH image system - continue (y/n)? y
<еntеr>

*** 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
<еntеr>

Using default protocol (TFTP)

Raw file loaded 0×80041000-0×803cffff, assumed entry at 0×80041000


RedBoot> fis create linux
<еntеr>

… 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
<еntеr>


Run script at boot: true <еntеr>

Boot script:

.. fis load -l vmlinux.bin.l7

.. go

Enter script, terminate with empty line


>> fis load -l linux
<еntеr>


>> exec
<еntеr>


>>
<еntеr>


Boot script timeout (1000ms resolution): 2 <еntеr>


Use BOOTP for network configuration: false
<еntеr>


Gateway IP address:
<еntеr>


Local IP address: 192.168.0.1 <еntеr>


Local IP address mask:
<еntеr>


Default server IP address: 192.168.0.100 <еntеr>


Console baud rate: 9600 <еntеr>


GDB connection port: 9000
<еntеr>


Force console for special debug messages: false
<еntеr>


Network debug at boot time: false
<еntеr>


Update RedBoot non-volatile configuration - continue (y/n)? y
<еntеr>

… Erase from 0xbffe0000-0xbfff0000: .

… Program from 0×80ff0000-0×81000000 at 0xbffe0000: .


RedBoot> reset
<еntеr>

Роутер пішов на перезагрузку. Якщо все було зроблено правильно, то приблизно через 2 хв він буде доступний за адресою 192.168.1.1. Зайти на нього можна за адресою http://192.168.1.1/ попередньо змінивши свою ІР на ІР з діапазону 192.168.1.2-192.168.1.254.

В мене щось пішло не так і знайти Д-Лінк за адресою 192.168.1.1 я не зміг, пінг не йшов. Аналогічне було з 192.168.0.1. На роутера світився тільки Power та Lan або Wan порт куди був підключений мій комп. Вичитав в гуглі кілька варіантів:
  1. Гарячий ресет (30/30/30) - при включеному живленні натиснути кнопку ресет на 30 секунд, не відпускаючи її виключити живлення на 30 секунд і, знову ж таки не відпускаючи ресета, включити живлення і протримати ще 30 секунд. Мені не допомогло:(.
  2. Доступ ло полегшеного Web-інтерфейсу - Виставити на компі ІР з діапазону 192.168.0.2 - 192.168.0.254, включити роутер і затиснути ресет доти поки не почне блимати індикатор статусу. Тоді зайти на http://192.168.0.1. Появиться сторінка з можливістю завантаження нової прошивки. Пробував завантажувати linux.bin та dir400-firmware.bin, не завантажувалось взагалі, видавало помилку, прошивки з http://ftp.dlink.ru/pub/Router/DIR-400/Firmware/ завантажувалися до 14-15% тоді роутер перезагружався і повертався в попередній стан - мертвий:)
  3. Пробував закидати прошивку в роутер напряму через tftp: Пуск - Виполнить tftp -i 192.168.0.1 put DIR400A1_FW101B79.bin та tftp -i 192.168.0.1 put DIR400A1_FW101B79.bin. Не допомогло.
  4. Вже думав що потрібно буде перепрошивати через JTAG начитався статей, та зібрався на радіобазар за мікросхемою та платою, але до того не дійшло:)

Чудом вдалось підключитися!!!

Висів запущений TFTPserver, ІР компютера була 192.168.0.2, роутер був виключений. Putty, був налаштований на 192.168.0.1 порт 9000. включивши роутер, декілька разів спробував підключитися до нього. ДОПОМОГЛО! В вікні Putty висвітилось RedBoot>!!!
Ну а далі акуратненько дотримуючись інструкції, я ще раз виконав всі дії по встановленню DD-WRT описані вище. Після reset , через кілька хвилин, я зайшов на http://192.168.1.1. На це все було потрачено кілька вечорів:). Перспектива бути кілька днів без інтернету мені не подобалась і в перший ж день я придбав ZyXEL P-330W. З ним проблем не було взагалі, тому Д-Лінк як роутер був мені вже не потрібен, і я вирішив поставити назад рідну прошивку....:)
Далі буде....

D-LINK DIR-400 Перші враження...


З переходом до іншого провайдера виникла потреба в купівлі нового обладнання. Вимогами були наявність 3-х Lan портів, WiFi антени, можливість підключення по PPPoE ну і низька ціна (на момент купівлі 58$).
Налаштування підключення до провайдера, локальної мережі та Wifi відбулось без проблем (зайняло хв 10-15). І ось, довгоочікуване "Internet Offline" змінилось на "Internet Online" :). Зайшовши на google.com я зрозумів що це не обман і все дійсно працює. Так як провайдер пообіцяв швидкість до 15 мбіт/сек я першим ділом захотів це перевірити. Прикинувши, що в мегабайтах це мало б бути 1,8 мб/сек (15/8) я зайшов на торент і запустив закачку. Швидкість не вражала... 180 кбайт/сек, спробував інші торенти, заліз на http://speedtest.net/ але більше ніж 180 кбайт я побачив. Вирішив що це провайдер.
Наступного дня тестування продовжились. Перед тим як дзвонити до провайдера вирішив підключитися напряму, без використання роутера. Швидкість піднялась в 10 разів - я отримав обіцяні 15 мбіт!. Отже причиною малої швидкості був D-Link.
Підключившись назад, через це чудо техніки, я поліз в www.google.com . Начитавшись відгуків, я зрозумів що я такий не один. Рекомендували міняти прошивку, чим я і зайнявся. З офіційного сайту D-Link http://ftp.dlink.ru/pub/Router/DIR-400/Firmware/ я скачав DIR400A1_FW101B79.bin від 28-Mar-2008. Змінив на роутері стару прошивку на нову (через Веб інтерфейс - закладка Maintenance - Firmware Update) Поставив, ресетнув, потестував. Швидкість залишилась на старому рівні -180 кбайт/сек. Вирішив поставити прошивку за папки Beta http://ftp.dlink.ru/pub/Router/DIR-400/Firmware/Beta/. За 15 хв DIR400A1_FW103B04.bin від 24-Nov-2008 вже стояла на мому роутері. Перші тести в торенті показали чудові результати - 1,7-1,8 мбайта/сек. Задоволений виконаною роботою я поліз в інтернет :).
Але не все було так чудово як здалось на перший погляд. Інтернет періодично пропадав. Приблизно раз в пігодини роутер перестав пінгатися. Пінг появлявся через пів хвилини - хвилина. На наступний день пропадання були до 15 хв. Провайдер сказав що роутер висить в неті більше доби. Періодичне зникання нету мені не підходило вирішив щось міняти. Покопавшись в неті знайшов рекомендації по спасінню роутера - неофіційна прошивка DD-WRT http://www.dd-wrt.com. Вирішив спробувати її.
Далі буде.....