reComputer RK3576 con acelerador USB ASUS UGen300
Última actualización:
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.
Antes de empezar
Necesitas el UGen300, su cable de datos y acceso a una terminal con privilegios de sudo. Comprueba los paquetes de Hailo existentes antes de instalar la pila USB. Sigue el paso de compatibilidad de firmware solo después de verificar las versiones instaladas.
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