Video Surveillance With ZoneMinder On Ubuntu

ZoneMinder is the top Linux video camera security and surveillance solution. In this document I will cover how to get ZoneMinder up and running on Ubuntu 6.06.1 LTS or Dapper Drake with the recent updates included.


Hardware Requirements

The surveillance system I am covering here utilizes 4 Dome CCTV cameras hooked up to a single Kodicom kmc-8800 capture card, in addition I also used infrared LEDs so my cameras could see in the dark (honestly I'm abit scared to look). ZoneMinder also does a good job with IP Cameras, unfortunatly they are considerably expensive in my part of the world, hence 4 cameras would blow my budget.

For an in-depth guide of supported hardware one may refer to this link

In building a system like this one must be aware that it would be storage hungry, therefore an LVM partitioning scheme would be wise to anticipate growth of the system.

In my experience a rig with 4 cameras clogged up my Pentium 4 1,7GHz test system therefore on a production system I used the following resources.

egrep "processor|name" /proc/cpuinfo
processor : 0
model name : Intel(R) Pentium(R) 4 CPU 3.06GHz
processor : 1
model name : Intel(R) Pentium(R) 4 CPU 3.06GHz
cat /proc/meminfo | grep MemTot
MemTotal: 515264 kB

First step after assembly of hardware and strategically placing each CCTV camera, is the Operating System installation. Here I installed a base system without any X-window.

Then we must set an static IP for the system:

cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
cat /etc/hosts | grep cctv cctv

Then we edit the /etc/apt/source.list to include mulitverse and universe repositories.

deb dapper main restricted multiverse universe

Afterwards we update and upgrade our system:

sudo apt-get update
sudo apt-get upgrade

In my setup a reboot was required. Next step after reboot is to install Apache, php and MySQL:

sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server

Then we need to install the following applications and libraries:

sudo apt-get install ffmpeg libarchive-tar-perl libarchive-zip-perl libdate-manip-perl libdevice-serialport-perl

sudo apt-get install libjpeg62 libmime-perl libstdc++6 libwww-perl zlib1g

Afterwards we download the .deb from the maintainer website:


Next we install it with the following command:

sudo dpkg -i zoneminder_1.22.3-8_i386.deb

My system had a few dependancy errors, therfore I ran:

sudo apt-get -f install

which automagically fixed any problems.

Here we have already installed all the required packages, next we need some configuration.

First we configure Apache:

sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
sudo /etc/init.d/apache2 force-reload

This surveillance application is run by the apache, therefore to enable access to the Video device we must add www-data to the video group:

sudo adduser www-data video

Now we can access the ZoneMinder GUI, from our favorite browser we type in the URL:


From this interface first step is to add cameras:

CCTV New Video 1

Here we specify the device, dimension and color:

CCTV New Video 2

Result of the newly added camera:

CCTV New Video 3

Then we tell ZoneMinder how to process captured images:

CCTV New Video Options

In my case I chose to Motion Detect my system, where recording will only take place upon movement.

I can also choose which area to monitor for movement, here is a sample on the main entrance:

CCTV Motion Detect Zone

Here is my 4 camera CCTV system:

CCTV Montage

It requires resources as follows:

CCTV CPU Utilization
CCTV Utilization RAM
Share this page:

Suggested articles

37 Comment(s)

Add comment


By: Jarrod

New versions are also available, give this one a shot:

For a directory listing goto




This tutorial seems to be nice but the images are to small to see anything on them. 



Should be large enough now... Thanks 

By: Franck

This tutorial seems really nice and will be usefull for my video surveillance company

By: Anonymous

Sorry, ¿it are ip cams or analog cams?

By: Anonymous

yes, both of them are supported, as well usb cams

By: Anonymous

nice Tutorial,

Did try some of the setting but still blank ... :(

By: Bob

Thank you.

For the clear instructions.

For the actual commands which I cut and pasted.

For my successful install.

Been trying for 3 days to get Zoneminder to work with no luck until now.

Thanks again

By: Anonymous

Does this Zoneminder works on fedora series?

By: Mamunk2


I was trying to follow this instruction!

But when I type the following command in the terminal


then the following result shown


$ wget ftps://
ftps:// Unsupported scheme.
[email protected]:~$ wget
           => `zoneminder_1.22.3-8_i386.deb'
Connecting to||:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD /zoneminder/ubuntu/dapper ...
No such directory `zoneminder/ubuntu/dapper'.

Could you tell me whats wrong there?



By: Gio

looks like the directories are different now...i did alittle investigating and it seems that the correct link in that line would be

By: david

clicked on the link for new zoneminder. It actually went and dloaded and tried to install. a first after years of trying to get ubuntu to do anything. But it complains about unresolvable dependencies. WHy cant linux programmers write standalone code or have the routines compiled into their code. My biggest problem with linux is all the libs and and headers needed that after a month are no longer up to date or supported.  Programs should run not make you pull out your hair looking for hacks to make it work.

By: Steve

I'm a newbie in terms of setting up video surveillance using a linux system so please bear with me.

How well does this setup work at recording the video feeds from all four cameras?  Is this only a monitoring station or can it be used to record the feeds to a large enough hard drive installed on the system?

 I'm looking for a cheaper solution then shelling out the $$ for a full on DVR surveillance system.

Thanks...very cool page.



By: Anonymous

Thanks for the page! 

But, couldn't most of your from-source instructions be replaced with a simple apt-get call?

sudo apt-get install zoneminder

Your last two command line instructions, however, I found to be very much necessary.

 sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf

 sudo adduser www-data video

(I executed this first one, then lost track of this web page, spent hours trying to debug the black screen "shared memory not initialized by capture daemon" / "shared memory not valid" / "can't get shared memory id"  issues and finally found that I could fix them with "chmod 606 /dev/video0"... but turns out that your adduser fix is the more appropriate fix )

 Everything appears to be working now!  Thanks!

By: Remote Camera


Sorry for ask from here 

how can i fix these errors ? Please



05/27/09 15:03:01.020779 zmwatch[2716].ERR [Can't get shared memory id '7a6d0001', 1: No such file or directory]
05/27/09 15:03:11.021439 zmwatch[2716].ERR [Can't get shared memory id '7a6d0001', 1: No such file or directory]
05/27/09 15:03:21.022613 zmwatch[2716].ERR [Can't get shared memory id '7a6d0001', 1: No such file or directory]


05/27/09 16:12:42.088896 zmc_m1[8860].INF-zm_debug.c/292 [New Debug Level = 0, New Debug Log = /tmp/zm_debug.log.08860]
05/27/09 16:12:42.105799 zmc_m1[8860].INF-zmc.cpp/186 [Starting Capture]
05/27/09 16:12:42.271182 zmc_m1[8860].ERR-zm_remote_camera_http.cpp/99 [Can't connect to remote camera: No route to host]
05/27/09 16:12:42.271250 zmc_m1[8860].ERR-zm_remote_camera_http.cpp/1019 [Unable to connect to camera]
05/27/09 16:12:42.271269 zmc_m1[8860].ERR-zmc.cpp/251 [Failed to pre-capture monitor 1 (0/1)]


05/27/09 15:02:07.316738 zmdc[2686].INF [Server starting at 09/05/27 15:02:07]
05/27/09 15:02:10.447738 zmdc[2686].INF ['zmc -m 1' starting at 09/05/27 15:02:10, pid = 2708]
05/27/09 15:02:10.554589 zmdc[2686].ERR ['zmc -m 1' exited abnormally, exit status 255]
05/27/09 15:02:10.554802 zmdc[2686].INF [Starting pending process, zmc -m 1]

By: Carlo

For shared memory related problems see the short page


By: Anonymous

Did you ever solve this ?

By: Anonymous

I can confirm that this works in Ubuntu 9.10 also  - add the zoneminder package and then either edit the apache.conf or link as you did, then

sudo adduser www-data video

I'm using a 4 port capture card from Bluecherry (PV143) and it works great. Thanks!


By: Anonymous

As a follow up, I've just gone through a reinstall with the PV143 card (bttv) on Ubuntu Server 9.10 - here are the steps:

Base Install followed by sudo apt-get update and sudo apt-get upgrade

sudo apt-get install zoneminder

sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf 

sudo adduser www-data video

sudo nano /etc/modprobe.d/bttv.conf and then add the following line:

options bttv gbuffers=32 card=77 tuner=4 radio=0 coring=1 full_luma_range=1 chroma_agc=1 combfilter=1 autoload=0 triton1=0 vsfx=0

Reboot and add a monitor!

By: Steve

After finally getting ZM working with Ubuntu, I've added a tutorial at which addresses some of the problems we ran into, which hopefully will help others too.  I thought I'd link to it from here as this seems to be a popular tutorial and hopefully my extra hints will complement it.  Good luck!


By: Mike

Thank you for this tutorial

By: Skibais

hi, can you write to me on skype ? nick: aarnijs152

 or you can there give ansver on my question ?

 how can i set on zoneminder on modect> events time lenght, it makes only max 22 second record on motiopn, but i need in motion option , but i want set in motion event , to record min one week, or month ,,, ?


 can you help me ? any body ? 

 thanks :) 


By: Anonymous

Which part of "Do not use this space to ask for help" did you don't understand ?

By: Anonymous


 I was just following your guide and MAN ! it rocks.. helpet me ALOT!

 so thank you very very much,

i just got a little update, the ftp link for zoneminder that you provited does NOT work anymore, but i found this instead for a version thats newer:

just wanted to tell :)

and again, thanks for the awesome guide !

By: Dave

Great article, I'm just about to give it a go on a Hyper-V box!

By: Anonymous


Just to say that it is highly recommanded to use the option -f  [in apt-get command] with extreme precaution as it could generate some problems..

Another way to install ZM on debian like system is to use squeeze dist (it contains zm version 1.24..) which is really straight forward in that it eliminates the headache of dependencies :-)

So if u choose this way of doing, edit /etc/apt/sources.list, comment everything and add the following:

deb squeeze main


# apt-get update

# apt-get -y install zoneminder

# ln -s    /etc/zm/apache2.conf     /etc/apache2/zoneminder.conf

(I am not sure if in your installation you will have the same names but i guess it will be ok in 98%.. )

if u need help write me


By: El Habib BIROUK

An error had occured in my previous message: for the symbolic linking the correct command is the following

# ln -s    /etc/zm/apache.conf     /etc/apache2/conf.d/zoneminder.conf

By: Anonymous

I am getting this error 

ln: failed to create symbolic link ‘/etc/apache2/conf.d/zoneminder.conf’

By: BepOS Libre BC

in debian testing (jessie) and in ubuntu 14.04.1 LTS Trusty, you should replace conf.d with conf-enabled

~# ls -la /etc/apache2/conf-enabled/zoneminder.conf
lrwxrwxrwx 1 root root 19 ago 27 17:45 /etc/apache2/conf-enabled/zoneminder.conf -> /etc/zm/apache.conf

By: Jesse Taylor

This guide was much more helpful than the Zoneminder guide for Ubuntu. Thanks for taking the time to put this together.

By: Br*an with an I

Thank you for the easy to follow document, seamless integration with (3) DCS 930L's over wireless!!

By: Jorge Mendes

I can't find the directory: zoneminder/ubuntu/dapper? Is there any other?


By: ip cctv

The range and the clarity of this CCTV camera is really awesome. I recently have a new IP CCTV camera that i bought from an online store and the clarity of that is much better than what you have shown here...

By: sethuper

I have followed step by step in this tutorial, everything is describe, how to install and configure ZoneMinder on Debian/Ubuntu.

By: Bengt

Brilliant tutorial!

Is there a mode that allows for a live video feed?

By: praxidice

Actually this tutorial didn't help me at all. It appears that several critical steps have been omitted. There is stuff-all information about what parameters to put in all the fields and without those, I can't see ANYTHING. Presumably the word 'monitor' refers to a camera but if that is the case it is unnecessarily confusing. I've added four 'monitors' but none of the four cameras even exist as far as Zoneminder is concerned. Where is the troubleshooter ? or did the person who produced the tutorial assume it wasn't necessary and that every installation would work perfectly. Before people start juping up and down, I've spent hundreds of hours over any weeks attepting to make some sense of Zoneminder but every step forward is hard won.

By: Moe

Great tutorial! Sadly though, for me, ZoneMinder died with 15 cameras so I had no choice but to start from scratch. Here is what it is so far : You can check out a comparison with ZoneMinder on the website at