
Видеонаблюдение на основе роутера
Мне недавно отдали на растерзание роутер AsusWL-520GU, который валялся у моего друга без дела. У меня он тоже занимался тунеядством и умиротворённо валялся в углу собирая на себе пыль ;) Недавно у меня появилось время и желание для экспериментов над этой несчастной железкой. Естественно использовать роутер по назначению в моём случае было бы кощунством ибо зачем мне ещё один роутер и я решил сделать, что-то такое... ну в общем мысль остановилась на создании DVR. Железяка оказалась не очень мощная, но и не совсем дохлая, тем более на неё openwrt встаёт без проблем. Этот роутер хорош, что в нём есть usb, а это уже упрощает многое.
Характеристики:
- Broadcom BCM5354KFBG SoC @ 240MHz
- 16MB Samsung K4S281632I SRAM
- 4MB MX 29LV320C
Openwrt
Собираем openwrt, (ветка Kamikaze) естественно нужно уложится в 4 Мб.
Основные моменты:
- Добавление поддержки usb (1.1 и 2.0) и usb-storage
Kernel modules ---> USB Support --->
--- kmod-usb-core............................................ Support for USB
<*> kmod-usb-ohci............................... Support for OHCI controllers
<*> kmod-usb-storage..................................... USB Storage support
<*> kmod-usb-uhci............................... Support for UHCI controllers
<*> kmod-usb-video............................. Support for USB video devices
<*> kmod-usb2................................... Support for USB2 controllers
- Добавление поддержки web -камеры по стандарту uvc (в вашем случае может быть и другая, смотрите список возможных)
Kernel modules --->Video Support --->
<*> kmod-video-core...................................... Video4Linux support
< > kmod-video-cpia2...................................... CPIA2 video driver (NEW)
< > kmod-video-gspca-core................ GSPCA webcam core support framework (NEW)
< > kmod-video-konica.............................. Konica USB webcam support (NEW)
< > kmod-video-ov511................................ OV511 USB webcam support (NEW)
< > kmod-video-ovcamchip................... OV6xxx/OV7xxx Camera Chip support (NEW)
< > kmod-video-pwc................................ Philips USB webcam support (NEW)
< > kmod-video-sn9c102........................... SN9C102 Camera Chip support (NEW)
<*> kmod-video-uvc............................. USB Video Class (UVC) support
- Установка motion (для реализации DVR)
Multimedia --->
< > motion................................. webcam motion sensing and logging (NEW)
- Поддержка файловых систем для флешки
Kernel modules --->Filesystems --->
<*> kmod-fs-ext4..................................... EXT4 filesystem support
- Далее по инструкции
- Если кому лень собирать , то можно воспользоваться моим образом, но при условии, что у вас такое же железо. Скачать
Железо
Теперь мы знаем как собрать и залить на роутер прошивку . Первым делом модернизируем некоторые вещи.
После долгих тестов, я выяснил что проц на роутере сильно греется (при нагрузке от DVR) из-за чего начинает всё жутко тормозить, я предпринял решение приклеить радиатор и это реально помогло.
Я бы не советовал использовать питание от usb порта роутера ибо можно его сжечь, если не рассчитать нагрузку, чтобы себя обезопасить и не волноваться, припаиваемся на прямую :)
Вот так выглядит всё в сборе
Настройка
Настройка motion
редактируем /etc/motion.conf
vi /etc/motion.conf
Ищем параметры и изменяем
setup_mode off --> setup_mode on
;on_event_start value --> on_event_start value
on_event_start value - это параметр который указывает, что запись идёт когда в кадре есть движение.
Запускаем motion, он создаст папку /usr/local/apache2/htdocs/cam1/ и начнёт в неё запись. Если там есть файлы, то всё ОК. Удаляем их:
rm /usr/local/apache2/htdocs/cam1/*
Монтирование flash-карты
Первым делом нужно отформатировать флешку в файловую систему EXT4 (ну или другую, по желанию)
mount /dev/sdb1 /usr/local/apache2/htdocs/cam1/
Автозагрузка
Теперь последний штрих, добавляем в автоматическую загрузку монтирование флешки и запуск motion
vi /etc/rc.local
Добавляем следующее:
mount /dev/sdb1 /usr/local/apache2/htdocs/cam1/
motion &
exit 0
Подводные камни
OpenWRT не поддерживает Wi-Fi моего роутера и это печально, но у кого железо иное, того я могу назвать счастливчиком ;) Ещё есть нюанс что роутер не сохраняет системное время без питания, так, что ему нужен интернет, чтобы синхронится с ntp-сервером. Вот пример, видно, что время не синхронизировано: