Usar un acelerador Hailo-8 M.2 con reComputer RK3576
Este tutorial explica cómo instalar el controlador PCIe de Hailo-8 y HailoRT en un reComputer RK3576, comprobar que el acelerador está listo y ejecutar en él un HEF de Hailo Model Zoo. El módulo probado es el Seeed Studio Hailo-8 M.2 Key M 2280, no un Hailo-8L.
Configuración del sistema
| Elemento | Configuración probada |
|---|---|
| Equipo anfitrión | reComputer RK3576 Dev Kit |
| Sistema operativo | Armbian-unofficial 26.05.0-trunk, Debian 12 (bookworm), ARM64 |
| Núcleo | 6.1.115-vendor-seeed-rk3576 |
| Acelerador | Módulo Seeed Studio Hailo-8 M.2 Key M 2280 |
| Dispositivo PCIe | 1e60:2864 |
| Enlace negociado | PCIe Gen2 x1, 5.0 GT/s |
| Entorno de ejecución y controlador PCIe | HailoRT 4.23.0, hailort-pcie-driver 4.23.0 |
| HEF de prueba | Hailo Model Zoo v2.17.0, centerpose_regnetx_800mf.hef, HAILO8, entrada de 512 × 512 × 3 |
Instalar el módulo y comprobar PCIe
Apaga el RK3576 y desconecta la alimentación antes de instalar o volver a insertar el módulo M.2. Coloca el Hailo-8 en la ranura M.2 Key M de la placa, fíjalo y vuelve a conectar la alimentación.
Después del arranque, comprueba la función PCIe y el enlace negociado:
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_widthLa tarjeta probada apareció en 01:00.0 como Hailo-8 AI Processor [1e60:2864], con un enlace 5.0 GT/s PCIe x1. La dirección del bus puede variar en otro sistema; al consultar los archivos de enlace de sysfs, utiliza la dirección indicada por lspci.

Descargar HailoRT 4.23.0
Hailo-8 utiliza la serie HailoRT 4.x. Descarga los paquetes ARM64 del entorno de ejecución y del controlador PCIe con la misma versión desde el directorio público de Hailo-8:
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 ArchitectureAmbos paquetes deben indicar 4.23.0 y el paquete del entorno de ejecución debe indicar arm64. Hailo publica estos enlaces directos en su guía de instalación de la comunidad.
El controlador se compila para el núcleo en ejecución. Antes de instalarlo, comprueba que estén disponibles las cabeceras correspondientes y DKMS:
ls -ld /lib/modules/$(uname -r)/build
command -v dkmsEn la imagen Armbian probada, la ruta de cabeceras apunta a linux-headers-6.1.115-vendor-seeed-rk3576. Si falla cualquiera de las comprobaciones, instala las cabeceras del núcleo exacto en ejecución y DKMS antes de continuar.
Instalar el entorno de ejecución y el controlador PCIe
Antes de modificar los paquetes, comprueba si ya hay componentes de Hailo instalados:
dpkg-query -W -f='${binary:Package}\t${Version}\n' | grep -i hailoSi la placa utilizó anteriormente el acelerador USB ASUS UGen300, elimina su entorno HailoRT 5.x y su controlador USB antes de instalar la pila PCIe de Hailo-8:
sudo apt-get purge hailort-usb-driver hailortInstala los paquetes 4.23.0 desde el directorio de descarga:
cd ~/hailo8-4.23.0
sudo apt-get install ./hailort-pcie-driver_4.23.0_all.deb \
./hailort_4.23.0_arm64.debCuando aparezca la pregunta, activa DKMS para compilar el controlador para el núcleo en ejecución. En la instalación probada también se activó hailort.service. El paquete del controlador PCIe incluye la imagen de arranque correspondiente hailo8_fw.4.23.0.bin, que se carga en la tarjeta durante la inicialización del controlador. Este procedimiento no utiliza hailortcli fw-update.
Reinicia y confirma que el controlador está asociado y que existe el nodo de dispositivo:
sudo rebootlspci -nnk -s 01:00.0
modinfo hailo_pci | grep -E '^(version|vermagic):'
ls -l /dev/hailo0
hailortcli --versionEn la placa probada, lspci indicó Kernel driver in use: hailo, y tanto el módulo como la CLI de HailoRT indicaron 4.23.0.

Identificar el acelerador
Utiliza HailoRT para explorar el bus PCIe y leer la información del módulo:
hailortcli scan
hailortcli fw-control identifyEl dispositivo probado se encontró en 0000:01:00.0. La identificación mostró Device Architecture: HAILO8, Firmware Version: 4.23.0 y Product Name: Seeed Studio Hailo-8 M.2 Key M 2280 Module.

Ejecutar un HEF de Hailo Model Zoo
Descarga el modelo CenterPose precompilado para HAILO8 desde Hailo Model Zoo v2.17.0:
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.hefparse-hef debe mostrar Architecture HEF was compiled for: HAILO8 y una entrada UINT8, NHWC(512x512x3). El HEF de Model Zoo v2.17.0 utilizado en la prueba tiene el SHA-256 625cbd18736c87ba708f46011cc683261690e8d68f054adc0e3df1e1a925a369.
Ejecuta la red durante cinco segundos con los datos de entrada generados por HailoRT:
hailortcli run2 -t 5 set-net centerpose_regnetx_800mf.hefEl comando debe llegar al 100 % e indicar un valor de FPS mayor que cero para centerpose_regnetx_800mf. Esto ejecuta inferencia en el acelerador, pero no convierte la salida de CenterPose en puntos clave visibles. HailoRT 4.23.0 puede mostrar una advertencia que recomienda run para un solo modelo, aunque run2 funciona en esta prueba.

Solución de problemas
lspcino muestra1e60:2864: desconecta completamente la alimentación del RK3576, vuelve a insertar la tarjeta M.2 y comprueba que está en la ranura PCIe Key M.- El dispositivo PCIe aparece, pero falta
/dev/hailo0: consultadkms status,modinfo hailo_pciysudo dmesg -T | grep -i hailopara detectar fallos de compilación del controlador o carga del firmware. - HailoRT indica que no coincide la versión del controlador: comprueba
hailortcli --versionymodinfo hailo_pci; ambos deben indicar4.23.0. - Se rechaza el HEF: confirma que
hailortcli parse-hefindicaHAILO8y utiliza un modelo Hailo-8 de Model Zoov2.x, no un HEF para Hailo-8L o Hailo-10H.