DIR-320

Материал из roboforum.ru Wiki
Версия от 13:38, 17 марта 2012; Setar (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

Базовая операция - загрузка прошивки от Олега

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

1. Скачиваем и сохраняем прошивку: Новейшая прошивка от энтузиастов на базе прошивки от Олега 1.9.2.7-rtn http://roboforum.ru/download/file.php?id=20855 (на ядре 2.6.22 Обсуждение прошивки http://wl500g.info/showthread.php?t=17136 , на этом форуме - http://roboforum.ru/forum10/topic9534-390.html). Краткое описание прошивки - с этой прошивкой роутер будет представляться 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. Соединяемся с роутером через вебинтерфейс для настройки

По умолчанию адрес роутера 192.168.1.1, поэтому выставьте в ПК ip-адрес сетевой, например, в 192.168.1.10 и соединитесь с DIR-320 через сетевой кабель ПК, воткнув его другим концом в один из четырёх LAN-портов роутера.

Наберите в браузере 192.168.1.1, вас запросят логин и пароль. По умолчанию это Admin, Admin.

Шаг 3. Настраиваем роутер для работы в домашней сети

У меня уже стоял роутер с адресом в домашней сети 192.168.1.1, поэтому DIR-320 я настроил как клиента этого роутера, т.е. в его IP-адресе WAN-сети я прописал адрес 192.168.1.5, шлюз 192.168.1.1 - что бы сам DIR-320 мог пользоваться домашним интернетом. Далее чтобы подключаться к DIR-320 обычным ПК как клиентом я указал у DIR-320 для LAN-сети IP-адрес 192.168.2.1, а на своём ПК просто поменял адрес 192.168.1.10 на 192.168.2.10 и соответственно шлюз на 192.168.2.1, сетевой кабель ПК естественно при этом должен быть воткнут в LAN-порт DIR-320.

Шаг 3. Настраиваем веб-камеру

Если вы хотите получать видео с вебкамеры воткнутой в роутер, то вам понадобится UVC-вебкамера (список совместимых с указанием особенностей можно посмотреть вот тут - [http://www.ideasonboard.org/uvc/], нам нужны камеры без особенностей :))

Настраивается камера через веб-интерфейс роутера. Я использовал параметры 320х240, 10fps.

Направление 1. Модификация для проброски UART по TCP/IP

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

Для проброски UART'а через TCP/IP мы написали специальную программку - suart, она вешается на 3000 порт и приняв соединение замыкает его на UART /dev/ttyS0.

Шаг 1. Скачиваем программу suart и загружаем её в роутер

1. Скачайте архив suart.zip по ссылке [http://roboforum.ru/download/file.php?id=19739];

2. Установите себе TFTP-сервер на ПК, например, WinAgents TFTP Server 4;

3. Выложите в корень файл "suart" из архива suart.zip;

4. Подцепитесь со своего ПК в терминал DIR-320 командой "telnet <адрес-роутера>", например "telnet 192.168.2.1"

5. В терминале DIR-320 загрузите этот файл в папку /usr/local с TFTP-сервера командой

tftp -g 192.168.2.5 -l /usr/local/suart -r /suart

где 192.168.2.5 - адрес вашего ПК в сети;

Шаг 2. Выставляем права на него и добавляем его в автозагрузку

1. Выставьте ему права на выполнение командой

chmod +x /usr/local/suart

2. Добавьте в его в автозагрузку командами:

echo “#!/bin/sh” > /usr/local/sbin/post-boot
echo “/usr/local/suart” >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot

Шаг 3. Сохраняем изменения и перезагружаемся

1. И сохраните всё это добро во флеш-память роутера командами:

flashfs save
flashfs commit
flashfs enable

2. Перегрузите роутер командой "reboot"

Направление 2. Программируем прямо на роутере

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

1. Подцепитесь со своего ПК в терминал DIR-320 командой "telnet <адрес-роутера>", например "telnet 192.168.2.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";

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

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

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

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

ipkg install buildroot

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

Создадим файл 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!", если это произошло - поздравляю, вы собрали и запустили первую программу под роутер :)

Шаг 5. Осваиваем 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

При освоении работы с портом можно поставить резистор между линиями RX и TX, тогда вы будете получать из UART'а ровно то, что туда отправили. При установке перемычки не забудьте выключить отладочный вывод в этот порт командой указанной выше, иначе роутер с перемычкой не будет загружаться.