Опис як ставити dd-wrt на роутер dir-400 з-під вінди (англійською) є на сайті dd-wrt. Нижче є його переклад українською і адаптація під Лінукс, а саме Ubuntu 10.10.
- Скачуємо власне прошивку з сайту dd-wrt.
- Встановлюємо клієнт телнет: putty (на відміну від вінди це добро ставиться з репозиторію).
- Встановлюємо TFTP сервер: tftpd-hda (теж є в репозиторії).
- Заливаємо linux.bin (є у скачаній прошивці) у /var/lib/tftpboot.
- Перевіряємо, чи сервер піднявся: пишем в терміналі ps -ef | grep tftpd Якщо є щось на зразок цього
то все добре, інакше - рестартуєм машину.root 2357 1 0 10:05 ? 00:00:00 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 --secure /var/lib/tftpboot
- Змінюємо локальну IP адресу на 192.168.0.2, маску підмережі на 255.255.255.0. Для цього можна зробити нове мережеве з’єднання, а у з’єднанні по замовчуванню вимкнути опцію "з’єднувати автоматично". Після закінчення усієї процедури достатньо буде увімкнути цю опцію назад.
- З’єднуємо комп’ютер езернетівським кабелем з WAN портом роутера.
- Готуємо телнетівську сесію (але не запускаємо її!) - стартуєм термінал і і пишемо таку команду putty -telnet -P 9000 192.168.0.1 (просто пишемо, Enter в кінці не тицяєм).
- Вмикаємо живлення на роутері і чекаєм, поки він не завантажиться (близько 30 секунд).
- В новому вікні терміналу починаємо пінгувати роутер: ping 192.168.0.1 відповіді на пінг бути не повинно.
- Вимикаємо і вмикаємо ще раз живлення на роутері. Уважно слідкуємо за терміналом з пінгом і тримаємо термінал з телнетом напоготові.
- Після другого успішного пінгу запускаємо телнет сесію (Enter). Після цього термінал з пінгом уже не потрібен, далі все робиться у терміналі з телнетом.
- Якщо все зроблено правильно, термінал з телнетом покаже таке:
== Executing boot script in 1.140 seconds - enter ^C to abort ^C RedBoot>
- Вводимо в терміналі команду ip_address -l 192.168.0.1/24 -h 192.168.0.2. Тремінал повинен виглядати так:
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
- Далі - fis init:
RedBoot> fis init About to initialize [format] FLASH image system - continue (y/n)?
- Приймаємо пропозицію - y:
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 0x80ff0000-0x81000000 at 0xbffe0000: .
- Вводимо load -r -b 0x80041000 linux.bin:
Відповідь буде не відразу. Потрібно почекати, можливо, навіть кілька хвилин.RedBoot> load -r -b 0x80041000 linux.bin Using default protocol (TFTP) Raw file loaded 0x80041000-0x803bafff, assumed entry at 0x80041000
- Вводимо fis create linux:
RedBoot> fis create linux ... Erase from 0xbfc40000-0xbffba000: ........................................................ ... Program from 0x80041000-0x803bb000 at 0xbfc40000: ........................................................ prog_ok flash_addr = 0xbfc40000 mem_addr = 0x80041000 entry_addr = 0x80041000 length = 0x37a000 img_size = 0x37a000 ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
Тут знову ж таки відповідь буде не відразу. Треба бути терплячим і чекати десь до 10-ти хвилин. У жодному разі не можна вимикати живлення на роутері, бо роутер може перетворитись на брухт! - Вводимо fconfig:
RedBoot> fconfig Run script at boot: true
- Погоджуємося (Enter):
Run script at boot: true Boot script: .. fis load -l linux .. exec Enter script, terminate with empty line
- Вводимо fis load -l linux:
>> fis load -l linux
- Вводимо exec:
>> exec
- Далі - просто 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: 255.255.255.0
- І ще раз 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:
Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
- Вводимо reset:
RedBoot> reset
- Перепід’єднумо комп’ютер до LAN-порта роутера.
- Знову активуємо мережеве з’єднання по замовчуванню. Або змінюємо локальну IP адресу на 192.168.1.2, маску підмережі на 255.255.255.0
Свій роутер я вирішив перепрошити, бо рідна D-Link-івська прошивка кепська. Особливо, коли йдеться про торенти з великою кількістю пірів (як от образ поточної версії Ubuntu). Роутер висне і без ребуту на відвисає :(
Під dd-wrt роутер став зовсім новою людиною :) Протягом кількох тижнів він не вимикався взагалі. Ну, якщо бути зовсім відвертим, по вимикався, коли... у наших рідних електромережіах припинявся рух електронів (так, це камінь в бік Львівобленерго). Одним словом, прошивка мені дуже сподобалась, і я відправив її розробникам кілька баксів (як пожертву).
Немає коментарів:
Дописати коментар