Ensure you have the correct PixeLINK SDK Variant


There are several variants of the PixeLINK SDK (for Linux):

  • 64-bit variant that is built for Intel x86 'PCs'. These systems may have an Intel, or an AMD processor.         

    • v2.1 for PCs running Ubuntu 14.04

    • v2.2 for PCs running Ubuntu 16.04

    • v2.3 for PCs running Ubuntu 14.04 or Ubuntu 16.04

    • v2.4 for PCs running Ubuntu 14.04 or Ubuntu 16.04 or Ubuntu 18.04

  • A 32-bit variant that is built for ARM7 platforms, including the Odroid XU3/4 and the NVIDIA Jetson-TK1.         

    • v2.1 for Odroid XU3/4 running Ubuntu 14.04

    • v2.1 for Jetson TK1 running Ubuntu 14.04

    • v2.2 for Odroid XU3/4 running Ubuntu 16.04

    • v2.3 for ARM7 platforms running Ubuntu 14.04 or Ubuntu 16.04

    • v2.4 for ARM7 platforms running Ubuntu 14.04 or Ubuntu 16.04

  • A 64-bit variant that is built for ARM8 platforms, including Jetson TX1/TX2

    • v2.1 for Jetson TX1/TX2 running Ubuntu 14.04

    • v2.2 for Jetson TX1/TX2 running Ubuntu 16.04

    • v2.3 for ARM8 platforms running Ubuntu 14.04 or Ubuntu 16.04

    • v2.4 for ARM8 platforms running Ubuntu 14.04 or Ubuntu 16.04


The installation instructions for your SDK Variant are written in the INSTALL_INSTRUCTIONS.txt file, which is included with the downloaded SDK. For convenience, some of the required steps are listed below, but please refer to the install instructions file for a comprehensive list.


Install prerequisite libraries


The PixeLINK SDK uses the libraries listed below. Please install the latest variant of these libraries on your system. Be sure to choose the 64-bit variant for PCs, and the 32-bit variant for ARM7s.  

  • SDL2. Simple Directmedia Layer, used principally for video previewing capabilities. For instance, you can download the 2.0 version of this library with the following command:        

    • sudo apt-get install libsdl2-2.0


  • Additionally, if you intend to develop (Gnome based) GUI applications, similar to the captureOEM sample application, you will need the development files for this library.  That is:        

    • sudo apt-get install libsdl2-dev

 

  • GNU C++ toolchain, including the G++ compiler/linker. For instance, you could use the following command to install the necessary tools to build basic applications (including the GNU C++ toolchain):        

    • sudo apt-get install build-essential

 

  • GTK+3 and Glade, used for the (Gnome-based) GUI applications captureOEMLite and simpleGui. GTK+3 is a dependent library of Glade, so installing Glade will also install GTK+3. Your version of Gnome will have software package management tool, it's usually easiest to use it to download the Glade tool.        

    • [for Ubuntu 14.04] sudo apt-get install glade-gnome

    • [for Ubuntu 16.04/18.04] sudo apt-get install glade

 

  • ffmpeg / libav.  ffmpeg is an open source video compression library, while libav is a forked version of that library that was used with Ubuntu 14.04.  You can install the latest variant of this library as follows:

    • [for Ubuntu 14.04] sudo apt-get install libav-tools

    • [for Ubuntu 16.04/18.04] sudo apt-get install ffmpeg


Install the PixeLINK SDK files


The PixeLINK SDK files have been archived into the compressed archive file PixeLINKSdk-for-zzzzz-vx.y, where 'zzzzz' identifies the target OS for the specific install (such as Ubuntu14.04-x86_64 for a 64-bit build of Ubuntu v14.04 on a PC platform), and 'x' and 'y' refer to the version and sub-version respectively. Before decompressing this archive, you should consider an 'appropriate' location for the PixeLINK files. For example, a single user install may want to locate the files off of the directory ~/PixeLINKSdk, whereas a multi-user install would want the files located in a more central location. When decompressed (using a command like tar -xzvf PixeLINKSdk-for-Ubuntu14.04-x86_64-v1.0.tar.gz), the PixeLINK SDK will be expanded into the following folders:


  • lib: This folder contains the shared libraries required to build (link) camera control applications. Your build process must be able to 'locate' these libraries (see ' Ensure your applications are building for Linux' below).

  • include: This folder contains the 'C' header files describing the programmers interface to the PixeLINK API.

  • samples: This folder contains a series of other folders which provide sample applications that use the PixeLINK API. These folders contain all of the source and makefiles needed to build the application.

  • utilities: This folder contains any PixeLINK utility programs, provided in binary form. See the READ.ME.txt file for a list of these utilities.


Create a PIXELINK_SDK_INC and PIXELINK_SDK_LIB environmental variables


These environmental variables identify the folder where the PixeLINK SDK files have been installed (from the previous step).  See the makefiles in the sample application to see how this variable can be used to build applications.


The easiest way to do this, is to create and export them within a startup script.  One way of doing this is shown in the step below.


Configure your system so that the runtimes can find the PixeLINK shared objects


You could do this by locating the shared objects in a common location (such as /lib) and using the ldconfig to create the necessary links to the shared libraries, however this requires super user privilege.  Alternatively, you can add the path $PIXELINK_SDK_LIB (where PIXELINK_SDK was created in the step above) to the environmental variable LD_LIBRARY_PATH.


For example, assuming the PixeLINK SDK files were installed to the ~/PixeLINKSdk folder, you could accommodate both this and the previous step by adding the following set of commands to a particular users ~/.bashrc file:


      # +++++ PixeLINK cameras/SDK +++++

      PIXELINK_SDK_INC=~/PixeLINKSdk/include

      PIXELINK_SDK_LIB=~/PixeLINKSdk/lib

      LD_LIBRARY_PATH=$PIXELINK_SDK_LIB

      export PIXELINK_SDK_INC

      export PIXELINK_SDK_LIB

      export LD_LIBRARY_PATH

      # ----- PixeLINK cameras/SDK -----



Add read/write privilege to the camera device(s)


PixeLINK API applications require read and write access to the USB device (the camera) in order to communicate with the device.  On Ubuntu, this can be accomplished by creating a 'PixeLINK.rules' file in the 'etc/udev/rules.d'  folder, that contains the following lines:


    SUBSYSTEM=="usb",ATTRS{idVendor}=="1996",MODE="0666"

    SUBSYSTEM=="usb_device",ATTRS{idVendor}=="1996",MODE="0666"


Note that you will need super user privilege to create this file in this folder, but once this is done, all users will be able to control all PixeLINK cameras connected to the system.  For instance, the following command will open/create this file:


    sudo gedit /etc/udev/rules.d/PixeLINK.rules



For more instructions, please see the INSTALL_INSTRUCTIONS.txt file, included in the downloaded SDK.


If you run into any issues when installing the SDK, please Contact Support