Hey,
Thanks for all the amazing work you folks have been doing ! Pretty amazing.
For development purposes, we are manually installing the Hailo suite for rpi5 with latest versions to base our development off of that and not the easy sudo apt install hailo-all option that is stuck in 4.18.
Hailo PCIe driver and HailoRT are at 4.23.0. Python and Gstreamer bindings are good except that the gstreamer bindings only gives you hailo gstreamer plugin and not full hailotool plugin.
Hence also building TAPPAS manually from git repo version 3.31.0 but getting a bunch of issues.
First, I haven’t recloned the hailort repo inside tappas as that is redundant, and simply made a symbolic link to my hailort, but I have tried cloning to see if my errors would go away and still didn’t.
I call the :
./install.sh --skip-hailort --target-platform rpi5
but only get to this :
…
usage: main.py [-h] [–root-path ROOT_PATH] [–dump-requirements] [–apps-list APPS_LIST [APPS_LIST …]] {x86,arm,imx8,rockchip,rpi,any}
main.py: error: argument platform: invalid Platform value: ‘rpi5’
I’ve tried with rpi as an argument as it shouldn’t be too far from the track :
./install.sh --skip-hailort --target-platform rpi
but then I get this funny response :
WARNING: Requirement gcc-9 not found.
WARNING: Requirement g+±9 not found.
SYSTEM REQUIREMENTS REPORT
Component Requirement Found
========== ========== ========== ==========
Apt-Package ffmpeg V Required
Apt-Package x11-utils V Required
Apt-Package python3-dev V Required
Apt-Package python3-pip V Required
Apt-Package python3-setuptools V Required
Apt-Package libgirepository V Required
Apt-Package gcc-9 X Required
Apt-Package g++-9 X Required
Apt-Package python-gi-dev V Required
Apt-Package pkg-config V Required
Apt-Package libcairo2-dev V Required
Apt-Package libgirepository1.0-dev V Required
Apt-Package libgstreamer1.0-dev V Required
Apt-Package cmake V Required
Apt-Package libgstreamer-plugins-base1.0-dev V Required
Apt-Package libzmq3-dev V Required
Apt-Package rsync V Required
Apt-Package git V Required
Apt-Package libgstreamer-plugins-bad1.0-dev V Required
Apt-Package gstreamer1.0-plugins-base V Required
Apt-Package gstreamer1.0-plugins-good V Required
Apt-Package gstreamer1.0-plugins-bad V Required
Apt-Package gstreamer1.0-libav V Required
Apt-Package gstreamer1.0-tools V Required
Apt-Package gstreamer1.0-x V Required
Pkg_config-Package opencv4 V Required
Pkg_config-Package opencv_imgproc V Required
Pkg_config-Package opencv_core V Required
Pkg_config-Package opencv_imgcodec V Required
Pkg_config-Package opencv_features2d V Required
Pkg_config-Package opencv_calib3d V Required
Pkg_config-Package opencv_flann V Required
Package Gstreamer V Required
Which brings me to my main question… why are we stuck on v9 for gcc and g++ ?
Couldn’t we just have >=9 somewhere ?
In line 160 in install.sh for v.3.31.0 :
function set_gcc_version(){
if [ “$target_platform” == “rpi” ] || [ “$target_platform” == “rockchip” ]; then
gcc_version=9
else
ubuntu_version=$(lsb_release -r | awk ‘{print $2}’ | awk -F’.’ ‘{print $1}’)
if [ $ubuntu_version -eq 20 ]; then
gcc_version=9
fi
fi
}
For fun I’ve changed line 162 to gcc_version=12 and I get to move on. Talked with a couple of hardcore linux devs at my job with a lot of experience and none see why gcc12 wouldn’t be able to do gcc9’s job. But I do run into another problem.
After having the script pull a bunch of tar files and clone and checkout stuff, I get to the Meson build system with info such as :
The Meson build system
Version: 0.58.0
Source dir: /home/sat/Desktop/sat_rpi5_hailo_dev_environment/tappas/sources/gst-instruments
Build dir: /home/sat/Desktop/sat_rpi5_hailo_dev_environment/tappas/sources/gst-instruments/build
Build type: native build
Project name: gst-instruments
Project version: 0.3.1
C compiler for the host machine: cc (gcc 12.2.0 “cc (Debian 12.2.0-14+deb12u1) 12.2.0”)
C linker for the host machine: cc ld.bfd 2.40
Host machine cpu family: aarch64
Host machine cpu: aarch64
Found pkg-config: /usr/bin/pkg-config (1.8.1)
Run-time dependency glib-2.0 found: YES 2.74.6
Run-time dependency gstreamer-1.0 found: YES 1.22.0
Configuring config.h using configuration
Library dl found: YES
Compiler for language vala skipped: feature ui disabled
Build targets in project: 5
…
…
The Meson build system
Version: 0.58.0
Source dir: /home/sat/Desktop/sat_rpi5_hailo_dev_environment/tappas/core/hailo
Build dir: /home/sat/Desktop/sat_rpi5_hailo_dev_environment/tappas/core/hailo/build.release
Build type: native build
Project name: gst-hailo-tools
Project version: 3.31.0
C compiler for the host machine: gcc-12 (gcc 12.2.0 “gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0”)
C linker for the host machine: gcc-12 ld.bfd 2.40
C++ compiler for the host machine: g+±12 (gcc 12.2.0 “g+±12 (Debian 12.2.0-14+deb12u1) 12.2.0”)
C++ linker for the host machine: g+±12 ld.bfd 2.40
Host machine cpu family: aarch64
Host machine cpu: aarch64
Message: GCC >= 9.0.0 detected, applying extra arguments.
Dependency gstreamer-1.0 found: YES 1.22.0 (cached)
Dependency gstreamer-base-1.0 found: YES 1.22.0 (cached)
Dependency gstreamer-app-1.0 found: YES 1.22.0 (cached)
Dependency gstreamer-video-1.0 found: YES 1.22.0 (cached)
Dependency opencv4 found: YES 4.6.0 (cached)
Dependency glib-2.0 found: YES 2.74.6 (cached)
Dependency gmodule-2.0 found: YES 2.74.6 (cached)
Dependency gobject-2.0 found: YES 2.74.6 (cached)
Dependency pygobject-3.0 found: YES 3.42.2 (cached)
Program python3.11 found: YES (/home/sat/Desktop/sat_rpi5_hailo_dev_environment/tappas/hailo_tappas_venv/bin/python3.11)
Found pkg-config: /usr/bin/pkg-config (1.8.1)
Dependency python found: YES (pkgconfig)
Configuring config.h using configuration
Library dl found: YES
Dependency libzmq found: YES 4.3.4 (cached)
Dependency threads found: YES unknown (cached)
Library stdc++fs found: YES
Dependency threads found: YES unknown (cached)
Dependency threads found: YES unknown (cached)
Dependency glib-2.0 found: YES 2.74.6 (cached)
Dependency gio-2.0 found: YES 2.74.6 (cached)
Build targets in project: 42
…
And then a failure to find the files that should be in the HailoRT cloned repo :
../plugins/filter/gsthailofilter.cpp:6:10: fatal error: tensor_meta.hpp: No such file or directory
6 | #include “tensor_meta.hpp”
| ^~~~~~~~~~~~~~~~~
compilation terminated.
I guess I could always just modify the meson build on my side to include the repo but I wanted to share these considerations with all you amazing people.
I’ve tried this as well with a clean git clone hailort inside the manual install instruction… but I’m back to my symbolic ln -s situation.
Anywho… so why are we stuck on gcc 9 ? and why can’t meson get the files ? I’ll answer the meson problem on my side but maybe this could be more fluid so my future pull and build scripts don’t need manual labor and worse : human activity – to make it all come together.
With lot’s of love, from my northern winter storm party and cold humidity –
ciao.
C.