====== ZoneMinder ====== ===== Presentation ===== Lien: http://www.zoneminder.com/ *Debian Lenny *i386 *Release 1.24.2 | :!: je n'arrive pas a compiler pour un environnement 64 bit ! (amd64) \\ Peut etre en usant de "--with-libarch=lib64" ca serait mieux ? | ===== Installation ===== ==== debian packages ==== On va compiler, ce qui necessite certains outils. # aptitude install mysql-server-5.0 Definir un mot de passe **''root''** ... # aptitude install php5 php5-mysql # aptitude install apache2 libapache2-mod-auth-mysql Attention, ne pas faire: aptitude install ffmpeg car on va compiler **''ffmpeg''** pour qu'il soit plus mieux. Pour les compilations à venir: # aptitude install build-essential # aptitude install libmysqlclient15-dev libgnutls-dev libjpeg62-dev # aptitude install libarchive-zip-perl libdate-manip-perl # aptitude install liblwpx-paranoidagent-perl # aptitude install libphp-serialization-perl Ainsi que : # aptitude install libpcre3-dev libbz2-dev Seulement si on ne souhaite pas compiler "ffmpeg" (et tout particulierement **''--with-ffmpeg=/usr/local''** ) : # aptitude install libavutil-dev libavcodec-dev libavformat-dev libswscale-dev ==== ffmpeg ==== Il faut utiliser une version **optimisé** de FFMPEG. Sinon, ca rame parce qu'on utilise pas les capacités des processeurs modernes! # aptitude install subversion $ mkdir ffmpeg && cd ffmpeg $ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg | :!: Si la version est **trop récente** (et surtout si la compilation avec ZM ne passe pas), preferer cette version:\\ http://www.ffmpeg.org/releases/ffmpeg-0.5.1.tar.gz que je garde au chaud {{:ffmpeg-0.5.1.tar.gz|ici}} | $ cd ffmpeg $ ./configure --prefix=/usr/local ou: $ ./configure --prefix=/usr/local --cpu=i686 --enable-swscale --enable-gpl $ make # make install ==== Compilation ==== === dependances === configure: error: zm requires Sys::Mmap for mapped memory Solution: # perl -MCPAN -e shell install Sys::Mmap === compilation === Recuperer les sources, par exemple: $ mkdir tmp && cd tmp $ wget http://www2.zoneminder.com/downloads/ZoneMinder-1.24.2.tar.gz Je garde cette version de ZoneMinder au chaud {{:ZoneMinder-1.24.2.tar.gz|ici}}. Decompresser: $ tar xvzf ZoneMinder-1.24.2.tar.gz Compiler: $ cd ZoneMinder-1.24.2 $ ./configure --prefix=/usr/local \ --with-webdir=/var/www/zm \ --with-cgidir=/usr/lib/cgi-bin \ --with-webuser=www-data \ --with-webgroup=www-data \ --with-ffmpeg=/usr/local \ --enable-mmap=yes \ --disable-debug \ --disable-crashtrace Ou plutôt (parce que ca ne fonctionnait toujours pas...hummm) ./configure --prefix=/usr/local \ --with-libarch=lib \ --with-mysql=/usr \ --with-webdir=/var/www/zm \ --with-cgidir=/usr/lib/cgi-bin \ --with-webuser=www-data \ --with-webgroup=www-data \ --with-ffmpeg=/usr/local \ --enable-mmap=yes \ --disable-debug \ --disable-crashtrace \ ZM_DB_HOST=localhost \ ZM_DB_NAME=zm \ ZM_DB_USER=zmuser \ ZM_DB_PASS=zmpass \ CFLAGS="-march=i686 -O2" \ CXXFLAGS="-march=i686 -O2" Où : | **''/var/www/zm''** | l'emplacement du serveur | | **''--with-ffmpeg=/usr/local''** | parce qu'on a compilé notre version | | **''ZM_DB_PASS''** | VOTRE mot de passe | | **''CFLAGS="-march=i686 -O2"''** | Option de compilation | Ensuite: $ make Et a ma grande surprise, ca compile ... alors que je m'attendais a "patcher" ! http://www.zoneminder.com/forums/viewtopic.php?p=60971 ==== Install ==== # make install ===== Configuration ===== ==== zm.conf ==== Aprés chaque **''make install''** , un fichier de conf appararait là: (sauf option contraire) /usr/local/etc/zm.conf | :!: le sauvegarder **avant** de faire un nouvel **''make install''** | L'editer, au moins pour choisir un mot de passe: ... # ZoneMinder database hostname or ip address ZM_DB_HOST=localhost # ZoneMinder database name ZM_DB_NAME=zm # ZoneMinder database user ZM_DB_USER=zmuser # ZoneMinder database password ZM_DB_PASS= ==== database ==== A partir du repertoire où on a compilé les sources de ZoneMinder, on créé la base et ses tables comme cela: $ mysql -u root -p < db/zm_create.sql Créer le user ("zmuser" par exemple) qui sera autorisé a accéder a cette base: $ mysql -u root -p mysql> grant all on zm.* to zmuser@"localhost" identified by ""; ==== events ==== Il peut y avoir **beaucoup** d'images a sauvegarder. Il est encore temps d'utiliser un "filer" ou un "nas" en réseau: Verifier que le répertoire **''/var/www/zm/events''** est vide. Le faire pointer sur le partage **''nfs''** . # cd /var/www/zm # mv events events-old # mkdir /mnt//events # ln -s /mnt//events . (pour exemple) ==== script pour init.d ==== Modifier le fichier ./scripts/zm pour qu'il fonctionne sous lenny. Par exemple: # cp ./scripts/zm /etc/init.d/. Técharger le script {{:zm.zip|ici}} . Et puis: $ unzip zm.zip $ su # chmod a+x zm # chown root: zm # mv zm /etc/init.d/. Créer repertoire: # mkdir /var/lock/subsys Test 1: # /etc/init.d/zm Test 2: # /etc/init.d/zm status ZoneMinder is stopped Test 3: # /etc/init.d/zm start Starting ZoneMinder: Success Test 4: /etc/init.d/zm status ZoneMinder is running Le répertoire **''/tmp''** se peuple des logs de "zm"... Et enfin: # update-rc.d zm defaults ==== sysctl.conf ==== Lien: http://www.zoneminder.com/forums/viewtopic.php?t=9692 ZoneMinder a besoin de partager beaucoup de mémoire... Pour eviter des messages d'erreurs comme ça dans **''/var/log/syslog''** : ... zm zmc_m1[2032]: ERR [Got unexpected memory map file size 9217192, expected 36865192] Dans sysctl.conf : # TJ -------------- # pour zm. Source: #kernel.shmmax = 256000000 kernel.shmmax = 25600000 ###kernel.shmall = 62500 Et puis, aprés sauvegarde. # sysctl -p Redemarrer ZoneMinder: Les erreurs disparaissent... ==== Apache ==== === virtualhost === "zm" est le seul service sous Apache... Aprés avoir désactiver le site par defaut: # a2dissite 000-default Voici la conf de mon zm: ServerAdmin root@localhost ServerName zm.thierry-jaouen.local ServerAlias zm video DocumentRoot /var/www/zm Options FollowSymLinks AllowOverride None Order Deny,Allow Deny From All Options -Indexes FollowSymLinks -MultiViews AllowOverride None ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all Order Deny,Allow Deny From All Allow From 127. 192.168. ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Activée par : # a2ensite 110-zoneminder # apache2ctl graceful ==== Service ==== Il n'y a pas de mot de passe demandé par defaut. Dans: Options > System OPT_USE_AUTH enable (cocher) Ensuite, le compte par défaut pour administrer: login: admin password: admin A changer trés vite bien sûr. ===== TV-IP422 ===== de chez Trendnet... Pas simple avec ZoneMinder. ==== jpg ==== | :!: A eviter, car lent | Source: | Remote Host Name | :@ | | Remote Host Port | 80 | | Remote Host Path | /cgi/jpg/image.cgi | ==== mjpg ==== Source: | Remote Host Name | :@ | | Remote Host Port | 80 | | Remote Host Path | /cgi/mjpg/mjpg.cgi | Et non pas **''/mjpeg.cgi''** => MIME pourri ne fonctionnant pas avec ZM. ==== mp4 ==== ca marche ? ==== PTZ ==== Une camera a la même caractéristique, et voici quelques fonctions interessantes possibles: http://www.zoneminder.com/forums/viewtopic.php?t=12238 **''SkyIPCam7xx''** comme module pour controler la caméra. Lien: http://www.zoneminder.com/forums/viewtopic.php?t=12271 # cd /usr/local/share/perl/5.10.0/ZoneMinder/Control # wget http://www.praecogito.com/~brudy/setsnest/zoneminder/SkyIPCam7xx.pm Etc... | :!: Sauf erreur: il n'y a que le compte **''admin''** qui peut l'utiliser ? | ===== Bugs ===== ... zm zmwatch[1714]: ERR [Can't open memory map file '/dev/shm/.zm.mmap.1': Too many open files in system] $ cat /proc/sys/fs/file-max 20925 $cat /proc/sys/fs/file-nr 20934 0 20925 Oups? Un lien pour aider: http://www.netadmintools.com/art295.html