Документация по ОС FreeBSD Понедельник, 06.05.2024, 15:59
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Работа с железом

Настройка Zoneminder – система видеонаблюдения [2009]
Постановка задачи.

После нескольких инцидентов  в офисе с пропажей материальных ценностей сотрудников, решено было поставить
систему видеонаблюдения. Требования к системе такие: снятие картинки с четырех камер, регистрация события
по движению, удобное управление и просмотр событий.

Изначально был приобретен четырехканальный USB видеорегистратор, неизвестного китайского происхождения, но
он не заработал даже под виндой, да и я изначально сомневался будут ли работать с ним проги под FreeBSD.
USB регистратор был благополучно обменян на PCI DVR Карту ENC EK-500F,  тоже четырехканальную и тоже
неизвестного китайского производства. Основана она на чипе Conexant Fusion 878A, который поддерживается
FreeBSD.
Вот фото коробки, то что нарисованно на коробке и ее содержимое две разные вещи.
 

А так приблизительно выглядит карта, фото в интернете нашел, сфоткать установленую карту не
сфотографировал, а теперь она недоступна для съемок.
 
 
Из программного обеспечения выбор пал на Zoneminder, т.к. есть порт под FreeBSD, есть ветка обсуждения на
родном форуме программы, имеет более-менее нормальный функционал.

Приступим к боевым действиям.

uname -v
FreeBSD 7.0-RELEASE #1: Sat Nov 8 13:54:13 MSK 2008 
 user@proxy.mydomen.local:/usr/obj/usr/src/sys/MyCore

Ставим карту в комп, запускаем FreeBSD.
Прописываем в /boot/loader.conf
bktr_load=”YES”

перегружаем машину и смотрим
#dmesg | grep bktr
bktr0: <BrookTree 878> mem 0xe2200000-0xe2200fff irq 20 at device 0.0 on pci3
bktr0: [GIANT-LOCKED]
bktr0: [ITHREAD]
bktr0: Warning - card vendor 0x0000 (model 0x0000) unknown.
bktr0: Detected a DPL34-1@-@0 at 0x84
bktr0: Intel Smart Video III/VideoLogic Captivator PCI, <no> tuner, dpl3518a dolby.
#pciconf –lv
bktr0@pci0:3:0:0: class=0x040000 card=0x00000000 chip=0x036e109e rev=0x11 hdr=0x00
 vendor = 'Conexant (Was: Brooktree Corp)'
 device = 'Bt878/Fusion 878A Mediastream Controller'
 class = multimedia
 subclass = video
none4@pci0:3:0:1: class=0x048000 card=0x00000000 chip=0x0878109e rev=0x11 hdr=0x00
 vendor = 'Conexant (Was: Brooktree Corp)'
 device = '7610144D&REV_02\4&1F7DBC9F&0&09F0 TV Video Capture'
 class = multimedia

В /dev появилось устройство bktr0.
Теперь качаем порт ZoneMinder 1.23.3, на
момент написания статьи была уже версия ZoneMinder 1.24.x, но порта под FreeBSD  не было.
Распаковываем его в  /usr/ports/multimedia/zoneminder/
cd /usr/ports/multimedia/zoneminder
make install

ВНИМАНИЕ ! после установки не следует сразу делать make clean, т.к. затрете скрипты создания
базы данных.

Во время установки Zone Minder потянет большое количество пакетов, все опции этих пакетов оставляем как
есть. По у молчанию Zone Minder   ставит Apache версии 1.3.
В php5-extensions необходимо добавить поддержку MySQL.
Если во время установки вылетело сообщение
aclocal-1.10: not found
WARNING: `aclocal-1.10' is missing on your system. You should only need it if
 you modified `acinclude.m4' or `configure.in'. You might want
 to install the `Automake' and `Perl' packages. Grab them from
 any GNU archive site.
cd . && /bin/sh /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/missing --run automake-1.10 --gnu
automake-1.10: not found
WARNING: `automake-1.10' is missing on your system. You should only need it if
 you modified `Makefile.am', `acinclude.m4' or `configure.in'.
 You might want to install the `Automake' and `Perl' packages.
 Grab them from any GNU archive site.
cd . && /bin/sh /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/missing --run autoconf
aclocal.m4:14: error: this file was generated for autoconf 2.61.
You have another version of autoconf. If you want to use that,
you should regenerate the build system entirely.
aclocal.m4:14: the top level
autom4te-2.62: /usr/local/bin/gm4 failed with exit status: 63
*** Error code 1

Значит у вас стоит версия autoconf отличная от 2.61, у меня стоит 2.62.
Делаем так :
cd work/ZoneMinder-1.23.3
ee aclocal.m4

Ищем стрку, она в самом начале файла
m4_if(m4_PACKAGE_VERSION, [2.61],,

И меняем на
m4_if(m4_PACKAGE_VERSION, [2.62],,

сохраняем
cd ../..
make install

Далее тоже может вылететь еще ошибка
zm_mpeg.cpp: In destructor 'VideoStream::~VideoStream()':
zm_mpeg.cpp:281: error: cannot convert 'ByteIOContext**' to 'ByteIOContext*' 
 for argument '1' to 'int 
url_fclose(ByteIOContext*)'
*** Error code 1

Stop in /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/src.
*** Error code 1

Stop in /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3.
*** Error code 1

Stop in /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3.
*** Error code 1

Stop in /usr/ports/multimedia/zoneminder.

Эта ругань вызвана пакетом ffmpeg.  Нужно его вручную установить.
cd ../ffmpeg 

В файле Makefile должны присутствовать такая строка
--enable-swscale \ 

Если ее нет то накатываем патч
-- /usr/ports/multimedia/ffmpeg/Makefile.orig 2008-07-30 19:52:43.000000000 +0300 
+++ /usr/ports/multimedia/ffmpeg/Makefile 2008-07-30 19:39:10.000000000 +0300 
@@ -59,11 +59,13 @@ 
 libavutil/random.h \ 
 libavutil/rational.h \ 
 libavutil/sha1.h \ 
+ libswscale/swscale.h \ 
 libpostproc/postprocess.h 

 .include <bsd> 

 CONFIGURE_ARGS+=--cc="${CC}" --prefix="${PREFIX}" \ 
+ --enable-swscale \ 
 --disable-debug \ 
 --enable-memalign-hack \ 
 --enable-shared \

Т.к. перед установкой я обновлял порты, то правка файла не потребовалась.
После чего  делаем
make deinstall
make install 

Ждем окончания установки ffmpeg
Далее
cd ../zoneminder

и удаляем файл files/patch_zm_mpeg.cpp иначе ничего не установится (рекомендация из форума по Zone Minder).
make install

Ждем успешного окончания установки.
После установки в /usr/local/etc/ появится конфигурационный файл zm.conf.
Он прост и хорошо комментирован. Оставляем все как есть.
Добавляем в /etc/rc.conf
zm_enable=”YES”
apache_enable=”YES”
mysql_enable=”YES”

Запускаем MySQL
/usr/local/etc/rc.d/mysql-server start
mysql –h localhost –u root
mysql>source /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/db/zm_create.sql;
mysql>grant all on zm.* to ‘zmuser’@localhost identified by ‘zmpass’;
mysql> flush privileges;
mysql> quit;

Базы создали теперь переходим к веб составляющей всего этого.
Смотрим в httpd.conf
ее /usr/local/etc/apache/httpd.conf

Если не находим строк
LoadModule php5_module libexec/apache/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Значит php5 установился  без поддержки  Apache.
Исправляем это
cd /usr/ports/lang/php5
make deinstall
make clean
make config (включаем поддержку Apache)
make install clean

Перезапускаем Apache
/usr/local/etc/rc.d/apache restart

 
Заходим браузером на сервак http://server/zm/
Откроется консоль управления Zone Minder .
 
 
Как видно вся система остановлена.
К регистратору подключаем камеру для тестирования. И добавляем ее.
 
 
Для тестирования выставляем Function в Monitor, это режим простого наблюдения.
Устанавливаем параметры камеры, разрешение, формат  сигнала и прочее по вкусу. Сохраняем
Zone Minder имеет русский интерфейс, но на чальном этапе лучше использовать английский, т.к. в
некоторых местах русификация кривая.


В консоле щелкаем по Stopped и переводим систему в режим Start.
И идем смотрим что в логах, если в логах посыпалась ругань на Shared memory
Nov 11 11:17:35 proxy Update agent starting at 08/11/11 11:17:35
Nov 11 11:21:07 proxy zmdc[80932]: WAR [Can't find process with command of 'zmc -d /dev/bktr0']
Nov 11 11:21:07 proxy zmdc[80932]: WAR [Can't find process with command of 'zma -m 1']
Nov 11 11:21:08 proxy zma_m1[81006]: ERR [Can't shmget, probably not enough shared memory space free: Cannot allocate memory]
Nov 11 11:21:08 proxy zmdc[80932]: ERR ['zma -m 1' exited abnormally, exit status 255]
Nov 11 11:21:08 proxy zma_m1[81007]: ERR [Can't shmget, probably not enough shared memory space free: Cannot allocate memory]
Nov 11 11:21:08 proxy zmdc[80932]: ERR ['zma -m 1' exited abnormally, exit status 255]
Nov 11 11:21:08 proxy zmc_dbktr0[81001]: ERR [Can't shmget, probably not enough shared memory space free: Cannot allocate memory]
Nov 11 11:21:08 proxy zmdc[80932]: ERR ['zmc -d /dev/bktr0' exited abnormally, exit status 255]
Nov 11 11:21:09 proxy zmc_dbktr0[81018]: ERR [Can't shmget, probably not enough shared memory space free: Cannot allocate memory]
Nov 11 11:21:09 proxy zmdc[80932]: ERR ['zmc -d /dev/bktr0' exited abnormally, exit status 255]
Nov 11 11:21:12 proxy zmwatch[80958]: ERR [Can't get shared memory id '7a6d0001', 1: No such file or directory]
Nov 11 11:21:13 proxy zma_m1[81021]: ERR [Can't shmget, probably not enough shared memory space free: Cannot allocate memory]
Nov 11 11:21:13 proxy zmdc[80932]: ERR ['zma -m 1' exited abnormally, exit status 255]

То значит нужно править системные переменные. В  /etc/sysctl.conf
Добавляем следующие строки
kern.ipc.shmmax=536870912
kern.ipc.shmall=524288

Все должно заработать и если нажать на название камеры, то откроется окно с изображением с камеры.
Настраиваем на свой вкус режим работы и все остальное, благо каждый параметр прокомментирован хорошо и
настроить программу не составит сложности. Если что на сайте программы есть WiKi.

Эффект достигнут.Пьем пиво и наблюдаем за сотрудниками.



Источник: http://www.lissyara.su/?id=1869
Категория: Работа с железом | Добавил: oleg (20.02.2009) | Автор: TeXNiC
Просмотров: 4525 | Рейтинг: 5.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024