DIR-320

Материал из roboforum.ru Wiki
Версия от 17:51, 1 марта 2011; =DeaD= (обсуждение | вклад) (Шаг 6. При необходимости отцепляем UART от отладочной консоли)
Перейти к: навигация, поиск

На этой странице по шагам будет описано как сделать из обычного роутера D-Link DIR-320 необычный :)

Шаг 1. Заливаем прошивку от Олега

1. Скачиваем и сохраняем прошивку: Новейшая прошивка от энтузиастов на базе прошивки от Олега 1.9.2.7-rtn http://narod.ru/disk/549608001/WL500gpv2-1.9.2.7-rtn-r2393M.trx.html (на ядре 2.6.22 Обсуждение прошивки http://wl500g.info/showthread.php?t=17136). После прошивки роутер будет представляться WL-500gPV2. Вырезаны samba, ftp, и много чего еще ради поддержки UVC вебкамер.

2. Для Windows Vista, Windows 7 включаем клиент tftp: Пуск->Панель управления->Программы->Включение или отключение компонентов Windows-> Ставим галочку рядом с пунктом "Клиент TFTP"->ОК. Для Linux устанавливаем клиент tftp штатными средствами дистрибутива, например для семейства Ubuntu командой в терминале: sudo apt-get install tftp

3. Создаем файл flashing.cmd в любом текстовом редакторе и сохраняем этот файл в папку c:\bin, в эту же папку кладем прошивку, переименованную в firmware.bin. Содержимое файла flashing.cmd:

@Echo Off
:BEGIN
ping -n 1 -w 1 192.168.0.1
If errorlevel 1 Goto BEGIN
If errorlevel 0 Goto FLASH
Goto END

:FLASH
Echo *** Start Flashing ****
tftp -i 192.168.0.1 put c:\bin\firmware.bin

:END

4. Устанавливаем адрес сетевой карты компьютера 192.168.0.2, маска 255.255.255.0, шлюз и DNS прописывать не надо. Подключаем к сетевой карте компьютера сетевой кабель, а второй конец сетевого кабеля вставляем в любой порт LAN роутера, питание роутера не включаем. 5. Запускаем командную строку ПУСК->Выполнить-> cmd, и выполнем команду перехода к папке C\:bin

C:\>cd c:\bin

6. Нажимаем и удерживаем кнопку Reset нажатой ну например спичкой, включаем питание роутера, загорятся все индикаторы и как только они погаснут индикаторы, кроме индикатора того порта LAN, к которому подключен кабель, кнопку Reset отпускаем и сразу же выполняем в ранее запущенной командной строке предварительно набранную команду

C:\bin>flashing.cmd

7. Наблюдаем процесс прошивки

Обмен пакетами с 192.168.0.1 по 32 байт:

Превышен интервал ожидания для запроса.

Статистика Ping для 192.168.0.1: Пакетов: отправлено = 1, получено = 0, потеряно = 1 (100% потерь), <<< SKIP >>> <<< SKIP >>> <<< SKIP >>> <<< SKIP >>> Обмен пакетами с 192.168.0.1 по 32 байт:

Ответ от 192.168.0.1: число байт=32 время=4мс TTL=100

Статистика Ping для 192.168.0.1: Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 4мсек, Максимальное = 4 мсек, Среднее = 4 мсек

      • Start Flashing ****

Успешная передача: 3592480 байт за 11 сs, 281134 байт/с C:\bin>

8. После того, как загорится индикатор статуса (~1-2 мин) производим сброс настроек роутера по умолчанию. Для этого нажимаем и удерживаем кнопку Reset нажатой, пока не замигает индикатор статуса. Отпускаем Reset. Роутер перезагрузится. Адрес роутера по умолчанию сменился теперь на 192.168.1.1. После этого необходимо изменить IP адрес сетевой карты компьютера(по кабелю или WiFi) на получение адреса автоматически по DHCP.


P.S. Если Вам потребовалось восстановить оригинальную прошивку роутера D-Link DIR-320, то делаем следующее:

  • 1. Включаем питание роутера с зажатой кнопкой "Reset". Через 15 секунд отпускаем "Reset".
  • 2. Выставляем на компьютере вручную IP адрес 192.168.0.2, маска 255.255.255.0
  • 3. Заходим браузером по адресу 192.168.0.1 и попадаем в консоль аварийного восстановления.
  • 4. Скачиваем официальную прошивку и прошиваем ее через данную консоль.
  • 5. По окончанию прошивки выключаем роутер, ждем 30 секунд и включаем роутер.
  • 6. На компе выставляем авто-получение IP адреса, чистим кеш браузера, и заходим браузером по адресу 192.168.0.1
  • 7. Видим оригинальную прошивку. Все

Шаг 2. Подключаем флешку и монтируем в /opt

1. Подключаемся к роутеру через telnet командой вида "telnet 192.168.1.1";

2. Вставляем флешку;

3. Смотрим, как её определил роутер, командой "fdisk -l", у меня определил как "/dev/sda";

3. Форматируем флешку в "ext3" командой "mke2fs -j /dev/sda";

4. Создаём раздел командой "fdisk /dev/sda", нажимаем "w" и <enter>, чтобы сохранить изменения;

5. Монтируем флешку в /opt командой "mount /dev/sda /opt";

Шаг 3. Обновляемся

 #меняем репозиторий

echo -e "src optware http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable\ndest root /" > /etc/ipkg.conf

ipkg.sh update

ipkg.sh install uclibc-opt

ipkg.sh install ipkg-opt

ipkg update

 #обновляем все ранее установленные пакеты из нового репозитория

/usr/bin/awk '/^Package:/{system("ipkg install -force-reinstall -force-defaults " $2)}' /opt/lib/ipkg/status

Шаг 4. Ставим софт для сборки прошивок

ipkg install buildroot

Шаг 5. Проверяем, что всё компилируется

Создадим файл hello.c с тестовой программкой:

#include <stdio.h>
int main()
{
printf("Hello world!\n");
}

Я это сделал так:

echo "#include <stdio.h>" > hello.c
echo "int main()" >> hello.c
echo "{" >> hello.c
echo "printf(\"Hello world!\\n\");" >> hello.c
echo "}" >> hello.c
cat hello.c

Теперь соберем её и запустим:

gcc hello.c -o hello
./hello

Программа должна вывести "Hello world!", если это произошло - поздравляю, вы собрали и запустили первую программу под роутер :)

Шаг 6. Осваиваем UART

Распиновка UART.

На печатной плате роутера выведен UART. Он изначально используется для отладки (туда выведена отладочная консоль).

Если необходимо использовать этот uart порт для других целей необходимо отключить отладочную консоль от /dev/ttyS0. Необходимо ввести команды:

nvram set kernel_args="root=/dev/mtdblock2 rootfstype=squashfs,ext3 noinitrd init=/linuxrc console=null"
nvram commit

И перезагрузиться. Вернуть все назад можно командой:

nvram set kernel_args="root=/dev/mtdblock2 rootfstype=squashfs,ext3 noinitrd init=/linuxrc console=/dev/ttyS0"
nvram commit