TAPPAS Manual install on rpi5 and Gcc compiler issues

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.

For Hailo 4.23, you probably want Tappas 5.0.0! I build my own packages for Ubuntu, so things might not translate completely, but I’m using

root@ubuntu-2404-pi5b:/lib/firmware/hailo# dpkg -l | fgrep -i hailo
ii  hailo-all                                        4.23.0-1ubuntu1~marco1                       all          Hailo support (metapackage)
ii  hailo-dkms                                       4.23.0-1ubuntu1~marco1                       all          Hailo PCIe driver
ii  hailo-tappas-core                                5.1.0-1ubuntu1~marco1                        arm64        This package contains the core components of the Hailo Tappas platform.
ii  hailofw                                          4.23.0-1ubuntu1~marco1                       all          Hailo firmware
ii  hailort                                          4.23.0-1ubuntu1~marco1                       arm64        Hailo RT is a lightweight, production-grade runtime library
ii  python3-hailort                                  4.23.0-1ubuntu1~marco1                       arm64        HailoRT Python API, which wraps the runtime library
ii  rpicam-apps-hailo-postprocess                    1.8.1-1ubuntu1~marco1                        arm64        Raspberry Pi AI HAT+ post-processing plugin for rpicam-apps

– Marco

Hey @Charles_Bicari,

Welcome to the Hailo Community!

I’d recommend using TAPPAS 5.1.0 with Hailort version 4.23. You might also want to try installing just the core package - it gives you the same functionality as the full hailo-all TAPPAS installation.

Just so you know, we’re currently validating the hailo-all package with version 4.23 on Raspberry Pi.

Quick question - have you updated your OS to the latest Trixy release?

Marco,
Thanks for the reply. I thought Tappas 5.0.0 was for x86 but you’re right, the documentation (TAPPAS User Guide - Release 5.1.0 - 15 September 2025) also points that Tappas 5.1.0 “is compatible with HailoRT v4.23.0 for Hailo-8 devices”.
I will check that out !
Thanks :slight_smile:

Omria,

Thanks for your reply !

I noticed hailo-all is now at 4.20 which isn’t too far from 4.23 if I view the change logs (maybe I am wrong). However your comment on hailo-all distributing 4.23 is good news as it might facilitate our deployment in times to come.

As for Trixie, I did want to trial the hailo-all approach after my Tappas build kept on failing and I uploaded the most recent rPi5 image without looking in the details of which one was on top; which ended up being the Trixie. The apt install hailo-all failed to install on Trixie and online forums pointed out to moving back to Bookworm, which I did and then it worked.

:tulip: :seedling:

And when you try to play with the Hailo RasPi example repo, you probably [still] want the the ‘dev’ branch. The main branch did not know anything about Tappas 5 when I last checked!

– Marco

hehe.. you’re one (or a couple of) step(s) ahead of me.

thanks for the insight :slight_smile: