|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> Zoneminder 2
Настройка Zoneminder – система видеонаблюдения.
Автор: TeXNiC.
Постановка задачи.
После нескольких инцидентов в офисе с пропажей материальных ценностей сотрудников, решено было поставить
систему видеонаблюдения. Требования к системе такие: снятие картинки с четырех камер, регистрация события
по движению, удобное управление и просмотр событий.
Изначально был приобретен четырехканальный 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
перегружаем машину и смотрим
#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],,
| сохраняем
Далее тоже может вылететь еще ошибка
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. Нужно его вручную установить.
В файле Makefile должны присутствовать такая строка
Если ее нет то накатываем патч
-- /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
Далее
и удаляем файл files/patch_zm_mpeg.cpp иначе ничего не установится (рекомендация из форума по Zone Minder).
Ждем успешного окончания установки.
После установки в /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.
Эффект достигнут.Пьем пиво и наблюдаем за сотрудниками.
размещено: 2009-02-11,
последнее обновление: 2009-02-11,
автор: TeXNiC
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Комментарии пользователей [18 шт.]