Diagnóstico USB: la guía completa para depurar dispositivos USB con capturas de paquetes
Flujo completo de diagnóstico USB para ingenieros de firmware. Captura por hardware frente a software, usbmon en Linux, USBPcap en Windows, depuración de enumeración, errores de descriptores, fallos de transferencia y comparación de sesiones. Cada problema USB mapeado a una página de diagnóstico.
Esta es la página central de diagnóstico de dispositivos USB. Tanto si depuras la enumeración del firmware, el binding de drivers, fallos de transferencia o problemas a nivel de protocolo, esta guía mapea cada escenario de depuración USB al enfoque y la herramienta adecuada.
Captura: analizador hardware frente a captura software
Antes de depurar cualquier problema USB, decide cómo vas a capturar el tráfico:
- USBPcap frente a usbmon: captura en Windows y Linux — Setup de captura por plataforma. Selección de concentrador raíz en USBPcap, permisos de usbmon y cuándo usar cada uno.
- Configuración de captura por plataforma — Configuración detallada de usbmon en Linux y USBPcap en Windows.
- Conectar a un dispositivo — Flujo de la primera captura.
Depuración de enumeración y descriptores
La enumeración USB es donde se esconde la mayoría de los bugs de firmware. El dispositivo tiene que responder correctamente a una secuencia de peticiones de descriptor antes de que empiece cualquier comunicación a nivel de aplicación.
- Depuración de transferencias de control y setup packets USB — Lectura de bmRequestType, bRequest, wValue, wIndex. Entender qué pide el host.
- Depuración de dispositivos compuestos USB e IAD — Problemas de Interface Association Descriptor, binding de driver incorrecto, Code 10, Code 43, usbccgp.sys en Windows.
- Depuración de STALL en endpoint USB — Cuando el dispositivo devuelve STALL. Qué significa, cómo diagnosticarlo y cómo debería recuperarse el firmware.
Fallos de transferencia y depuración de protocolo
- Depuración UASP frente a BOT en mass storage USB — Fallos del protocolo UASP, fallback a BOT, timeouts de comandos SCSI, bucles de reset, discos externos lentos.
Depuración específica por plataforma
- Referencia de filtros USB de Wireshark — Display filters de Wireshark para capturas USB. Filtra por dispositivo, endpoint, tipo de transferencia y campo de descriptor.
Comparativas
- Bus Scope frente a HHD USB Monitor y Total Phase Beagle — Software frente a hardware: cuándo encaja cada uno.
Gestión de sesiones
- Guardar y comparar sesiones USB — Captura el comportamiento que funciona y el que falla y compara.
- Solución de problemas de captura — Adaptador no disponible, línea de tiempo vacía, evidencia que falta.
Empezando
- Conectar y capturar — Setup de la primera captura.
- Configuración por plataforma — usbmon en Linux o USBPcap en Windows.
- Solución de problemas — Problemas habituales de captura.