Efecto del controlador USB Full-Speed ​​en la velocidad de transferencia

Tengo problemas con las comunicaciones USB que parecen estar relacionadas con el controlador. Mi configuración implica un dispositivo integrado configurado como un puerto de comunicación virtual (CDC/ACM) con el que me comunico a través de USB. El problema es que las tasas de datos son muy lentas en una determinada computadora. Probé el dispositivo integrado en varias computadoras con Linux y encontré que el problema es específico de esa computadora (la que importa).

De la salida de dmesgla única diferencia notable es el controlador que se carga en las diferentes computadoras. La computadora problemática usa uhci-hcd, mientras que otras usan ehci-hcd o xhci-hcd. Con ehci disponible en la PC lenta, traté de dictar qué controlador está cargado, pero parece más fácil decirlo que hacerlo en Linux. Otros han sugerido incluir en la lista negra uhci-hcd, pero rmmodregresa con un error que dice que el 'módulo está integrado'.

El sistema operativo de la PC se actualizó de Ubuntu 12 de 32 bits a Ubuntu 14.04 de 64 bits (el procesador es de 64 bits). Wikipedia menciona que uhci solo admite el direccionamiento de memoria de 32 bits, lo que requiere un búfer de rebote costoso para funcionar con un sistema operativo de 64 bits. ¿Podría ser esta la razón de las velocidades de datos lentas?

El procesador integrado ( Infineon XMC4400 ) admite transferencias de velocidad completa (12 Mbps) que, entiendo, corresponde a USB 1.0. ¿Tengo razón al suponer que ciertos controladores para USB 1 superan a otros?

Soy un poco novato en hardware y agradecería cualquier consejo para ayudar a encontrar una solución o comprender el problema. ¿Debo intentar forzar ciertos controladores para el dispositivo y, de ser así, cómo? ¿Debo volver a un sistema operativo de 32 bits, o tal vez estoy limitado por el hardware?

La placa base de la PC es una Versalogic Mamba EBX-37.

¿Por qué mencionas la actualización? ¿Y por qué no actualizó a alguna versión actual del kernel?
Me preguntaba si el sistema operativo de 64 bits podría estar causando problemas con el controlador uhci-hcd. El núcleo se ha actualizado a la versión 3.13.0-86-generic.
El rendimiento depende de los detalles de la máquina; usted tiene que probar esto usted mismo. Y "actual" no significa "más de dos años".
Originalmente, apt-get dist-upgrade no lo llevaría más allá de 3.13.0-86. Ahora lo actualicé a la versión 3.19.0-59-generic. Algunas de las otras computadoras en las que he probado con éxito tienen kernels más antiguos que este.

Respuestas (1)

Parece que mi sospecha sobre el conductor era correcta. Cuando el dispositivo está conectado a través de un concentrador USB 2.0, el controlador ehci se carga y la velocidad de transferencia aumenta drásticamente. Volver a un sistema operativo de 32 bits no tuvo ningún efecto en el rendimiento.