Skip to content

Software dependencies and configurations

Sibo Wang-Chen edited this page Feb 11, 2025 · 15 revisions

eGrabber (for Euresys frame grabber)

Download both eGrabber and Memento (a debugging tool) from https://www.euresys.com/en/download-area/. This should include something like:

# eGrabber
egrabber-linux-offline-documentation-en-24.12.2.2194.tar.gz
egrabber-linux-sample-programs-24.12.2.16.tar.gz
egrabber-linux-x86_64-24.12.3.24.tar.gz
egrabber-release-notes-24.12.3.2195.pdf

# Memento
memento-linux-offline-documentation-en-24.12.0.6056.tar.gz
memento-linux-x86_64-24.12.0.3.tar.gz
memento-release-notes-24.12.0.6056.pdf

Version used for development: 24.12 (for both).

Important

You must use Memento first before eGrabber!

Use the provided installer:

cd memento-linux-x86_64-24.12.0.3/
sudo ./install.sh

It's possible that you are missing some dependencies. Just read the output carefully and follow any instruction.

Then, to install eGrabber, follow instruction in egrabber-linux-x86_64-24.12.3.24/INSTALL, namely:

cd egrabber-linux-x86_64-24.12.3.24/
sudo ./install.sh

Important

Upon installation, don't be so fast closing the terminal! Read the output carefully and follow on-screen instruction to complete the process. In brief:

. /opt/euresys/egrabber/shell/setup_gentl_paths.sh
. /opt/euresys/egrabber/shell/select-coaxlink-producer.sh

Add the following to ~/.bashrc:

export EURESYS_COAXLINK_GENTL64_CTI=/opt/euresys/egrabber/lib/x86_64/coaxlink.cti

Then, start a new shell and run:

/opt/euresys/egrabber/shell/select-default-producer.sh coaxlink

Finally, restart the computer.

Troubleshooting

In case of problems, the following log files are worth looking into:

  • /opt/euresys/egrabber/install.log.
  • sudo /opt/euresys/egrabber/shell/check-install.sh output.
  • sudo dmesg output.
  • sudo lspci -vvv output.
  • A highest verbosity Memento dump captured while you start eGrabber Studio (start Memento, then launch eGrabber).

Tip

Given the issue might be hardware-related, it might help to really power cycle the computer instead of restarting (ie. sudo reboot now). Specifically, turn the computer off, cut power supply, press On button to discharge capacitors, wait a bit to be extra sure, then turn power supply back on and start the computer).

Note

I encountered a problem where upon booting the OS, the four LEDs on the frame grabber bracket stay solid orange. Based on the frame grabber manual, this indicates that the frame grabber never exited the "system booting" mode. With the assistance from Euresys support, we narrowed the problem down to the following error messages from Memento:

[    2.902599] memento: no symbol version for module_layout
[    2.902645] memento: disagrees about version of symbol devmap_managed_key
[    2.902646] memento: Unknown symbol devmap_managed_key (err -22)

... and the solutions was to uninstall eGrabber, uninstall Memento, reboot the machine (following the procedure above), install Memento (latest version, ie. 24.12), and install eGrabber (latest version, ie. 24.12) in this order.

If nothing works, contact Euresys support. They (specifically Mr. Julien Weber) were very helpful.

OpenCV

Follow official instruction. For the C++ library on Linux without building from source:

sudo apt install libopencv-dev

Version used: 4.6.0. To check actual version:

pkg-config --modversion opencv4
4.6.0

Boilerplate code and CMakeLists.txt to get started:

cd opt/examples/opencv_cpp_boilerplate
mkdir build
cd build
cmake ..
make
./main <path-to-some-image>  # the image should display

Zaber (motion control)

Zaber Launcher (GUI application)

Download the .AppImage file from https://www.zaber.com/software; then run it directly:

chmod ago+x ZaberLauncher.AppImage
./ZaberLauncher.AppImage

If the following error is encountered:

AppImages require FUSE to run. 
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information

... then, go to the FUSE github repo as directed and install FUSE following the instructions there. In brief, these are:

sudo add-apt-repository universe
sudo apt install libfuse2  # for Ubuntu 22.04
sudo apt install libfuse2t64  # for Ubuntu 24.04

Then run ZaberLauncher.AppImage again.

If the following error is encountered:

[13052:0208/184049.386863:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /tmp/.mount_ZaberLlZtImo/chrome-sandbox is owned by root and has mode 4755.

... then, rerun with the --no-sandbox flag:

./ZaberLauncher.AppImage --no-sandbox

Then, follow on-screen instruction to create a connection (if not already done).

If the following error is encountered:

Cannot Open Connection
Cannot open serial port: Permission denied. You may need to add user to the "dialout" group to access serial ports.
You can still create the connection and resolve the issue later.

... then simply run:

sudo chmod ago+rw /dev/ttyACM0  # or replace with appropriate USB device

ALTERNATIVELY, add the current user to the dialout group as instructed:

sudo usermod -a -G dialout $USER

Then, restart before relaunching Zaber Launcher and retrying.

Zaber Motion library

Go to https://www.zaber.com/software and follow instructions under "Getting Started." For C++:

sudo dpkg -i ZaberMotionCppInstaller-7.4.0-Linux_x64.deb

Boilerplate code and CMakeLists.txt to get started:

cd examples/zaber_cpp_boilerplate/
mkdir build
cd build
cmake ..
make
./zaber

Arduino IDE

TODO

Clone this wiki locally