After installing Zoneminder, some people (including me) reported that they had a problem with monitor. A black screen, or even no picture / video at all. From logs, it’s usually said: “Can’t get shared memory id…” or “Shared memory invalid…”, something like that. Especially when we’re using a webcam.
After googling, i found some solutions for this. First, increase the shared memory, and second, edit zmdc.pl file.
1. Increase shared memory maximum
Open the file “/etc/sysctl.conf”, and paste this 2 line at the bottom of the file.
# Increase the maximum shared memory
kernel.shmmax = 167772160
save, and restart your machine.
If still no luck, continue to the next step:
2. Edit zmdc.pl
We need to edit zoneminder source to point the video driver.
Open file ” /usr/bin/zmdc.pl” (the location on some machine, might be different)
and add this code, right before the “my @daemons =….” (about line 64).
$ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l1compat.so’;
.
*UPDATE!* added by ldp
Also work:
$ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l2convert.so’;check your /usr/lib/libv4l or /usr/lib64/libv4l directory for other files to preload
save, and restart your zoneminder.
WALLA!!!
it works like charm…
It Wokrs, finaly it works, Tanks to You
WORKS!
Running Ubuntu 10.04 server.
ZoneMinder v1.24.2
0ac8:301b Z-Star Microelectronics Corp. ZC0301 Webcam
driver zc3xx
may work on other gspca webcams
Cut and Paste to zmdc.pl failed :
Unrecognized character \xE2 in column 20 at /usr/bin/zmdc.pl line 65.
Changed : $ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l1compat.so‘;
To : $ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l1compat.so’;
Could be difference in fonts? but the ‘ is not the same as ‘
Also $ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l2convert.so’;
Works
check your /usr/lib/libv4l or /usr/lib64/libv4l directory for other files to preload
yes, that should be a single quote ‘,
but my text editor changed to: ’
you have to fix the single quote before paste to zmdc.pl
thanks.
It’s work fine on ubuntu 11.04 and sonixj chipset of webcam. Thanks for you solution. Regards.
Hello: i’, trining to fix this problem, your fix didn’d work for me.
should be like this?
my @daemons = (
$ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l1compat.so’;
‘zmc’,
‘zma’,
‘zmf’,
‘zmfilter.pl’,
‘zmaudit.pl’,
‘zmtrigger.pl’,
‘zmx10.pl’,
‘zmwatch.pl’,
‘zmupdate.pl’,
‘zmtrack.pl’
adding:
$ENV{LD_PRELOAD} = ‘/usr/lib64/libv4l/v4l2convert.so:/usr/lib64/libv4l/v4l1compat.so’;
just before
my @daemons = (
works lika charm on my fc15 64bit box which, otherwise, would scream the logs full of :
05/06/2012 12:15:16.611943 zmdc[11139].ERR [‘zmc -d /dev/video0’ exited abnormally, exit status 11]
thanks a lot !!!
AWWWWWW you rock! This made my whole week.
I am on ubuntu 12.0.4 32-bit and had to add this to the path of the libs i386-linux-gnu/
So they look like:
$ENV{LD_PRELOAD} = ‘/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so’;
$ENV{LD_PRELOAD} = ‘/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so’;
update:
I had to put them together as well.
$ENV{LD_PRELOAD} = ‘/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so:/usr/lib/i386-linux-gnu/libv4l/v4l1convert.so’;
Doesn’t work for me: the Zoneminder Console stopped
I had this problem before and solved it by adding the command Sleep 15 in the file /etc/init.d/zoneminder
After that it worked but no obviously the mysql server starts too soon.
How can i fix this problem?
Problem solved!
Just added a new monitor and that one works fine.
This does not work for me
im using 12.04 LTS 64BIt
Your instructions are bland…. . $ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l1compat.so’;
right before or right above, does it have a space between the two??? Im confused and cant figure this out.
any help appreciated…
John
Hi,
it should be like this:
$ENV{LD_PRELOAD} = ‘/usr/lib/libv4l/v4l1compat.so’;
my @daemons = ….