Usar el acelerador USB AI ASUS UGen300 con reComputer RK3576
El ASUS UGen300 es un acelerador USB AI construido en torno al procesador Hailo-10H con 8 GB de memoria LPDDR4. Este tutorial muestra cómo conectarlo a un reComputer RK3576, instalar el driver USB de ASUS y HailoRT con versiones coincidentes, actualizar el firmware del dispositivo cuando sea necesario y verificar que HailoRT puede comunicarse con el acelerador.
Configuración probada
| Elemento | Configuración probada |
|---|---|
| Host | reComputer RK3576 Dev Kit |
| Sistema operativo | Armbian-unofficial 26.05.0-trunk, Debian 12 (bookworm) |
| Kernel | 6.1.115-vendor-seeed-rk3576 |
| Arquitectura del host | AArch64 (arm64) |
| Acelerador | ASUS UGen300 USB AI Accelerator, Hailo-10H, 8 GB LPDDR4 |
| USB ID del dispositivo | 0b05:1d6f |
| Enlace USB negociado | 5000M en el puerto RK3576 probado |
| Driver USB | hailort-usb-driver 5.3.0 |
| Runtime | HailoRT 5.3.0 |
| Firmware del dispositivo tras la actualización | 5.3.0 (release,app) |
ASUS especifica una interfaz USB 3.1 Gen 2 Type-C con una tasa de enlace máxima de 10 Gbps. La conexión probada en el RK3576 negoció a 5 Gbps, según informó lsusb -t.
Conectar e inspeccionar el acelerador
Conecta el UGen300 directamente a un puerto host USB 3 con el cable incluido u otro cable USB Type-C de 10 Gbps.
Comprueba que el host puede ver el acelerador:
lsusb -d 0b05:1d6f
Antes de que se cargue la imagen de Hailo, un dispositivo recién conectado puede aparecer como UGen300 USB Loader. Comprueba también la velocidad de enlace negociada:
lsusb -t
La rama del UGen300 reportó 5000M en el reComputer RK3576 probado. Una entrada 480M significa que la conexión retrocedió a USB 2.
Comprobar el software del acelerador existente
El manual de ASUS indica que los drivers PCIe y USB de HailoRT no se pueden instalar al mismo tiempo, y que los drivers de Hailo-8 y Hailo-10H no pueden coexistir. Inspecciona los paquetes instalados antes de continuar:
dpkg -l | grep -Ei 'hailo|ugen'Elimina un driver Hailo PCIe o Hailo-8 existente antes de instalar el paquete USB del UGen300. No elimines una pila de acelerador no relacionada salvo que pretendas cambiar a otra.
Descargar y verificar el paquete de driver de ASUS
Descarga el paquete de driver USB ARM64 publicado en la página de soporte del ASUS UGen300:
mkdir -p ~/ugen300
cd ~/ugen300
curl -fL -o UGen300_USB_5.3.0_driver_Linux_arm64.zip \
https://dlcdnets.asus.com/pub/ASUS/AI_ACCELERATION_DEVICE/Driver/UGen300_USB_5.3.0_driver_Linux_arm64.zipVerifica el archivo antes de extraerlo. El checksum siguiente es el valor SHA-256 publicado por ASUS para la versión 5.3.0:
echo '6a98b46d8f88a7911fea142a8b3f4a69715f5166cc112e1352eba93f8a2bcbc4 UGen300_USB_5.3.0_driver_Linux_arm64.zip' \
| sha256sum --checkExtrae el archivo:
unzip UGen300_USB_5.3.0_driver_Linux_arm64.zip
cd UGen300_USB_5.3.0_driver_Linux_arm64El archivo contiene el paquete ARM64 de HailoRT y su driver USB de espacio de usuario con versión coincidente. El paquete USB también contiene la imagen de Hailo-10H que se usa cuando el dispositivo arranca.
Instalar el driver USB y HailoRT
Instala ambos paquetes con versiones coincidentes a la vez:
sudo apt install ./hailort_5.3.0_arm64.deb \
./hailort-usb-driver_5.3.0_arm64.debEl driver USB instala una regla udev para 0b05:1d6f. Cuando se detecta un UGen300 en modo Loader, la regla inicia el cargador de imagen USB de Hailo y el dispositivo se reenumera.
Confirma las versiones instaladas:
dpkg-query -W hailort hailort-usb-driver
hailortcli --version

Ajustar el firmware del dispositivo a HailoRT
Escanea el dispositivo USB y consulta su firmware:
hailortcli scan
hailortcli fw-control identifySi identify informa que el firmware es incompatible y pide explícitamente hailo_usb_loader fw-update, actualiza la flash del UGen300 con la imagen suministrada por el driver USB instalado:
sudo hailo_usb_loader fw-updateLa actualización tardó aproximadamente dos minutos en el dispositivo probado. Mantén el RK3576 alimentado, deja el cable conectado y espera a que la herramienta informe de que la actualización se completó con éxito.
El UGen300 se desconecta y se reenumera durante este proceso. Si no vuelve después de que el comando termine, desconéctalo, reconéctalo directamente al puerto host USB y espera a que el cargador de imagen de udev termine.
Verificar el dispositivo en ejecución
Inspecciona el estado USB final y la velocidad de enlace:
lsusb -d 0b05:1d6f
lsusb -tTras la actualización y carga de imagen exitosas, la unidad probada aparecía como UGen300 USB AI Accelerator (Hailo-10H) en lugar de UGen300 USB Loader.
Verifica la comunicación con HailoRT:
hailortcli scan
hailortcli fw-control identify
En el sistema probado, la identificación final informó del firmware de HailoRT 5.3.0 (release,app) y de la arquitectura del dispositivo HAILO10H.
Ejecutar un modelo HEF
Descarga el HEF de YOLOv8n compilado para Hailo-10H desde el Hailo Model Zoo:
mkdir -p ~/ugen300/models
cd ~/ugen300/models
curl -fL -o yolov8n.hef \
https://hailo-model-zoo.s3.amazonaws.com/ModelZoo/Compiled/v5.3.0/hailo10h/yolov8n.hefConfirma que el HEF descargado es compatible con Hailo-10H y luego ejecútalo durante cinco segundos:
hailortcli parse-hef yolov8n.hef
hailortcli run2 -t 5 set-net yolov8n.hefEl analizador debería informar HEF Compatible for: HAILO15H, HAILO10H. Un comando run2 completado imprime los FPS medidos y confirma que el modelo se ejecutó en el acelerador. HailoRT 5.3.0 no es compatible con el antiguo comando hailortcli run en este tipo de dispositivo.
Solución de problemas
lsusbno muestra0b05:1d6f: reconecta el acelerador directamente al host, comprueba el cable y el puerto, e inspecciona los eventos USB recientes consudo dmesg | tail -n 50.- El dispositivo sigue como
UGen300 USB Loader: inspecciona los mensajes del cargador conjournalctl -t hailo-usb --no-pager. Si HailoRT informa de un desajuste de firmware, ejecuta el comando de actualización de firmware anterior. hailortcli scanencuentra la ruta USB peroidentifyinforma firmware incompatible: mantén el driver y HailoRT en la misma versión y realiza la actualización de firmware documentada por ASUS.- Aparece
480Menlsusb -t: el dispositivo negoció a velocidad USB 2. Usa un puerto USB 3 y un cable con la clasificación para la velocidad de enlace requerida. - Aparece
HAILO_LIBUSB_FAILUREoHAILO_COMMUNICATION_CLOSEDduranterun2: el acelerador se desconectó bajo carga. Reconéctalo directamente a un puerto host USB 3, comprueba el cable USB-C y la entrega de energía, y repitehailortcli fw-control identifyantes de reintentar. - Hay una pila Hailo PCIe o Hailo-8 instalada previamente: elimina el driver Hailo en conflicto antes de instalar el driver USB del UGen300.
Eliminar el software del UGen300
Elimina los paquetes del driver USB y de HailoRT con:
sudo dpkg --purge hailort-usb-driver hailort
sudo udevadm control --reload-rules