在 reComputer RK3576 上使用 Hailo-8 M.2 加速卡

本教程介绍如何在 reComputer RK3576 上安装 Hailo-8 PCIe 驱动和 HailoRT、确认加速卡可用,并在设备上运行 Hailo Model Zoo 的 HEF 模型。实际测试使用的是 Seeed Studio Hailo-8 M.2 Key M 2280 模块,而非 Hailo-8L。

系统配置

项目实测配置
主机reComputer RK3576 Dev Kit
操作系统Armbian-unofficial 26.05.0-trunk,Debian 12 (bookworm),ARM64
内核6.1.115-vendor-seeed-rk3576
加速卡Seeed Studio Hailo-8 M.2 Key M 2280 模块
PCIe 设备1e60:2864
协商链路PCIe Gen2 x1,5.0 GT/s
运行时与 PCIe 驱动HailoRT 4.23.0hailort-pcie-driver 4.23.0
测试 HEFHailo Model Zoo v2.17.0centerpose_regnetx_800mf.hef,HAILO8,输入尺寸 512 × 512 × 3

安装模块并检查 PCIe

安装或重新插拔 M.2 模块前,请关闭 RK3576 并断开电源。将 Hailo-8 插入主板的 M.2 Key M 插槽,固定后再接通电源。

启动后检查 PCIe 设备和协商链路:

bash
lspci -nnk -s 01:00.0
cat /sys/bus/pci/devices/0000:01:00.0/current_link_speed
cat /sys/bus/pci/devices/0000:01:00.0/current_link_width

实测板卡在 01:00.0 枚举为 Hailo-8 AI Processor [1e60:2864],链路为 5.0 GT/s PCIe x1。其他系统上的总线地址可能不同;检查 sysfs 链路文件时,请使用 lspci 显示的地址。

Hailo-8 PCIe 设备与协商后的 Gen2 x1 链路

下载 HailoRT 4.23.0

Hailo-8 使用 HailoRT 4.x 软件栈。从 Hailo 公开的 Hailo-8 发布目录下载版本匹配的 ARM64 运行时和 PCIe 驱动包:

bash
mkdir -p ~/hailo8-4.23.0
cd ~/hailo8-4.23.0

curl -fL -O https://dev-public.hailo.ai/2025_10/Hailo8/hailort_4.23.0_arm64.deb
curl -fL -O https://dev-public.hailo.ai/2025_10/Hailo8/hailort-pcie-driver_4.23.0_all.deb

dpkg-deb -f hailort_4.23.0_arm64.deb Package Version Architecture
dpkg-deb -f hailort-pcie-driver_4.23.0_all.deb Package Version Architecture

两个软件包的版本都必须是 4.23.0,运行时软件包的架构必须是 arm64。Hailo 在社区安装说明中提供了这些直链。

驱动需要针对当前运行的内核编译。安装前确认对应内核头文件和 DKMS 已就绪:

bash
ls -ld /lib/modules/$(uname -r)/build
command -v dkms

在实测的 Armbian 镜像中,头文件路径指向 linux-headers-6.1.115-vendor-seeed-rk3576。如果任一检查失败,请先安装与当前内核完全匹配的头文件以及 DKMS。

安装运行时和 PCIe 驱动

更改软件包之前,先检查现有的 Hailo 安装:

bash
dpkg-query -W -f='${binary:Package}\t${Version}\n' | grep -i hailo

如果主板此前使用过 ASUS UGen300 USB 加速器,应先卸载其 HailoRT 5.x 运行时和 USB 驱动,再安装 Hailo-8 PCIe 软件栈:

bash
sudo apt-get purge hailort-usb-driver hailort

从下载目录安装 4.23.0 软件包:

bash
cd ~/hailo8-4.23.0
sudo apt-get install ./hailort-pcie-driver_4.23.0_all.deb \
  ./hailort_4.23.0_arm64.deb

出现提示时启用 DKMS,使驱动针对当前内核编译。实测安装也启用了 hailort.service。PCIe 驱动包包含匹配的 hailo8_fw.4.23.0.bin 启动镜像;驱动初始化时会将其加载到板卡。本安装过程不使用 hailortcli fw-update

重启后确认驱动已绑定且设备节点存在:

bash
sudo reboot
bash
lspci -nnk -s 01:00.0
modinfo hailo_pci | grep -E '^(version|vermagic):'
ls -l /dev/hailo0
hailortcli --version

在实测主板上,lspci 显示 Kernel driver in use: hailo,内核模块与 HailoRT CLI 均显示 4.23.0

Hailo-8 驱动绑定、设备节点与匹配的 4.23.0 版本

识别加速卡

使用 HailoRT 扫描 PCIe 总线并读取模块信息:

bash
hailortcli scan
hailortcli fw-control identify

实测设备位于 0000:01:00.0。识别结果显示 Device Architecture: HAILO8Firmware Version: 4.23.0Product Name: Seeed Studio Hailo-8 M.2 Key M 2280 Module

HailoRT 扫描与 Hailo-8 识别结果

运行 Hailo Model Zoo HEF

从 Hailo Model Zoo v2.17.0 下载为 HAILO8 预编译的 CenterPose 模型:

bash
cd ~/hailo8-4.23.0
curl -fL -o centerpose_regnetx_800mf.hef \
  https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.17.0/hailo8/centerpose_regnetx_800mf.hef

hailortcli parse-hef centerpose_regnetx_800mf.hef

parse-hef 应显示 Architecture HEF was compiled for: HAILO8,输入为 UINT8, NHWC(512x512x3)。实测 Model Zoo v2.17.0 HEF 的 SHA-256 为 625cbd18736c87ba708f46011cc683261690e8d68f054adc0e3df1e1a925a369

使用 HailoRT 生成的输入数据运行网络 5 秒:

bash
hailortcli run2 -t 5 set-net centerpose_regnetx_800mf.hef

命令应运行到 100%,并为 centerpose_regnetx_800mf 报告非零 FPS。这表示加速卡完成了推理,但不会将 CenterPose 输出解码为可视化关键点。尽管 run2 在此测试中有效,HailoRT 4.23.0 仍可能输出建议单模型使用 run 的警告。

HAILO8 HEF 信息与完成的推理

故障排查

  • lspci 中没有 1e60:2864:将 RK3576 完全断电,重新安装 M.2 板卡,并确认其位于 Key M PCIe 插槽。
  • PCIe 设备存在但没有 /dev/hailo0:查看 dkms statusmodinfo hailo_pcisudo dmesg -T | grep -i hailo,排查驱动编译或固件加载失败。
  • HailoRT 报告驱动版本不匹配:检查 hailortcli --versionmodinfo hailo_pci,两者都必须显示 4.23.0
  • HEF 被拒绝:确认 hailortcli parse-hef 显示 HAILO8,并使用 Model Zoo v2.x 系列中的 Hailo-8 模型,而非 Hailo-8L 或 Hailo-10H HEF。

参考资料