USBキーボードを持っていて、lsusbコマンドを使用しています。キーボードを切断して再接続すると、Device
が増加しますが、ID
は固定されたままです。 IDは、マシン間でも固定されたままです。 IDが同じかどうかを確認するために1台のPCに接続するための2つの同一のデバイスがありません。私が2つの同一のキーボードを持っていたのだろうか、それらは両方ともID 040b:2000を持っているでしょうか? IDについて考えるとき、私はUIDについて考えます。たとえば、ドライバーIDは一意であり、HTMLIDは一意です。
私のrpiについて:
Bus 001 Device 005: ID 040b:2000 Weltrend Semiconductor
キーボードを取り外して再接続します
Bus 001 Device 006: ID 040b:2000 Weltrend Semiconductor
次に、キーボードをPCに持っていき、
Bus 002 Device 009: ID 040b:2000 Weltrend Semiconductor
はい、USB IDはデバイス標準であるため、2つの同一のデバイスが同じIDを持ちます。 IDとデバイスのデータベース(およびLinuxなどでのサポート)は、 http://www.linux-usb.org/usb-ids.html で管理されています。実際の数は、ベンダーとデバイスの2つの部分に分けられます。
すべてのUSBデバイスには、標準の要件により、ベンダーID(VID)と製品ID(PID)の2つの基本パラメーターが必要です。これらの識別子は、「getdescriptor」コマンドの列挙段階ですべてのUSBデバイスによって送信されます。 VIDとPIDはデバイスハードウェアに組み込まれているため、OSに依存しません。デバイスの汎用USBクラスに加えて、その目的は、デバイスにこのベンダー固有の独自の機能がある場合に、OSに適切なドライバーをロードさせることです。
VIDは、USB組織に登録されているすべてのメーカーに割り当てられています。 USB.ORGには、メーカーに割り当てられた一意のVIDのリストがあります。 PIDはデバイスの追加の識別子であり、メーカーの製品ライン内のさまざまなデバイスタイプとモデルバージョンを記述します。
そうです、同じ店舗の棚にある2つのキーボードは、まったく同じVIDとPIDを報告します。これらは、OSによって接続されているすべてのUSBデバイスに内部的に割り当てられているドライバー(「ハンドル」)のインスタンスの識別と混同しないでください。デバイスの接続方法と検出方法によって異なる場合があります。