Can't find hailo pcie class

I’m using amd64 architecture for ubuntu.
So I installed pcie driver like the below.

  • sudo dpkg --install hailort_4.17.0_amd64.deb hailort-pcie-driver_4.17.0_all.deb

It looks installed well without any issue.
But when I execute the command “hailortcli scan”, then there comes lots of errors like the below. What’s the problem?
[HailoRT] [error] Can’t find hailo pcie class, this may happen if the driver is not installed (this may happen if the kernel was updated), or if there is no connected Hailo board
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_PCIE_DRIVER_NOT_INSTALLED(64) - Failed listing pcie devices
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_PCIE_DRIVER_NOT_INSTALLED(64)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_PCIE_DRIVER_NOT_INSTALLED(64)
[HailoRT CLI] [error] CHECK_SUCCESS failed with status=HAILO_PCIE_DRIVER_NOT_INSTALLED(64)

For reference, my ubuntu kernel release version is 6.8.0-35-generic bigger than recommendation.
I tried installing dkms and gcc-12, but there is no change.

Please help me.

Can you first confirm that you can see the Hailo-8 when you run lspci?

PCIe does not need any device specific driver to find all PCIe devices and get some base information. This is handled by reading standardized registers in the hardware.

If you cannot see the Hailo device, please check your BIOS settings. Sometimes the ports can be disabled or switched to other modes.

How did you connect the Hailo-8 in your system?

I cannot see the Hailo-8 when I ran lspci.
Here is the message.

> 00:00.0 Host bridge: Intel Corporation Raptor Lake-P 6p+8e cores Host Bridge/DRAM Controller
> 00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-P [UHD Graphics] (rev 04)
> 00:04.0 Signal processing controller: Intel Corporation Raptor Lake Dynamic Platform and Thermal Framework Processor Participant
> 00:06.0 PCI bridge: Intel Corporation Raptor Lake PCIe 4.0 Graphics Port
> 00:07.0 PCI bridge: Intel Corporation Raptor Lake-P Thunderbolt 4 PCI Express Root Port #0
> 00:07.1 PCI bridge: Intel Corporation Device a73f
> 00:08.0 System peripheral: Intel Corporation GNA Scoring Accelerator module
> 00:0a.0 Signal processing controller: Intel Corporation Raptor Lake Crashlog and Telemetry (rev 01)
> 00:0d.0 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 USB Controller
> 00:0d.2 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI #0
> 00:12.0 Serial controller: Intel Corporation Alder Lake-P Integrated Sensor Hub (rev 01)
> 00:14.0 USB controller: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller (rev 01)
> 00:14.2 RAM memory: Intel Corporation Alder Lake PCH Shared SRAM (rev 01)
> 00:14.3 Network controller: Intel Corporation Raptor Lake PCH CNVi WiFi (rev 01)
> 00:15.0 Serial bus controller: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 (rev 01)
> 00:15.1 Serial bus controller: Intel Corporation Alder Lake PCH Serial IO I2C Controller #1 (rev 01)
> 00:16.0 Communication controller: Intel Corporation Alder Lake PCH HECI Controller (rev 01)
> 00:1f.0 ISA bridge: Intel Corporation Raptor Lake LPC/eSPI Controller (rev 01)
> 00:1f.3 Audio device: Intel Corporation Raptor Lake-P/U/H cAVS (rev 01)
> 00:1f.4 SMBus: Intel Corporation Alder Lake PCH-P SMBus Host Controller (rev 01)
> 00:1f.5 Serial bus controller: Intel Corporation Alder Lake-P PCH SPI Controller (rev 01)
> 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (23) I219-LM (rev 01)
> 01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9B1 (DRAM-less) (rev 02)

When I check if the driver was installed, it was done well.
Here is the message when I ran dpkg -l | grep hailo

> ii  hailort                                       4.17.0                                   amd64        HailoRT
> ii  hailort-pcie-driver                           4.17.0                                   all          Hailo PCIe driver and firmware

As I know, the pcie driver can be seen in the list without plugging in, right?
And it doesn’t work even I plugged the hailo 8 thunderbolt module in to the thunderbolt port.

Please help me. I can’t move forward because of this issue.

We first need to make sure you can see the Hailo-8 when running lspci. Without that we do not need to worry about the driver.

I suspect the issue is your Thunderbolt adapter. Can you please tell me the exact model, tell me how much is costs and provide a link to where you bought it so I can have a look? If the adapter or cable does not support PCIe it will not work.
Please read the following post with some more information about this.

How can I connect a Hailo-8-8l to my pc or laptop

Alternatively you can also try to plug-in the module into your motherboard directly or via a PCIe card adapter. See the same post above.

Thank you, klaus.

I can see the Hailo-8 when running lspci after plugging it in.

`

04:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01)

`

However, I still encounter the same issue when running hailortcli scan as mentioned in my initial question.

For your reference, I am using an “OWC, ENVOY EXPRESS” which I borrowed. I don’t know the cost, nor am I aware of whether it contains the Hailo-8L or Hailo-8H.

That is a good sign.

There could be an issue with the new kernel. I would recommend you install an older kernel for now. I will ask my colleagues from R&D to have a look.

When the driver is working you can run the following command to find out.

hailortcli fw-control identify

It works now.
I downloaded the hailort-pci code from github.

git clone https://github.com/hailo­ai/hailort­drivers.git

I compiled it all, and installed it explained on document.>

cd linux/pcie
make all
sudo make install
sudo modprobe hailo_pci
./download_firmware.sh
sudo mv hailo8_fw..bin /lib/firmware/hailo/hailo8_fw.bin
sudo cp ./linux/pcie/51­hailo­udev.rules /etc/udev/rules.d/
sudo udevadm control ­­reload­rules && sudo udevadm trigger

And finally it works well.
Thank you.

1 Like

[quote=“kevinp, post:7, topic:564”]

git clone …

I am new to Hailo kit on Pi5. I had the same pb of missing PCI driver and I went through the same procedure installing it from github. It went fine except that I get a version incompatibility with the library !
" hailortcli fw-control identify
[HailoRT] [error] CHECK failed - Driver version (4.17.1) is different from library version (4.17.0)
[HailoRT] [error] Driver version mismatch, status HAILO_INVALID_DRIVER_VERSION(76)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_DRIVER_VERSION(76)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_DRIVER_VERSION(76)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_DRIVER_VERSION(76)
[HailoRT CLI] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_DRIVER_VERSION(76)
"
What needs to be done to upgrade the lib ?

I recommend to install HailoRT from github, too.

If you cannot see the Hailo device, please check your BIOS settings. Sometimes the ports can be disabled or switched to other modes.

I can’t see the HAILO device

(base) quczer@quczer-seagle:~$ lspci
00:00.0 Host bridge: Intel Corporation 10th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 02)
00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 02)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Comet Lake PCH Thermal Controller
00:13.0 Serial controller: Intel Corporation Device 06fc
00:14.0 USB controller: Intel Corporation Comet Lake USB 3.1 xHCI Host Controller
00:14.2 RAM memory: Intel Corporation Comet Lake PCH Shared SRAM
00:14.3 Network controller: Intel Corporation Comet Lake PCH CNVi WiFi
00:15.0 Serial bus controller: Intel Corporation Comet Lake PCH Serial IO I2C Controller #0
00:15.1 Serial bus controller: Intel Corporation Comet Lake PCH Serial IO I2C Controller #1
00:16.0 Communication controller: Intel Corporation Comet Lake HECI Controller
00:1c.0 PCI bridge: Intel Corporation Device 06b8 (rev f0)
00:1c.5 PCI bridge: Intel Corporation Comet Lake PCIe Port #6 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #9 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device 068e
00:1f.3 Audio device: Intel Corporation Comet Lake PCH cAVS
00:1f.4 SMBus: Intel Corporation Comet Lake PCH SMBus Controller
00:1f.5 Serial bus controller: Intel Corporation Comet Lake PCH SPI Controller
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (11) I219-LM
01:00.0 VGA compatible controller: NVIDIA Corporation TU106GLM [Quadro RTX 3000 Mobile / Max-Q] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU106 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU106 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller: NVIDIA Corporation TU106 USB Type-C UCSI Controller (rev a1)
02:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
03:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
03:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
03:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
03:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
04:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06)
38:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)
6d:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5260 PCI Express Card Reader (rev 01)
6e:00.0 Non-Volatile memory controller: MAXIO Technology (Hangzhou) Ltd. NVMe SSD Controller MAP1202 (rev 01)

What to do?

How did you connect the Hailo device to your system?

Are you using an external adapter? Can you provide a link to the device so I can have a look?

I connected HAILO 8L (M-key) to the external adapter through USC-C thunderbolt.

Here’s the link to the adapter product https://www.mediaexpert.pl/komputery-i-tablety/akcesoria-komputerowe/pozostale-akcesoria-komputerowe/stacja-dokujaca-do-dyskow-gembird-dd-u3m2

I suspect this is not the right adapter. It says USB and the price is very low. The page says: “The docking station supports any M.2 drive with SATA and NVME specifications” So, it is not 100% certain whether it supports PCIe.

SSDs can also work with cheaper adapters that support USB. We need PCIe which is only available in true Thunderbolt adapters. They tend to be more expensive.

Please read the post I created for some more details.

How can I connect a Hailo-8/8l to my pc or laptop

Please check all the points I made in the post regarding the connectors and cable.

Try Amazon and search for “Thunderbolt M.2 Orico”. Look for the one that looks like the picture in my post above. There are a few other options from Orico that may also work, but I have not tested it myself. Amazon has a good return policy so you can try another option.