How to test Semioty services with engicam microdev board.
Prepare the building environment
Download the Pyro virtual machine image and run it.
Enter into the yocto source folder and update the layers:
cd pyro/fsl-community
cd sources/
cd meta-engicam
#update the engicam layer
git pull origin pyro
#clone the simoty layer
git clone https://engicamtestgit-admin@bitbucket.org/engicamtestgit/meta-semioty.git
Now we need to setup the yocto environment for building.
For do this , return into the main yocto folder and run the bitbake setup environment script:
source engicam-setup-environment microdev
Change the machine type to microdev changing MACHINE ??= 'microdev' line.
The result should be the same at below:
MACHINE ??= 'microdev'
DISTRO ?= 'fslc-framebuffer'
PACKAGE_CLASSES ?= "package_rpm"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
CONF_VERSION = "1"
BB_NUMBER_THREADS = '4'
PARALLEL_MAKE = '-j 4'
PACKAGE_CLASSES = "package_ipk"
DL_DIR ?= "${BSPDIR}/downloads/"
UBOOT_CONFIG="sd"
PACKAGECONFIG_append_pn-qtbase = " tslib "
PACKAGECONFIG_append_pn-qtbase = " linuxfb "
PACKAGECONFIG_append_pn-qtbase = " fontconfig "
IMAGE_ROOTFS_SIZE = "2097152"
IMAGE_OVERHEAD_FACTOR = "1.0"
PACKAGECONFIG_remove_pn-qtbase = " gl "
PACKAGECONFIG_remove_pn-qtbase = " gles2 "
QT_CONFIG_FLAGS_remove = " -eglfs "
QT_CONFIG_FLAGS_append =" -no-opengl "
DISTRO_FEATURES_remove = " x11 wayland opengl gl"
STARTUPDEMO = "resistive"
ACCEPT_FSL_EULA = "1"
edit the conf/bblayers.conf file and add the meta-semioty layer to the layers list.
gedit conf/bblayers.conf
at the end add the ${BSPDIR}/sources/meta-semioty \ line and save it.
the result should be like:
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"
BBFILES ?= ""
BBLAYERS = " \
${BSPDIR}/sources/poky/meta \
${BSPDIR}/sources/poky/meta-poky \
\
${BSPDIR}/sources/meta-openembedded/meta-oe \
${BSPDIR}/sources/meta-openembedded/meta-multimedia \
\
${BSPDIR}/sources/meta-freescale \
${BSPDIR}/sources/meta-freescale-3rdparty \
${BSPDIR}/sources/meta-freescale-distro \
${BSPDIR}/sources/meta-engicam \
${BSPDIR}/sources/meta-qt5 \
${BSPDIR}/sources/meta-iot-cloud \
${BSPDIR}/sources/meta-openembedded/meta-python \
${BSPDIR}/sources/meta-semioty \
"
Now you are ready to launch the build script.
launch the command:
bitbake semioty-image
Write the sdcard and install SDK
at the end of building enter into the folder deploy folder:
cd tmp/deploy/
In this path you'll the image folder and the sdk folder.
First of all install the SDK.
enter into sdk folder and type:
./fslc-framebuffer-glibc-x86_64-semioty-image-armv7at2hf-neon-toolchain-2.3.1.sh
and follow the install instruction (keep in mind the path of installation your sdk you have to use it during the demo building ).
Now flash the sdcad image.
Insert the sdcard on your sdcard reader and check the reader path with lsblk command.
Suppose to have your sdcard reader on on /dev/sdc.
enter on images foldes, and lanch the command:
cd images/midrodev
sudo dd if=semioty-image-microdev.sdcard of=/dev/sdc bs=12M && sync
now put sdcard in to microdev , select sdcard boot and poweron the board.
Build the semioty demo
clone the latest demo sources from engicam git repo.
On your VM type the command:
git clone https://engicamtestgit-admin@bitbucket.org/engicamtestgit/semiotymicrodev.git
Now enter on semiotymicrodev folder and launch the SDK setup script
source <sdk folder> environment-setup-armv7at2hf-neon-fslc-linux-gnueabi
e.g.
source /opt/fslc-framebuffer/2.3/environment-setup-armv7at2hf-neon-fslc-linux-gnueabi
change the configs.h file with your credential:
#define MQTT_USER <your user>
#define MQTT_PSW <your password>
#define MQTT_TOPIC_SUB "<mqtt topic>/measures"
#define MQTT_TOPIC_SUB_BASE "<mqtt topic>/command"
now build teh application :
cmake .
make
At the end copy the application file on target with your certificate (ask semioty for this).
On target rename the certificate file in my.cert
Warning application file and certificate file must be in the same folder.
Now you are ready to run the application on target.