Frigate + hailo-8L + rapsberry PI 5 : how to make it work in August 2025?

Hi

I’ve desperately tried over the last days to get this combination working :

  • Raspberry PI 5 16 GB with the latest PI OS 64 bits, fresh install on SD
  • hailo 8l (AI KIT) with the latest 4.21 firmware
  • docker and docker compose
  • Frigate 16.0 RC4

Without any success :sob:
I followed this :

https://www.raspberrypi.com/documentation/accessories/ai-kit.html#ai-kit-installation

I ran this

but Frigate keeps on restarting and the logs provide this :

what should i do ?

info | 2025-08-13 12:29:40 | frigate.app | Capture process started for esque: 488
error | 2025-08-13 12:29:40 | frigate.detectors.plugins.hailo8l | Inference error: [HailoRT] [error] CHECK failed - Driver version (4.20.0) is different from library version (4.21.0)
unknown | 2025-08-13 12:29:40 | unknown | [HailoRT] [error] Driver version mismatch, status HAILO_INVALID_DRIVER_VERSION(76)
unknown | 2025-08-13 12:29:40 | unknown | [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_DRIVER_VERSION(76)
info | 2025-08-13 12:29:40 | logging | Last message repeated 3 times
unknown | 2025-08-13 12:29:49 | unknown | 25-08-13 12:29:40.920348592
unknown | 2025-08-13 12:29:41 | unknown | [HailoRT] [error] CHECK failed - Driver version (4.20.0) is different from library version (4.21.0)
unknown | 2025-08-13 12:29:41 | unknown | [HailoRT] [error] Driver version mismatch, status HAILO_INVALID_DRIVER_VERSION(76)
unknown | 2025-08-13 12:29:41 | unknown | [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_DRIVER_VERSION(76)

1 Like

Hi @Damien_Collart

Welcome to the Hailo community. Your driver version and HailoRT version do not match. You need to either downgrade your HailoRT or upgrade your driver.

@Stephan_Sokolov

Can you please help with the exact steps and some commands that can test (hailortcli)?

@Damien_Collart Hello, you can get information about the status of your driver / hardware using hailortcli fw-control identify command.If there is a mismatch detected between driver version and runtime version, it will give you an error such as the one you see in your log: Driver version (4.20.0) is different from library version (4.21.0)

First you must resolve the issue if this happens on the host (not inside the Docker).If hailortcli fw-control identify does not give you an error, then it will show the version of the driver installed, such as 4.21.0

Now inside the docker container, the version of the runtime must be the same version of the driver that is installed on the host. If you have resolved any issues on the host outside of Docker, then all that’s left is to ensure that the runtime version inside your Docker container matches.

Let me know if you need more help!

this is the otuput of hailortcli fw-control identify

damien@pi5e:~ $ hailortcli fw-control identify
[HailoRT] [warning] Unsupported firmware operation. Host: 4.20.0, Device: 4.21.0
Executing on device: 0001:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.21.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8L
Serial Number: HLDDLBB244602069
Part Number: HM21LB1C2LAE
Product Name: HAILO-8L AI ACC M.2 B+M KEY MODULE EXT TMP

what can I do ? and how ? thanks a lot

Hello @Damien_Collart , it looks like you need to reinstall the driver on your host system. Please remove the previous driver and install the 4.21.0 driver again.

  1. sudo dpkg --purge hailort-pcie-driver
  2. Download the 4.21.0 driver from here: https://hailo.ai/developer-zone/software-downloads/
    image
  3. Install it using sudo dpkg -i hailort-pcie-driver_4.21.0_all.deb

Now your host should have no more errors when you use hailortcli fw-control identify.

Let me know if this works!

Hey @Damien_Collart ,

You have to change the driver to 4.21!

I will be updating the frigate guide soon to work with august release!

Thanks both

the proposed approach seems to work on a fresh PI OS install, although I cannot perform the vinal validation, I do noit have any rpi5 with a hailo 8 available here by now.

Thanks again

1 Like

Hi

I followed Installation | Frigate, thanks for the doc.

Just a tiny nitpicking remark, I was a bit confused at first that I had to install the driver first from bulletpoint 1 before running the frigate helper script, a look at that script made it obvious I had not to. Maybe removing the numbering on the first point would make it more straightforward.

After reboot I can see that the firmware was upgraded
```
root@lurky:~# dmesg | grep hailo
[ 5.938305] hailo_pci: loading out-of-tree module taints kernel.
[ 5.938817] hailo: Init module. driver version 4.21.0

[ 6.098969] hailo 0001:06:00.0: NNC Firmware loaded successfully

[ 6.111170] hailo 0001:06:00.0: Probing: Added board 1e60-2864, /dev/hailo0
```
(omg, my kernel is now tainted, impure… :open_mouth: )

Before installing I did apt purge + autoremove + autocleanon all distro hailort* packages I had installed first following the old guidelines from Hailo official integration with Frigate
This removed hailortcli however.
Do you know if there an alternate way to have it ?
I suspect installing the distribution packages will break the compiled driver. Should I reinstall the packages, then run the driver install script again to overwrite any oudated driver from the packages ?

Running on a seeedstudio reComputer with hailo-8.

Right now frigate fails some HAILO_INTERNAL_FAILURE I need to investigate, so being able to check the module is OK outside of the frigate container may help.

Thanks

Hey @PiKaBZH,

Welcome to the Hailo Community!

You’ll need to completely remove the 4.20 driver and get 4.21 installed for that to work properly. Here’s the cleanest way to do a full removal:

First, let’s purge all the Hailo packages:

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

Next, we need to clean out those kernel modules: This will find and remove all the Hailo kernel modules from your system:

sudo find /lib/modules -type f \( -name 'hailo*.ko' -o -name 'hailo*.ko.xz' \) -print -delete

Finally, let’s clean up any leftover directories:

sudo find /lib/modules -type d -name 'hailo' -print -exec rm -rf {} +

Once you’ve run through these steps, you should have a clean slate to install 4.21, which should get Frigate up and running. Let me know if you hit any snags during the process!

I cleaned up as instructed and ran frigate/docker/hailo8l/user_installation.sh at dev · blakeblackshear/frigate · GitHub again, rebooted.

I had to remove hailort-pcie-driver from the list though, RPiOS bookworm seems to have no such package.

Things still seem ok in dmesg and lsmod output.

Please note that my hardware is a hailo-8, not 8l. Seeed has little specific instructions on getting frigate running with it, which I supposed was because the regular install was adequate.

Frigate fails, still with the same HAILO_INTERNAL_FAILURE(8) error.

Full log :

frigate  | 2025-09-10 16:36:25.417336161  [2025-09-10 16:36:25] frigate.app                    INFO    : Starting Frigate (0.16.1-e664cb2)
frigate  | 2025-09-10 16:36:25.429052903  [2025-09-10 16:36:25] peewee_migrate.logs            INFO    : Starting migrations
frigate  | 2025-09-10 16:36:25.430596760  [2025-09-10 16:36:25] peewee_migrate.logs            INFO    : There is nothing to migrate
frigate  | 2025-09-10 16:36:25.447430241  [2025-09-10 16:36:25] frigate.app                    INFO    : Recording process started: 393
frigate  | 2025-09-10 16:36:25.450236917  [2025-09-10 16:36:25] frigate.app                    INFO    : Review process started: 396
frigate  | 2025-09-10 16:36:25.456698734  [2025-09-10 16:36:25] frigate.app                    INFO    : go2rtc process pid: 128
frigate  | 2025-09-10 16:36:25.474991220  [2025-09-10 16:36:25] detector.hailo                 INFO    : Starting detection process: 418
frigate  | 2025-09-10 16:36:25.488464709  [2025-09-10 16:36:25] frigate.app                    INFO    : Output process started: 435
frigate  | 2025-09-10 16:36:25.514987203  [2025-09-10 16:36:25] frigate.app                    INFO    : Camera processor started for foscam_c1: 457
frigate  | 2025-09-10 16:36:25.528016079  [2025-09-10 16:36:25] frigate.app                    INFO    : Capture process started for foscam_c1: 463
frigate  | 2025-09-10 16:36:26.117934455  [2025-09-10 16:36:25] frigate.api.fastapi_app        INFO    : Starting FastAPI app
frigate  | 2025-09-10 16:36:26.119021274  [HailoRT] [warning] HEF was compiled for Hailo8L device, while the device itself is Hailo8. This will result in lower performance.
frigate  | 2025-09-10 16:36:26.119508627  [HailoRT] [warning] HEF was compiled for Hailo8L device, while the device itself is Hailo8. This will result in lower performance.
frigate  | 2025-09-10 16:36:26.129239326  [HailoRT] [error] CHECK failed - max_desc_page_size given 16384 is bigger than hw max desc page size 4096
frigate  | 2025-09-10 16:36:26.129244474  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129245937  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129266196  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129267789  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129268974  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129389085  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129392085  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129399919  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129401289  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129411493  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129417030  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129418234  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.129422419  [HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INTERNAL_FAILURE(8)
frigate  | 2025-09-10 16:36:26.133229209  Exception in thread Thread-4 (run):
frigate  | 2025-09-10 16:36:26.133233394  Traceback (most recent call last):
frigate  | 2025-09-10 16:36:26.133234931    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 2870, in configure
frigate  | 2025-09-10 16:36:26.133236302      configured_infer_model_cpp_obj = self._infer_model.configure()
frigate  | 2025-09-10 16:36:26.133237450                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
frigate  | 2025-09-10 16:36:26.133238542  hailo_platform.pyhailort._pyhailort.HailoRTStatusException: 8
frigate  | 2025-09-10 16:36:26.133239228
frigate  | 2025-09-10 16:36:26.133240394  The above exception was the direct cause of the following exception:
frigate  | 2025-09-10 16:36:26.133241061
frigate  | 2025-09-10 16:36:26.133241968  Traceback (most recent call last):
frigate  | 2025-09-10 16:36:26.133243116    File "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
frigate  | 2025-09-10 16:36:26.133243894      self.run()
frigate  | 2025-09-10 16:36:26.133244968    File "/usr/lib/python3.11/threading.py", line 975, in run
frigate  | 2025-09-10 16:36:26.133245950      self._target(*self._args, **self._kwargs)
frigate  | 2025-09-10 16:36:26.133247172    File "/opt/frigate/frigate/detectors/plugins/hailo8l.py", line 175, in run
frigate  | 2025-09-10 16:36:26.133251931      with self.infer_model.configure() as configured_infer_model:
frigate  | 2025-09-10 16:36:26.133252802           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
frigate  | 2025-09-10 16:36:26.133254450    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 2869, in configure
frigate  | 2025-09-10 16:36:26.133255283      with ExceptionWrapper():
frigate  | 2025-09-10 16:36:26.133256783    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 122, in __exit__
frigate  | 2025-09-10 16:36:26.133257950      self._raise_indicative_status_exception(value)
frigate  | 2025-09-10 16:36:26.133290283    File "/usr/local/lib/python3.11/dist-packages/hailo_platform/pyhailort/pyhailort.py", line 172, in _raise_indicative_status_exception
frigate  | 2025-09-10 16:36:26.133292431      raise self.create_exception_from_status(error_code) from libhailort_exception
frigate  | 2025-09-10 16:36:26.133293968  hailo_platform.pyhailort.pyhailort.HailoRTException: libhailort failed with error: 8 (HAILO_INTERNAL_FAILURE)
frigate  | 2025-09-10 16:36:26.248084622  [2025-09-10 16:36:26] frigate.api.fastapi_app        INFO    : FastAPI started
frigate  | 2025-09-10 16:36:31.815876004  [2025-09-10 16:36:31] frigate.detectors.plugins.hailo8l ERROR   : Timeout waiting for inference results for request 0
frigate  | 2025-09-10 16:36:31.862582675  Process detector:hailo:
frigate  | 2025-09-10 16:36:31.862588916  Traceback (most recent call last):
frigate  | 2025-09-10 16:36:31.862591323    File "/opt/frigate/frigate/detectors/plugins/hailo8l.py", line 348, in detect_raw
frigate  | 2025-09-10 16:36:31.862593342      _, infer_results = self.response_store.get(request_id, timeout=1.0)
frigate  | 2025-09-10 16:36:31.862595175                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
frigate  | 2025-09-10 16:36:31.862597027    File "/opt/frigate/frigate/object_detection/util.py", line 63, in get
frigate  | 2025-09-10 16:36:31.862598805      raise TimeoutError(f"Timeout waiting for response {request_id}")
frigate  | 2025-09-10 16:36:31.862600268  TimeoutError: Timeout waiting for response 0
frigate  | 2025-09-10 16:36:31.862601268
frigate  | 2025-09-10 16:36:31.862603120  During handling of the above exception, another exception occurred:
frigate  | 2025-09-10 16:36:31.862604083
frigate  | 2025-09-10 16:36:31.862605490  Traceback (most recent call last):
frigate  | 2025-09-10 16:36:31.862607397    File "/usr/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
frigate  | 2025-09-10 16:36:31.862608509      self.run()
frigate  | 2025-09-10 16:36:31.862610379    File "/opt/frigate/frigate/util/process.py", line 41, in run_wrapper
frigate  | 2025-09-10 16:36:31.862611675      return run(*args, **kwargs)
frigate  | 2025-09-10 16:36:31.862613027             ^^^^^^^^^^^^^^^^^^^^
frigate  | 2025-09-10 16:36:31.862614842    File "/usr/lib/python3.11/multiprocessing/process.py", line 108, in run
frigate  | 2025-09-10 16:36:31.862616379      self._target(*self._args, **self._kwargs)
frigate  | 2025-09-10 16:36:31.862618268    File "/opt/frigate/frigate/object_detection/base.py", line 136, in run_detector
frigate  | 2025-09-10 16:36:31.862619953      detections = object_detector.detect_raw(input_frame)
frigate  | 2025-09-10 16:36:31.862621546                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
frigate  | 2025-09-10 16:36:31.862623453    File "/opt/frigate/frigate/object_detection/base.py", line 86, in detect_raw
frigate  | 2025-09-10 16:36:31.862625138      return self.detect_api.detect_raw(tensor_input=tensor_input)
frigate  | 2025-09-10 16:36:31.862626879             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
frigate  | 2025-09-10 16:36:31.862628768    File "/opt/frigate/frigate/detectors/plugins/hailo8l.py", line 355, in detect_raw
frigate  | 2025-09-10 16:36:31.862630027      raise RuntimeError(
frigate  | 2025-09-10 16:36:31.862631768  RuntimeError: HailoRT inference thread has stopped, restart required.

Found that issue, I think.

So, I confirm about force_desc_page_size from link above.
It’s now up and running, working like a charm with 9 streams.

The 8-core Intel C2750 I was first trying Frigate on, was struggling to keep up with the openvino cpu detector and throwing fits now and then, system load averaging 11-12.
The RPi5 is doing fine. System load below 1 and inference time around 8ms.

My questions rn :

Can I still get hailo CLI tools such as hailortcli without breaking the driver (or apt) ? I have no immediate need for those but they’re often referred to in the forum, and as the integration is still young it’s not impossible they’ll be needed at some time. Just being able to tell what firmware the module is running would be useful, for example.

Frigate detector configuration supports type: hailo8l.
How exactly does it impact the performance I can get out of the hailo-8 (not l) ?
Taking into account that the RPi5 has a single PCIe gen3 lane, with possible throughput loss due to it being certified in PCIe gen2 only, added to bandwidth sharing with a NVMe that contains the host fs and the bind mounts for the Frigate container data (incl. video storage). I’ve no idea how much bandwidth feeding the TPU requires.

Hi. I’m having similar issues to @Damien_Collart however my output for hailortcli fw-control identify, is":

Executing on device: 0001:01:00.0

Identifying board

Control Protocol Version: 2

Firmware Version: 4.20.0 (release,app,extended context switch buffer)

Logger Version: 0

Board Name: Hailo-8

Device Architecture: HAILO8

Serial Number: <N/A>

Part Number: <N/A>

Product Name: <N/A>

However I get this in my logs for my Frigate container within Docker:

[HailoRT] [error] CHECK failed - Driver version (4.20.0) is different from library version (4.21.0)
[HailoRT] [error] Driver version mismatch, status HAILO_INVALID_DRIVER_VERSION(76)

What can you suggest? Thanks.

Hello @Tom_Bates this is a common issue :slight_smile:

All this means is that your Hailo Runtime in the docker is a newer version than the driver version on your host.

Simply install the corresponding 4.21.0 driver on your system and restart your docker.

  1. Download the correct driver package

  2. Remove any existing driver
    Run this to purge the currently installed driver (if any):
    sudo dpkg --purge hailort-pcie-driver

  3. Install the downloaded driver
    Replace the filename below with the path to your downloaded .deb file:
    sudo dpkg -i hailort-pcie-driver-4.21.0.deb

  4. Reboot your system
    After installation, reboot so the kernel modules reload correctly:
    sudo reboot

  5. Verify installation
    After reboot, check the installed version:
    apt list | grep hailort

    You should see output like:
    hailort-pcie-driver/now 4.21.0 all

Let me know if this worked!

1 Like

You’re a hero!!! It worked a treat, thank you for your help.

2 Likes