2009-12-24 3 views
6

Как программно определить скорость порта USB во встроенных устройствах, работающих под ядром Linux?USB Port Speed ​​Linux

+2

Это либо относится к ошибке сервера, либо вам необходимо указать, какой язык использовать. –

+3

Не будьте глупыми: встроенные устройства не имеют админов сервера (и ни люди, которые запускают код на них «пользователи», так и не являются вопросом суперпользователя!). Это, безусловно, вопрос о встроенном ** развитии **, который спрашивает о программировании для конкретных функций ОС. – caf

+2

Все, что вам нужно, это lsusb -t – sMyles

ответ

16

Вы можете прочитать /sys/bus/usb/devices/usb?/speed - это даст вам скорость шины корневого концентратора в Мбит/с: 1,5, 12, 480 или 5000. Первые два указывают на USB1 (низкая скорость или полная скорость), третий USB2 и четвертый USB3.

+0

, и он говорит 5000, если это USB3. это для корневых концентраторов. –

1

Это скорее зависит от кода, который нуждается в информации. Если вы хотите изменить поведение драйверов устройств USB на основе скорости соединения, то структура usb_device, переданная драйверу подсистемой USB, содержит перечисление скорости. Если вы хотите, чтобы приложение в пользовательском пространстве обнаруживало скорость соединения устройств, попробуйте пройти дерево/sys/bus/usb, вы сможете определить ваше USB-устройство, проверив записи idProduct и idVendor. Как только у вас будет матч, запись скорости даст вам то, что вам нужно. Если у вас несколько подключенных устройств, вам может потребоваться указать способ сопоставления идентификатора USB на конкретном устройстве. Как правило, сопоставления USB-устройств различаются в зависимости от поддержки любого горячего подключения, независимо от того, содержит ли устройство серийный номер и вспомогательную систему, которая абстрагирует функциональность, предоставляемую устройством USB.