ZoneMinder
Original article at: https://wiki.zoneminder.com/Ubuntu_Server_18.04_64-bit_with_Zoneminder_1.30.4_the_easy_way
/var/lib/mysql
/var/www
(or /var/www/html
) /var/cache/zoneminder
sudo add-apt-repository ppa:iconnor/zoneminder sudo apt-get update
wget –no-check-certificate https://173.163.189.225/zoneminder-1.30.4-bionic-amd64.deb
apt install mariadb-server
[mysqld]
section in /etc/mysql/mariadb.conf.d: sql_mode = NO_ENGINE_SUBSTITUTION
apt install apache2
apt install ./zoneminder-1.30.4-bionic-amd64.deb
systemctl enable zoneminder.service
www-data
to the sudo group (to enable use of local video devices): adduser www-data video
systemctl start zoneminder.service
a2enmod cgi a2enmod rewrite a2enconf zoneminder
vim /etc/php/7.2/apache2/php.ini
chown -R www-data:www-data /usr/share/zoneminder/
service apache2 restart
PATH_ZMS
to /zm/cgi-bin/nph-zms
Post-install script is at /var/lib/dpkg/info/zoneminder.postinst
ZoneMinder uses a CGI program called nph-zms
as a vehicle for the browser to hook up to and update the video stream(s). If a message like this appears in the apache log:
[Thu Aug 04 02:03:02.420973 2016] [:error] [pid 12461:tid 139862547818240] [client 192.168.0.220:53274] ERR [socket_sendto( /home/zm/tmp/zms-296737s.sock ) failed: No such file or directory], referer: http://192.168.0.11:8080/zm/index.php?view=watch&mid=1
… this probably means that the ZoneMinder CGI program(s) can't be executed, due to either apache config, actual file locations, etc …
nph-zms
program
The layout selection won't take effect if Firefox's zoom setting isn't at 100%
Firefox only allows a low number of connections by default, and if more than just a small handful of cameras ( perhaps, more than 6 ) are being monitored, there won't be enough connections allowed for all the required activity. The solution for this is to change some settings in Firefox to allow more connections, which is done by visiting the about:config
URL, and changing these settings:
browser.cache.check_doc_frequency 1 browser.cache.disk.enable False network.http.max-connections 100 network.http.max-persistent-connections-per-proxy 100 network.http.max-persistent-connections-per-server 100
Make sure that the apache
login is in the video
group, so that typical ownership/permissions on video devices allows the apache login to access them
… at this point, install from libwww-perl.SlackBuild, then continue with perl modules:
The ZoneMinder.SlackBuild should be installed next
If a USB webcam is desired, alot of them provide an mjpg stream, and these steps would be appropriate
The q4vl2 program can be used to verify some cameras (attached to capture cards, etc…)
To start ZoneMinder manually:
zmpkg.pl start
Sample retrieval:
wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
After unpacking the source:
./configure --prefix=/usr
Edit jdmarker.c an comment out line with JWRN_EXTRANEOUS_DATA, then
export ARCH=x86_64 ; export DESTDIR=/root/build ; make install cd /root/build ; makepkg ../libjpeg-v8d-x86_64-rk4n3.tgz
Change in configure:
CPPFLAGS="${CFLAGS} -D__STDC_CONSTANT_MACROS"
… and then:
./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc --localstatedir=/var --with-webdir=/var/www/htdocs/zm --with-cgidir=/var/www/cgi-bin --with-webuser=apache --with-webgroup=apache ZM_DB_HOST=localhost ZM_DB_NAME=zm ZM_DB_USER=zmuser ZM_DB_PASS=zmpass ZM_SSL_LIB=openssl
cmake -DCMAKE_INSTALL_PREFIX="/usr" -DZM_DB_PASS="h0ckeypuck" DESTDIR=/root/build make DESTDIR=/root/build make install
… The Default DB user=zmuser and default DB name=zm
Edit /srv/www/htdocs/zm/includes/functions.php In function canStreamNative() remove the !isChrome() call
Starting with slackware 14.0, apache config needs tweak … uncomment:
LoadModule cgi_module lib64/httpd/modules/mod_cgi.so
git clone git://github.com/bluecherrydvr/solo6x10.git
diff --git a/solo6010-v4l2-enc.c b/solo6010-v4l2-enc.c index 4b2fbdc..b7ba954 100644 --- a/solo6010-v4l2-enc.c +++ b/solo6010-v4l2-enc.c @@ -949,7 +949,7 @@ static int solo_enc_open(struct inode *ino, struct file *file) fh->fmt = V4L2_PIX_FMT_MPEG; fh->type = SOLO_ENC_TYPE_STD; -#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,37) +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,36) videobuf_queue_sg_init(&fh->vidq, &solo_enc_video_qops, &solo_dev->pdev->dev, &fh->av_lock, diff --git a/solo6010-v4l2.c b/solo6010-v4l2.c index 4a955eb..e3077c2 100644 --- a/solo6010-v4l2.c +++ b/solo6010-v4l2.c @@ -437,7 +437,7 @@ static int solo_v4l2_open(struct inode *ino, struct file *file) return ret; } -#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,37) +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,36) videobuf_queue_dma_contig_init(&fh->vidq, &solo_video_qops, &solo_dev->pdev->dev, &fh->slock, V4L2_BUF_TYPE_VIDEO_CAPTURE,
… then:
make rm /lib/modules/2.6.37.6/kernel/drivers/staging/solo6x10/* make install depmod
Links: ZoneMinder Info … Tech Info