Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers. Note that due to large amounts of spam attempts, your first three posts will be manually moderated, so please be patient.
We have moved to a new forum at http://jevois.usc.edu, please check it out. The forum at jevois.org/qa will not allow new user registrations but is maintained alive for its useful past questions and answers.
Welcome to JeVois Tech Zone, where you can ask questions and receive answers from other members of the community.

Feedback request: updated SDK INSTALL script and VM

+2 votes

We have updated the installation method for the jevois-sdk to eliminate problems reported by some users with paths used during built becoming hardcoded into the install and then causing issues.

1. One way to eliminate the problem is to rebuild from scratch. That was a bit tedious but is fully automated now.  It still takes a very long time but you can run it overnight. We have tested on Ubuntu 17.04 with success. I suspect 16.10 works too. On 16.04 we are currently stuck on finding suitable gcc-6-arm-linux-gnueabihf and g++-6-arm-linux-gnueabihf debian packages for that distro.

Could interested parties please try it and report any issues? Instead of downloading a big file with lots of precompiled code, you now just download a script, and it will download everything it needs as it builds:

wget http://jevois.org/data/jevois-easy-install.sh

chmod a+x jevois-easy-install.sh

./jevois-easy-install.sh

You can run the script with option -y to say Yes to all the questions. You may want to increase your sudo time as explained, for example, here: http://lifehacker.com/make-sudo-sessions-last-longer-in-linux-1221545774 so that you only need to enter your password once (otherwise you will have to enter it several times throughout the process). Set it at 10 hours or such...

2. Another way is to use a pre-installed virtual machine. We have a VirtuaBox image here:

http://jevois.org/data/JeVois-Ubuntu-17.04.tbz  (7 GB)

Anyone interested in trying it out? Remember that in VirtualBox you need to pass your USB devices (like SD card reader) through to the virtual machine, for example by clicking the icon that looks like a USB connector at the bottom of the virtualbox screen and selecting the appropriate devices.

3. The method of building a .jvpkg package with your new module and then just dumping that to JEVOIS:/packages/ on your microSD should work now. Next time you reboot your camera it will unpack and install your module. This is the preferred way to install new modules for users who do not want to deal with completely rebuilding and reflashing an entire microSD card. Anyone could please test, for example as done in http://jevois.org/tutorials/ProgrammerHello.html

4. One last way which we are working on now is to create Ubuntu debian packages for the JeVois software. This is still in progress but the basic plan is as follows. This is expected to be much less work for casual programmers who just want to develop their own modules and do not need to recompile jevois or jevoisbase or buildroot, etc. A bit like when you install opencv Ubuntu packages and then write your own app using opencv (but you are not modifying opencv itself):

jevois-opencv-3.2.0.deb - contains OpenCV with the compilation flags we want for JeVois. Installs in /usr/share/jevois-opencv so that it does not conflict with other projects. Our CMake files will look for it there.

jevois-host-1.0.0.deb - contains JeVois compiled for host. Includes /usr/bin/jevois-daemon, /usr/include/jevois/*, and basic /jevois skeleton with config files, video mappings, etc for the host.

jevoisbase-host-1.0.0.deb - contains JeVois base modules, likely in /usr/share/jevoisbase

jevois-sdk-1.0.0 - contains pre-compiled kernel, bootloaders, and linux kernel rootfs in /usr/share/jevois-sdk, and also stages /var/jevois-sdk/jevois which is the new location for the staging of the JEVOIS: microSD partition and where we will install compiled modules and data. Currently this staging area is deep inside the buildroot build but is does not have to be, it's just a matter of changing our CMake scripts a little.

jevois-platform-1.0.0.deb - contains /usr/share/jevois-platform/ with in there libjevois.so, jevois-daemon, etc cross-compiled for the camera processor. Those will get copied to the staging area in /var/jevois-sdk as we make a new microSD image

jevoisbase-platform-1.0.0.deb - contains /usr/share/jevoisbase-platform/ with in there libjevoisbase.so and all the modules compiled for platform

Once these packages are installed, the microSD flashing scripts will collect the various bits into the staging area in /var/jevois-sdk and flash the sd card. Does this sound like a reasonable plan? In the end we will probably end up with just requiring new developers to add our PPA so they can pull the debs and then apt install jevois-sdk will pull everything as dependencies.

asked May 23, 2017 in Programmer Questions by JeVois (46,580 points)

1 Answer

0 votes
I think this will be a great idea, and I think I got  it working....

I tried this method on a 64bit Ubuntu 7.04 (Zesty) but the jevois-easy-install ran into an issue with lib32stdc++6 reported as not being installed. I tried manually to apt-get it and got same result.

I continued on with the script anyway, hoping that this 64-bit host wouldn't need it, but If this is a cross-compiler related lib guess it'll cause issues later....

So far so good. Has apparently compiled everything. Jevois-daemon runs on the host (though it doesn't like my Logitech Quickcam even though guvcview has no issues with it. Something about "Unsupported pixel format S561") So I used a different camera and it seems to work brilliantly!

Anyway, thanks for the 'easy-install' method. I'll let you know how it goes when I try to install a new vision-processing module.
answered Jun 4, 2017 by Tcornall (700 points)
edited Jun 4, 2017 by Tcornall
great, thanks much for the feedback, we are looking into this. We are almost done with creating .deb packages for everything which will make installation much easier. Hopefully we will post these later this week.
I did make a new module (using the method described in http://jevois.org/doc/ModuleTutorial.html) and it went smoothly and does what I asked of it. (Pretty simple Otsu automatic thresholding). I like the framework, script and tutorials you provide for quickly rebuilding and retesting during development on the host.  Speeds things up immensely.
Comparison with previous experience using Python ad Opencv is very favourable in terms of ease of development and the resulting processing speed is much faster. Great job!

One question is how to update now to Jevois 1.1 (I have 1.0 as a result of using jevois-easy-install.sh.)
Should I just run it again, or should I use the deb packages and update things more manually?
...