Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  ProFTP+PgSQL
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  named 9.7.0
  SysAid Server
  MySQL Master+Master
  proftpd file auth&quota
  usb_modeswitch
  NSDadmin
  iperf Тест скорости между хостами
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco
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
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.

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



размещено: 2009-02-11,
последнее обновление: 2009-02-11,
автор: TeXNiC

оценить статью:





Хостинг HOST-FOOD

2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 45 чел.
За последние 30 мин было: 223 человек
За сегодня было
15693 показов,
1743 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1368 секунд
Из них PHP: 58%; SQL: 42%; Число SQL-запросов: 81 шт.
Исходный размер: 159550; Сжатая: 26172