JeVois  1.6
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Organization of JeVois files on host and platform

As detailed in Concepts used throughout this documentation, JeVois software can be compiled and installed simultaneously for a desktop computer (host mode, typically using an Intel computer for rapid development and testing of new machine vision algorithms, and for the JeVois platform hardware (platform mode, where everything is cross-compiled for the ARM processor inside JeVois).

An additional factor is that the microSD for JeVois may not be available at the time the various elements (Linux kernel, Linux operating system and utilities, OpenCV and other libraries, JeVois core, JeVois modules, etc) are compiled. Thus, compiling and installing in platform mode will make use of some so-called staging areas, which are some directories on the host computers where the various bits and pieces will be assembled so that they can later be flashed to microSD.

Organization overview

  • On the platform, all modules and config files get installed into a dedicated VFAT partition /jevois (which can be exported by JeVois as a virtual USB drive).
  • Executables, core libraries and include files get installed into /usr/bin, /usr/lib, /usr/include, etc as usual.
  • Hence, on host, we also install all modules and config files into /jevois (this is mainly to avoid surprises with different paths on host and platform and troubleshooting why a module that worked great in host mode cannot find its data files when running on platform).
  • Likewise, we also install executables, libraries and include files natively compiled for host into /usr/bin, /usr/lib, /usr/include, etc as usual.
  • Further, bootloaders, boot config files, and compiled operating system for the JeVois platform are placed into a first staging directory /var/lib/jevois-build, which is dedicated to all files that will end up into the LINUX and BOOT partitions on the microSD.
  • Cross-compiled machine vision modules, libraries, and config files for the platform are placed into a second staging directory /var/lib/jevois-microsd, which is dedicated to all files that will end up into the JEVOIS partition on the microSD.
  • Final microSD flashing script jevois-flash-card combines the contents of /var/lib/jevois-build and /var/lib/jevois-microsd into the final microSD card.

Organization details

  • When compiling and installing jevois for host (using ./rebuild-host.sh inside jevois; see Compiling JeVois core software from source):
    • Config files used by JeVois at runtime are installed into /jevois/config/
    • Executables including jevois-daemon are installed into /usr/bin/
    • Include files (needed when compiling modules for host) are installed into /usr/include/jevois/
    • The core JeVois library (libjevois.so) is installed into /usr/lib/
    • Documentation files are installed into /usr/share/doc/jevois-host/
    • Try a dpkg -c jevois-host-VERSION.deb on the deb downloaded from http://jevois.usc.edu to confirm.
  • When cross-compiling and installing jevois for platform (using ./rebuild-platform.sh inside jevois; see Compiling JeVois core software from source):
    • Config files used by JeVois at runtime are staged into /var/lib/jevois-microsd/config/ and will be installed into /jevois/config/ on the actual microSD card.
    • Executables including jevois-daemon are staged into /var/lib/jevois-build/usr/bin/ and will be installed into /usr/bin/ on the actual microSD card.
    • Include files are staged into /var/lib/jevois-build/usr/include/jevois/ and will be installed into /usr/include/jevois/ on the actual microSD card.
    • The core JeVois library (libjevois.so) is staged into /var/lib/jevois-build/usr/lib/ and will be installed into /usr/lib/ on the actual microSD card.
    • Documentation files are staged into /var/lib/jevois-build/usr/share/doc/jevois-platform/ and will be installed into /usr/share/doc/jevois-platform/ on the actual microSD card.
    • Try a dpkg -c jevois-platform-VERSION.deb on the deb downloaded from http://jevois.usc.edu to confirm.
  • When compiling and installing jevoisbase (or, similarly, samplemodule or your own module) for host (using ./rebuild-host.sh inside jevoisbase (or your module's source tree); see Compiling JeVois core software from source):
    • Config files used by JeVois at runtime are installed into /jevois/config/
    • Machine vision modules are installed into /jevois/modules/
    • Executables (if any) are installed into /usr/bin/
    • Include files (possibly needed when compiling further modules for host) are installed into /usr/include/jevoisbase/
    • Libraries (if any) is installed into /usr/lib/
    • Documentation files are installed into /usr/share/doc/jevoisbase-host/
    • Try a dpkg -c jevoisbase-host-VERSION.deb on the deb downloaded from http://jevois.usc.edu to confirm.
  • When cross-compiling and installing jevoisbase (or, similarly, samplemodule or your own module) for platform (using ./rebuild-platform.sh inside jevoisbase (or your module's source tree); see Compiling JeVois core software from source):
    • Config files used by JeVois at runtime are staged into /var/lib/jevois-microsd/config/ and will be installed into /jevois/config/ on the actual microSD card.
    • Machine vision modules are staged into /var/lib/jevois-microsd/modules/J and will be installed into /jevois/modules/ on the actual microSD card.
    • Executables (if any) are staged into /var/lib/jevois-build/usr/bin/ and will be installed into /usr/bin/ on the actual microSD card.
    • Include files are staged into /var/lib/jevois-build/usr/include/jevoisbase/ and will be installed into /usr/include/jevoisbase/ on the actual microSD card.
    • Libraries (if any) (e.g., libjevoisbase.so) are staged into /var/lib/jevois-microsd/lib/ and will be installed into /jevois/lib/ on the actual microSD card. Note the deviation here compared to host; this is so that, on host, the libraries can be loaded easily without requiring special fiddling with library paths, while, on platform, it is desirable to have them in /jevois/ so that they can be upgraded by exporting the JEVOIS partition over USB while JeVois is running.
    • Documentation files are staged into /var/lib/jevois-build/usr/share/doc/jevoisbase-platform/ and will be installed into /usr/share/doc/jevoisbase-platform/ on the actual microSD card.
    • Try a dpkg -c jevoisbase-platform-VERSION.deb on the deb downloaded from http://jevois.usc.edu to confirm.
  • OpenCV is installed into /usr/share/jevois-opencv-VERSION/ on host and into /usr/bin/, /usr/lib/, /usr/include/, etc on platform. Here again there is a difference between host and platform, which is due to the desire of not being too obtrusive on the host, as more and more other software packages tend to rely on the standard Ubuntu-provided OpenCV packages, even though those may not be appropriate for JeVois (e.g., older OpenCV version, possibly no contribs, possibly no Python or different Python version, etc)
  • The jevois-sdk Ubuntu package provides the following files needed to create a JeVois microSD card, which are some of the results of running the complex full rebuild from source in jevois-sdk:
    • /usr/bin/jevois-flash-card script to flash microSD cards for JeVois.
    • Bootloader files, Linux operating system for platform, etc in /var/lib/jevois-build/boot/
    • Try a dpkg -c jevois-sdk-VERSION.deb on the deb downloaded from http://jevois.usc.edu to confirm.
  • The jevois-sdk-dev Ubuntu package provides the following additional files needed for further development (e.g., cross-compiled OpenCV libraries, cross-compiled boost, cross-compilers, etc), which are some of the results of running the complex full rebuild from source in jevois-sdk:
    • Pre-compiled whole buildroot tree in /usr/share/jevois-sdk/out/