Linuxカーネルを実行している組み込みデバイスでUSBポート速度をプログラムで決定する方法は?
2 に答える
読み取ることができます/sys/bus/usb/devices/usb?/speed
- ルート ハブのバス速度が Mbps で表示されます: 1.5、12、480、5000、または 10000 のいずれかです。最初の 2 つは USB1 (低速または全速)、3 番目の USB2 および4 番目と 5 番目の USB3。
これは、情報を必要とするコードが実行されているかどうかによって異なります。接続速度に基づいてカーネル USB デバイス ドライバーの動作を変更する場合は、USB サブシステムによってドライバーに渡される usb_device 構造体に速度の列挙が含まれます。ユーザー空間のアプリケーションでデバイスの接続速度を検出する必要がある場合は、/sys/bus/usb ツリーをたどってみてください。idProduct および idVendor エントリを確認することで、USB デバイスを識別できるはずです。マッチしたら、スピードエントリーで必要なものが得られます。複数のデバイスが接続されている場合は、USB ID を特定のデバイスに一致させる方法を考える必要があるかもしれません。一般に、USB からデバイスへのマッピングは、デバイスがシリアル番号を提供するかどうか、および USB デバイスによって提供される機能を抽象化するサブシステムが存在するかどうかによって異なります。