|
Issue:
Low virtual memory may prevent Linux-based 1394 imaging applications from starting.
Cause:
Low virtual memory may prevent Linux-based 1394 imaging
applications from starting. The error received may be one or all of the
following:
Error starting isochronous
stream.
Failed
isochronous
intitialization.
This issue has been observed in applications that use the
video1394 driver for Linux, which is accessed by imaging libraries such
as libdc1394. It may be especially common on video systems that
transmit
large-format images from 2 MP or 5 MP color cameras such as Grasshoper
GRAS-20S4C/50S5C, Flea2
FL2-20S4/FL2G-50S5 and Ladybug3.
To verify if low virtual memory may be the source of these
errors, view the Linux general message log (/var/log/messages) or
kernel ring buffer log (/var/log/dmesg) while running the FlyCap2.exe
demo program included with the FlyCapture 2.0 SDK. Both logs will show
entries similar to the following:
vmap
allocation for size 57634816 failed: use vmalloc=
to increase
size.
Solution:
To fix, take one of the following measures:
-
In your application, manually reduce the number of requested image buffers to lower than the default value of 10. Using the FlyCapture 2.0 interface, set the numBuffers member of the FC2Config struct. Then, call the SetConfiguration member function of the Camera object.
- Increase the amount of virtual memory available to the system. To determine the current amount, issue the following command:
cat /proc/meminfo
The relevant parts of the output are:
VmallocTotal—Total available virtual memory VmallocUsed—Amount used VmallocChunk—Largest contiguous piece
To increase VmallocTotal, use GRUB to add the vmalloc command to the Linux kernel boot line. For a persisted change in virtual memory, use the GRUB configuration editor. Alternatively, use the GRUB selection menu each time at system boot up. For example, to increase virtual memory to 256 MB, specify:
vmalloc=256M
-
Transmit images in Raw8 pixel format, and perform color processing in your application.
-
Run your application on a newer installation of Linux that uses the Juju FireWire kernel driver stack. We have not observed the same virtual memory issues using this driver stack. Juju is compatible with libdc1394 v2, and allows buffer sizes greater than 64 MB. For more information, see https://ieee1394.wiki.kernel.org/index.php/Juju_Migration.
Related
Articles:
1.) Buffer size limitation in video1394 driver for Linux may prevent applications from starting.
2.) Getting Started with FlyCapture 2.0 and Linux
3.) Using Point Grey Imaging Products under Linux.
4.) Transitioning to FlyCapture 2.0
Article
ID: |
356 |
| Published: |
11/17/2010 10:46:38 AM |
Last
Modified: |
11/17/2010 10:53:32 AM |
| Keywords: |
virtual memory, Linux, video1394 |
|