Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Here we proceed without changing “module_compile.sh”.

Code Block
#!/bin/sh -x
HOME_PATH=/home/docker
NUMPY_ARCHIVES=numpy-1.19.4.tar.gz
NUMPY_DIR=numpy-1.19.4
LIB_INSTALL_DIR=${HOME_PATH}/install_path
NUMPY_SITE_PACKAGES=${LIB_INSTALL_DIR}/lib/python3.7/site-packages
OPENCV_ARCHIVES=opencv-3.4.7.zip
OPENCV_DIR=opencv-3.4.7
OPENCV_BUILD_DIR=opencv-3.4.7/build
## for NumPy
cd ${HOME_PATH}
mkdir -p ${NUMPY_SITE_PACKAGES}
tar zxf ${NUMPY_ARCHIVES}
cd ${NUMPY_DIR}
python setup.py build
PYTHONPATH=$PYTHONPATH:${NUMPY_SITE_PACKAGES}
export PYTHONPATH
python setup.py install --prefix=${LIB_INSTALL_DIR}
## for OpenCV
cd ${HOME_PATH}
unzip ${OPENCV_ARCHIVES}
mkdir -p ${OPENCV_BUILD_DIR}
cd ${OPENCV_BUILD_DIR}
cmake \
        -G "Unix Makefiles" \
	-D CMAKE_INSTALL_PREFIX=${LIB_INSTALL_DIR} \
        -D BUILD_CUDA_STUBS=OFF \
        -D BUILD_DOCS=OFF \
        -D BUILD_EXAMPLES=OFF \
        -D BUILD_JASPER=OFF \
        -D BUILD_JPEG=OFF \
        -D BUILD_OPENEXR=OFF \
        -D BUILD_PACKAGE=ON \
        -D BUILD_PERF_TESTS=OFF \
        -D BUILD_PNG=OFF \
        -D BUILD_SHARED_LIBS=ON \
        -D BUILD_TBB=OFF \
        -D BUILD_TESTS=OFF \
        -D BUILD_TIFF=OFF \
        -D BUILD_WITH_DEBUG_INFO=ON \
        -D BUILD_ZLIB=OFF \
        -D BUILD_WEBP=OFF \
        -D BUILD_opencv_apps=OFF \
        -D BUILD_opencv_calib3d=ON \
        -D BUILD_opencv_core=ON \
        -D BUILD_opencv_cudaarithm=OFF \
        -D BUILD_opencv_cudabgsegm=OFF \
        -D BUILD_opencv_cudacodec=OFF \
        -D BUILD_opencv_cudafeatures2d=OFF \
        -D BUILD_opencv_cudafilters=OFF \
        -D BUILD_opencv_cudaimgproc=OFF \
        -D BUILD_opencv_cudalegacy=OFF \
        -D BUILD_opencv_cudaobjdetect=OFF \
        -D BUILD_opencv_cudaoptflow=OFF \
        -D BUILD_opencv_cudastereo=OFF \
	-D BUILD_opencv_cudawarping=OFF \
        -D BUILD_opencv_cudev=OFF \
        -D BUILD_opencv_features2d=ON \
        -D BUILD_opencv_flann=ON \
        -D BUILD_opencv_hal=ON \
        -D BUILD_opencv_highgui=ON \
        -D BUILD_opencv_imgcodecs=ON \
        -D BUILD_opencv_imgproc=ON \
        -D BUILD_opencv_java=OFF \
        -D BUILD_opencv_ml=ON \
        -D BUILD_opencv_objdetect=ON \
        -D BUILD_opencv_photo=ON \
        -D BUILD_opencv_python2=OFF \
        -D BUILD_opencv_python3=ON \
        -D PYTHON3_DEFAULT_EXECUTABLE=/usr/bin/python3.7 \
        -D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \
        -D PYTHON3_LIBRARY=/usr/lib/python3.7 \
        -D PYTHON3_INCLUDE_DIR=/usr/include/python3.7 \
        -D PYTHON3_NUMPY_INCLUDE_DIRS=${NUMPY_SITE_PACKAGES}/numpy-1.19.4-py3.7-linux-aarch64.egg/numpy/core/include \
        -D BUILD_opencv_shape=OFF \
        -D BUILD_opencv_stitching=OFF \
        -D BUILD_opencv_superres=OFF \
        -D BUILD_opencv_ts=OFF \
        -D BUILD_opencv_video=ON \
        -D BUILD_opencv_videoio=ON \
        -D BUILD_opencv_videostab=OFF \
        -D BUILD_opencv_viz=OFF \
        -D BUILD_opencv_world=ON \
        -D CMAKE_BUILD_TYPE=RELEASE \
        -D ENABLE_NEON=ON \
        -D WITH_1394=OFF \
        -D WITH_CUBLAS=OFF \
        -D WITH_CUDA=OFF \
        -D WITH_CUFFT=OFF \
        -D WITH_EIGEN=OFF \
        -D WITH_FFMPEG=OFF \
        -D WITH_GDAL=OFF \
        -D WITH_GPHOTO2=OFF \
        -D WITH_GIGEAPI=OFF \
        -D WITH_GSTREAMER=OFF \
        -D WITH_GTK=OFF \
        -D WITH_INTELPERC=OFF \
        -D WITH_IPP=OFF \
        -D WITH_IPP_A=OFF \
        -D WITH_JASPER=OFF \
        -D WITH_JPEG=ON \
        -D WITH_LIBV4L=OFF \
        -D WITH_OPENCL=OFF \
        -D WITH_OPENCLAMDBLAS=OFF \
        -D WITH_OPENCLAMDFFT=OFF \
        -D WITH_OPENCL_SVM=OFF \
        -D WITH_OPENEXR=OFF \
        -D WITH_OPENGL=OFF \
        -D WITH_OPENMP=OFF \
        -D WITH_OPENNI=OFF \
        -D WITH_PNG=OFF \
        -D WITH_PTHREADS_PF=OFF \
        -D WITH_PVAPI=OFF \
        -D WITH_QT=OFF \
        -D WITH_TBB=OFF \
        -D WITH_TIFF=OFF \
        -D WITH_UNICAP=OFF \
        -D WITH_V4L=OFF \
        -D WITH_VTK=OFF \
        -D WITH_WEBP=OFF \
        -D WITH_XIMEA=OFF \
        -D WITH_XINE=OFF \
	../../${OPENCV_DIR}
make
make install

 

Compile

Compile NumPy module and OpenCV module using docker.

...

We recommend that you delete the files to reduce the folder sizefiles to reduce the folder size.

Info

Simply deleting unnecessary files can reduce the capacity by several tens of MB. Please note that if the app file size becomes too large, it may cause the app to crash due to ROM capacity limitations.

Code Block
languagebash
$ cd ${SDK_DIR}/src/adamapp-py/yuv_yolo_app/python/site-packages/numpy/
$ find . -name *pycache* -print | xargs rm -rf

...

Code Block
languagebash
$ cd ${SDK_DIR}/src/adamapp-py/yuv_yolo_app/external/lib/aarch64-linux-gnu/
$ aarch64-linux-gnu-strip --strip-debug libopencv_world.so.3.4.7

...

SQLite module is installed in the following directory.

${SDK_DIR}/external/build/sample/docker/docker_volume/install_path/lib

libsqlite3.so
libsqlite3.so.0
libsqlite3.so.0.8.6
libsqlite3.la
libsqlite3.a

Copy the above 5 files to the AdamApp source directory.

${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu

...

...

${SDK_DIR}/external/build/sample/docker/docker_volume/install_path/lib

...

libsqlite3.so
libsqlite3.so.0
libsqlite3.so.0

...

.8.6

Copy the above 5 files to the AdamApp source directory.

${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu

...

Code Block
$ cp -R ${SDK_DIR}/external/build/sample/docker/docker_volume/install_path/lib/libsqlite3.so.0.8.6 ${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu
$ cp -R ${SDK_DIR}/external/build/sample/docker/docker_volume/install_path/lib/libsqlite3.so.la0 ${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu
$ cp -R ${SDK_DIR}/external/build/sample/docker/docker_volume/install_path/lib/libsqlite3.a.so.0.8.6 ${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu

...

${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu/libsqlite3.so
${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu/libsqlite3.so.0
${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu/libsqlite3.so.0.8.6
${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu/libsqlite3.la
${SDK_DIR}/src/adamapp-py/sqlite_app/external/lib/aarch64-linux-gnu/libsqlite3.a

 

Deploy sqlite for Python

...

pycurl 7.45.2

https://files.pythonhosted.org/packages/a8/af/24d3acfa76b867dbd8f1166853c18eefc890fc5da03a48672b38ea77ddae/pycurl-7.45.2.tar.gz

OpenSSL 1.1.11

https://github.com/openssl/openssl/archive/OpenSSL_1_1_1i.tar.gz

OpenSSL 3.0.12

https://github.com/openssl/openssl/archive/OpenSSL_1_1_1i/releases/download/openssl-3.0.12/openssl-3.0.12.tar.gz

Place the downloaded files to “${SDK_DIR}/external/build/sample/docker/docker_volume” directory.

Info

If the your SoC is ambaCV2X or ambaCV5X (camera firmware is v3.10 or earlier), the camera uses use OpenSSL 1.1.1 , so it will work without placing OpenSSL. Camera firmware to match the version of OpenSSL in the camera. If your SoC is ambaCV5X (v3.20 and later or later), use OpenSSL 3.0.12 as it has been updated to OpenSSL 3.0.12, so it will not work unless OpenSSL is placed. Please select and use the version of OpenSSL that matches your app environment..

For more information on SoC, see below.

Installation conditions for applications - FAQ - Development Partner Portal (En) (i-pro.com)

Update compilation instructions file

...

Code Block
#!/bin/sh -x

HOME_PATH=/home/docker

OPENSSL_ARCHIVES=openssl-OpenSSL_1_1_1i.tar.gz
OPENSSL_DIR=openssl-OpenSSL_1_1_1i

PYCURL_ARCHIVES=pycurl-7.45.2.tar.gz
PYCURL_DIR=pycurl-7.45.2

apt update
apt install libcurl4-openssl-dev libssl-dev

cd ${HOME_PATH}
tar zxf ${OPENSSL_ARCHIVES}
cd ${OPENSSL_DIR}
./Configure linux-aarch64
make

export PYCURL_SSL_LIBRARY=openssl
export CPPFLAGS=-I${HOME_PATH}/${OPENSSL_DIR}/include/openssl
export LDFLAGS=-L${HOME_PATH}/${OPENSSL_DIR}

## for pycurl
cd ${HOME_PATH}
tar zxf ${PYCURL_ARCHIVES}
cd ${PYCURL_DIR}
python3.7 setup.py --with-openssl --openssl-dir=${HOME_PATH}/${OPENSSL_DIR} build
Info

If you are using OpenSSL 3.0.12, please rewrite it as follows.

Before)

OPENSSL_ARCHIVES=openssl-OpenSSL_1_1_1i.tar.gz
OPENSSL_DIR=openssl-OpenSSL_1_1_1i

After)

OPENSSL_ARCHIVES=openssl-3.0.12.tar.gz
OPENSSL_DIR=openssl-3.0.12

Compile

Compile pycurl module and OpenSSL module using docker.

...