Pergunta

Como determinar programaticamente a velocidade da porta USB em dispositivos incorporados executando o kernel Linux?

Foi útil?

Solução

Você pode ler /sys/bus/usb/devices/usb?/speed - Ele fornecerá a velocidade do barramento do (s) hub (s) raiz (s) em Mbps: 1,5, 12, 480 ou 5000. Os dois primeiros indicam USB1 (velocidade baixa ou velocidade total), o terceiro USB2 e o quarto USB3.

Outras dicas

Isso depende que o código que precisa das informações está em execução. Se você deseja modificar um comportamento de drivers de dispositivo USB do kernel com base na velocidade de conexão, a estrutura USB_Device que passou para o driver pelo subsistema USB contém uma enumeração de velocidade. Se você deseja um aplicativo no espaço do usuário para detectar a velocidade de conexão dos dispositivos, tente caminhar na árvore/sys/barramento/USB, poderá identificar seu dispositivo USB verificando as entradas do IDProduct e do IDVendor. Depois de combinar, a entrada de velocidade fornecerá o que você precisa. Se você tiver vários dispositivos conectados, talvez seja necessário descobrir uma maneira de corresponder ao ID USB com um dispositivo específico. Geralmente, os mapeamentos USB para dispositivos variam em qualquer suporte de plugue a quente apresenta se o dispositivo fornece um número de série e o sub -sistema que abstrairá a funcionalidade fornecida pelo dispositivo USB.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top