オンラインで検索した結果、おそらく「いいえ」と答えるようです。しかし、次のようになります。
sysfsでUSBデバイスに対応するUSBポートの説明(dmidecodeに準拠)を見つけることはできますか?
すべてのUSBハブとデバイスを一覧表示して列挙できます/sys/bus/usb/devices
。たとえば、
lrwxrwxrwx 1 root root 0 May 18 09:40 1-2 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-2
lrwxrwxrwx 1 root root 0 May 18 09:40 1-2:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0
lrwxrwxrwx 1 root root 0 May 18 09:36 2-0:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0
lrwxrwxrwx 1 root root 0 May 18 09:36 2-3 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-3
lrwxrwxrwx 1 root root 0 May 18 09:36 2-3:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0
lrwxrwxrwx 1 root root 0 May 18 09:36 usb1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1
lrwxrwxrwx 1 root root 0 May 18 09:36 usb2 -> ../../../devices/pci0000:00/0000:00:14.0/usb2
...以下を実行して、システムに組み込まれているすべてのUSBポートを一覧表示できますdmidecode -t connector
。たとえば、他の多くのコネクタで次のように表示されます。
Handle 0x000D, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: USB REAR
Internal Connector Type: Proprietary
External Reference Designator: Rear: USB-1
External Connector Type: Access Bus (USB)
Port Type: USB
[...]
Handle 0x0014, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: USB 3.0 REAR
Internal Connector Type: Proprietary
External Reference Designator: Rear: USB 1
External Connector Type: Access Bus (USB)
Port Type: USB
(マイコンピュータでは、各USBポートが「USB」と「USB 3.0」として2回表示されるように見えます。)
特定のUSBデバイス(「Rear:USB 1」)に対応するコネクタの説明を表示したいのですが、/sys/bus/USBデバイスをdmidecodeコネクタに接続する安定した方法がないようです。それはそこですか?
(私の特別な場合は、バスの「usb1」をDmidecodeの「USB 1」に関連付けるのは簡単ですが…偶然の一致と言います。)
編集:またはdmidecodeでない場合は、ポートの外部記述を提供できる他のツールです。
答え1
出力はdmidecode
SMBIOSデータに基づいています。
この記事を書いた時点で、これはSMBIOS仕様の最新バージョンであるようです。
70ページの下部には、ポートコネクタ情報のデータ構造が記載されています。唯一の意味のある値は、DMI構造ハンドル(単純な16ビット数字)、内部コネクタと外部コネクタタイプの値、それぞれシステム基板とシャーシの外部コネクタ識別子を記述する2つの文字列です。
ハンドル番号だけが特定のコネクタに固有であるため、特定のUSBデバイスをSMBIOS / DMIコネクタ情報に関連付ける識別子として使用できます。しかし、どのコネクタがどのデバイスに属しているかを示すために、この番号を参照するUSBハードウェア側には何もないようです。
usb1
また、リストusb2
は/sys/bus/usb/devices
単一のコネクタ以外のコネクタを参照します。USBバス。 USB 3.xシステムには常に少なくとも2つのバスがあります。 1 つは USB 2 以前の速度を処理し、もう 1 つは USB 3+ 速度を処理します。これは、以前の速度が1つのデータラインセットを使用するのに対し、最新のUSB3.x超高速転送モードは別のデータラインセットを使用するという事実を反映しています。各バスには、通常、さまざまな数のUSBコネクタを持つことができる独自のルートハブがあります。
したがって、特定のDMIコネクタ情報構造を特定のUSBポートデバイスにバインドするには、USBハブ記述子に適切なDMI構造ハンドルを指定するデータフィールドが必要です。
あるいは、USBコントローラのPCIデバイス情報には、そのコントローラに属するDMIハンドルのリストを含める必要がありますが、これは特定のポートの一意の識別ではなく、どのUSBポートセットがどのコントローラに属しているかを識別するだけです。
残念ながら、USBまたはPCIバス情報にDMIハンドルまたは同等のポート記述を含むデータフィールドが見つかりません。したがって、答えは「いいえ。現時点では、物理ポート識別子を個々のLinux USBバス/ポートオブジェクトに関連付けることはできません」と思われます。
いくつかの有名ブランドシステム可能実際、この情報を含む一部のベンダー固有のバスデータ拡張がありますが、信頼できる広く採用されている標準的な慣行がない限り、一般的な答えはまだ「いいえ、その情報は利用できません」です。