DIR-320
На этой странице по шагам будет описано как сделать из обычного роутера 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. Соединяемся с роутером через вебинтерфейс для настройки
По умолчанию адрес роутера 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
Шаг 1. Скачиваем программу suart и загружаем её в роутер
1. Скачайте архив suart.zip по ссылке [http://roboforum.ru/download/file.php?id=19699];
2. Установите себе TFTP-сервер на ПК, например, WinAgents TFTP Server 4;
3. Выложите в корень файл "suart" из архива suart.zip;
4. В терминале DIR-320 загрузите этот файл в папку /usr/local с TFTP-сервера командой
tftp -g 192.168.2.5 -l /usr/local/suart -r /suart
где 192.168.2.5 - адрес вашего ПК в сети;
5. Выставьте ему права на выполнение командой
chmod +x /usr/local/suart
6. Добавьте в его в автозагрузку командами:
echo “#!/bin/sh” > /usr/local/sbin/post-boot echo “/usr/local/suart” >> /usr/local/sbin/post-boot chmod +x /usr/local/sbin/post-boot
7. И сохраните всё это добро во флеш-память роутера командами:
flashfs save flashfs commit flashfs enable
8. Перегрузите роутер командой "reboot"
Направление 2. Программируем прямо на роутере
Шаг 1. Подключаем флешку и монтируем в /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";
Шаг 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 порт для других целей необходимо отключить отладочную консоль от /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'а ровно то, что туда отправили. При установке перемычки не забудьте выключить отладочный вывод в этот порт командой указанной выше, иначе роутер с перемычкой не будет загружаться.