2009-12-24 29 views
6

¿Cómo se determina programáticamente la velocidad del puerto usb en los dispositivos integrados que ejecutan el kernel de Linux?USB Port Speed ​​Linux

+2

Esto pertenece en el error del Servidor o necesita especificar qué idioma desea usar. –

+3

No seas tonto: los dispositivos integrados no tienen administradores de servidor (y las personas que ejecutan el código en ellos no son "usuarios", ¡así que tampoco es una pregunta de superusuario!). Claramente, se trata de ** desarrollo ** incorporado, que pregunta sobre la programación de funciones específicas del sistema operativo. – caf

+2

Todo lo que necesita es lsusb -t – sMyles

Respuesta

16

Puede leer /sys/bus/usb/devices/usb?/speed - le dará la velocidad del bus de los concentradores raíz en Mbps: 1.5, 12, 480 o 5000. Los dos primeros indican USB1 (baja velocidad o velocidad completa), el el tercer USB2 y el cuarto USB3.

+0

y dice 5000 si es USB3. estos son para concentradores de raíz. –

1

Esto depende de dónde se ejecute el código que necesita la información. Si desea modificar el comportamiento de los controladores de un dispositivo USB del núcleo según la velocidad de conexión, la estructura usb_device que el subsistema USB pasó al controlador contiene una enumeración de velocidad. Si desea una aplicación en el espacio de usuario para detectar la velocidad de conexión de los dispositivos, intente caminar por el árbol/sys/bus/usb, podrá identificar su dispositivo USB al verificar las entradas idProduct e idVendor. Una vez que tenga una coincidencia, la entrada de velocidad le dará lo que necesita. Si tiene varios dispositivos conectados, es posible que deba encontrar una forma de hacer coincidir la identificación de USB con un dispositivo específico. En general, las asignaciones de USB a dispositivo varían según el soporte de conexión en caliente presente si el dispositivo proporciona un número de serie y el subsistema que abstrae la funcionalidad proporcionada por el dispositivo USB.