Errors in running epi5 exa,ples on HailoRT and PCIE Driver versions 4.22

Hi,

Hardware: RPI5 8GB RAM, Hailo8L
RPI OS

Doubt: I wanted to use the latest version of Hailo and upgrade my project there. For that, I did a fresh install of RPI OS. Then I did sudo apt install hailo-all.
Command: sudo apt install hailo-all

I saw that Hailo 4.20 was installed, along with TAPPAS 3.31.0. Therefore, I downloaded 4.22 files (HailoRT and PCIE Driver), and installed them.
**Commands: **
sudo apt install dkms
sudo dpkg --install hailort_4.22.0_arm64.deb hailort-pcie-driver_4.22.0_all.deb

Thereafter, I wanted to test basic rpi5 examples (Detection, Pose Estimation).
Commands:
git clone https://github.com/hailo-ai/hailo-rpi5-examples.git
cd hailo-rpi5-examples
./install.sh
source setup_env.sh

Lastly, I got these errors:

Command + Error:

(venv_hailo_rpi_examples) admin@H2:~/hailo-rpi5-examples $ python basic_pipelines/detection.py

Loading environment variables from /home/admin/hailo-rpi5-examples/.env…

:white_check_mark: All required environment variables loaded.

Auto-detected Hailo architecture: hailo8l

filesrc location=“/usr/local/hailo/resources/videos/example.mp4” name=source ! queue name=source_queue_decode leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! decodebin name=source_decodebin ! queue name=source_scale_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoscale name=source_videoscale n-threads=2 ! queue name=source_convert_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoconvert n-threads=3 name=source_convert qos=false ! video/x-raw, pixel-aspect-ratio=1/1, format=RGB, width=1280, height=720 ! videorate name=source_videorate ! capsfilter name=source_fps_caps caps=“video/x-raw, framerate=30/1” ! queue name=inference_wrapper_input_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailocropper name=inference_wrapper_crop so-path=/usr/lib/aarch64-linux-gnu/hailo/tappas/post_processes/cropping_algorithms/libwhole_buffer.so function-name=create_crops use-letterbox=true resize-method=inter-area internal-offset=true hailoaggregator name=inference_wrapper_agg inference_wrapper_crop. ! queue name=inference_wrapper_bypass_q leaky=no max-size-buffers=20 max-size-bytes=0 max-size-time=0 ! inference_wrapper_agg.sink_0 inference_wrapper_crop. ! queue name=inference_scale_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoscale name=inference_videoscale n-threads=2 qos=false ! queue name=inference_convert_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! video/x-raw, pixel-aspect-ratio=1/1 ! videoconvert name=inference_videoconvert n-threads=2 ! queue name=inference_hailonet_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailonet name=inference_hailonet hef-path=/usr/local/hailo/resources/models/hailo8l/yolov8s.hef batch-size=2 vdevice-group-id=1 nms-score-threshold=0.3 nms-iou-threshold=0.45 output-format-type=HAILO_FORMAT_TYPE_FLOAT32 force-writable=true ! queue name=inference_hailofilter_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailofilter name=inference_hailofilter so-path=/usr/local/hailo/resources/so/libyolo_hailortpp_postprocess.so function-name=filter_letterbox qos=false ! queue name=inference_output_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! inference_wrapper_agg.sink_1 inference_wrapper_agg. ! queue name=inference_wrapper_output_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailotracker name=hailo_tracker class-id=1 kalman-dist-thr=0.8 iou-thr=0.9 init-iou-thr=0.7 keep-new-frames=2 keep-tracked-frames=15 keep-lost-frames=2 keep-past-metadata=False qos=False ! queue name=hailo_tracker_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! queue name=identity_callback_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! identity name=identity_callback ! queue name=hailo_display_overlay_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailooverlay name=hailo_display_overlay ! queue name=hailo_display_videoconvert_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoconvert name=hailo_display_videoconvert n-threads=2 qos=false ! queue name=hailo_display_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! fpsdisplaysink name=hailo_display video-sink=autovideosink sync=true text-overlay=False signal-fps-measurements=true

terminate called after throwing an instance of ‘std::invalid_argument’

what(): Output tensor yolov8s/yolov8_nms_postprocess is not an NMS type

Aborted

(venv_hailo_rpi_examples) admin@H2:~/hailo-rpi5-examples $

Command + Error:

(venv_hailo_rpi_examples) admin@H2:~/hailo-rpi5-examples $ python basic_pipelines/pose_estimation.py

Loading environment variables from /home/admin/hailo-rpi5-examples/.env…

:white_check_mark: All required environment variables loaded.

Auto-detected Hailo architecture: hailo8l

filesrc location=“/usr/local/hailo/resources/videos/example.mp4” name=source ! queue name=source_queue_decode leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! decodebin name=source_decodebin ! queue name=source_scale_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoscale name=source_videoscale n-threads=2 ! queue name=source_convert_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoconvert n-threads=3 name=source_convert qos=false ! video/x-raw, pixel-aspect-ratio=1/1, format=RGB, width=1280, height=720 ! videorate name=source_videorate ! capsfilter name=source_fps_caps caps=“video/x-raw, framerate=30/1” !queue name=inference_wrapper_input_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailocropper name=inference_wrapper_crop so-path=/usr/lib/aarch64-linux-gnu/hailo/tappas/post_processes/cropping_algorithms/libwhole_buffer.so function-name=create_crops use-letterbox=true resize-method=inter-area internal-offset=true hailoaggregator name=inference_wrapper_agg inference_wrapper_crop. ! queue name=inference_wrapper_bypass_q leaky=no max-size-buffers=20 max-size-bytes=0 max-size-time=0 ! inference_wrapper_agg.sink_0 inference_wrapper_crop. ! queue name=inference_scale_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoscale name=inference_videoscale n-threads=2 qos=false ! queue name=inference_convert_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! video/x-raw, pixel-aspect-ratio=1/1 ! videoconvert name=inference_videoconvert n-threads=2 ! queue name=inference_hailonet_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailonet name=inference_hailonet hef-path=/usr/local/hailo/resources/models/hailo8l/yolov8s_pose.hef batch-size=2 vdevice-group-id=1 force-writable=true ! queue name=inference_hailofilter_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailofilter name=inference_hailofilter so-path=/usr/local/hailo/resources/so/libyolov8pose_postprocess.so function-name=filter_letterbox qos=false ! queue name=inference_output_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! inference_wrapper_agg.sink_1 inference_wrapper_agg. ! queue name=inference_wrapper_output_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailotracker name=hailo_tracker class-id=0 kalman-dist-thr=0.8 iou-thr=0.9 init-iou-thr=0.7 keep-new-frames=2 keep-tracked-frames=15 keep-lost-frames=2 keep-past-metadata=False qos=False ! queue name=hailo_tracker_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! queue name=identity_callback_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! identity name=identity_callback ! queue name=hailo_display_overlay_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! hailooverlay name=hailo_display_overlay ! queue name=hailo_display_videoconvert_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! videoconvert name=hailo_display_videoconvert n-threads=2 qos=false ! queue name=hailo_display_q leaky=no max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! fpsdisplaysink name=hailo_display video-sink=autovideosink sync=true text-overlay=False signal-fps-measurements=true

terminate called after throwing an instance of ‘std::runtime_error’

what(): xbuffer_storage not resizable

Aborted

(venv_hailo_rpi_examples) admin@H2:~/hailo-rpi5-examples $

*Footnote: While running ./install.sh in RPI5 examples, here is my log: LINK

Hi @user113,

We’ll be making version 4.22 official for Raspberry Pi soon. In the meantime, we recommend using version 4.20.

If you prefer to work with 4.22 now, please follow these steps:

  1. Update the driver to version 4.22

  2. Completely remove all 4.20 components

  3. Install tappas-core 5.0.0

  4. Note that some modifications will be needed in the hailo rpi examples

Let us know if you need any assistance with the migration process.

Fixed it by installing the PCie driver v4.22.

sudo dpkg -i hailort-pcie-driver_4.22.0_all.deb
1 Like

Got it, thanks. Could you possibly share the exact steps used for setting up HailoRT 4.22 with TAPPAS v5 on RPi5 (Hailo-8L)?

I followed the same flow I used with 4.19 (details here), but with 4.22 I can’t even get the basic pipeline to run successfully. My plan is to build a custom postprocess on top later, but at this stage I just want the rpi5 examples’ basic pipeline to work.

If you have a step-by-step that worked for an user, that would be really helpful.

Thanks!

Hey @user113,

First, remove all the Hailo packages:

sudo apt purge hailo-all hailort hailofw hailo-tappas-core

Then clean up any leftover kernel modules:

sudo find /lib/modules -type f \( -name 'hailo*.ko' -o -name 'hailo*.ko.xz' \) -print -delete
sudo find /lib/modules -type d -name 'hailo' -print -exec rm -rf {} +

After that, refresh your system:

sudo depmod -a
sudo update-initramfs -u

This should wipe out everything Hailo-related from your Pi. Once that’s done, you can do a fresh install with just the essentials:

  • HailoRT driver
  • HailoRT library
  • HailoRT Python bindings
  • TAPPAS core
  • TAPPAS core Python bindings

Let me know if you run into any issues!

Hi,

Thanks for your reply. I followed your steps as you said above. I am unable to find 2 files (mentioned in bold below). Let me know if my steps are correct.

1. sudo dpkg --install hailort_4.22.0_arm64.deb hailort-pcie-driver_4.22.0_all.deb
2. pip3 install hailort-4.22.0-cp311-cp311-linux_aarch64.whl --break-system-packages

NOTE: Cannot find python binding of HailoRT on Developer Zone/Software Downloads

3. admin@H2:~ $ sudo dpkg --install hailo-tappas-core_5.0.0_amd64.deb

dpkg: error processing archive hailo-tappas-core_5.0.0_amd64.deb (--install):

package architecture (amd64) does not match system (arm64)

Errors were encountered while processing:

hailo-tappas-core_5.0.0_amd64.deb

NOTE: Cannot find .deb file for arm64 on Developer Zone/Software Downloads

4. admin@H2:~ $ pip3 install hailo_tappas_core_python_binding-5.0.0-py3-none-any.whl --force-reinstall --break-system-packages

Even with above steps, ./install.sh in hailo-rpi5-examples does not work.

For TAPPAS Core, is there a .deb file available for arm64? I tried installing TAPPAS manually by these steps:

Download TAPPAS V5 ZIP → Extract → mkdir hailort → git clone --branch v4.22.0 --depth 1 https://github. com/hailo-ai/hailort.git hailort/sources → ./install.sh

Error: dpkg: error: cannot access archive ‘/home/admin/tappas/hailort/hailort_*_amd64.deb’: No such file or directory

If done with the command:
./install.sh --skip-hailort --target-platform rpi5 --core-only

It executes, but no venv gets created, and RPI5 examples’ ./install.sh does not run too.

I have smoothly installed 4.19, 4.21 with the same/similar steps. But having trouble with this. RPI5, RPI OS, Hailo8L.

Thanks,
User113