web-dev-qa-db-ja.com

USB IDとデバイスはubuntuでどのように割り当てられますか?

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 
3

はい、USB IDはデバイス標準であるため、2つの同一のデバイスが同じIDを持ちます。 IDとデバイスのデータベース(およびLinuxなどでのサポート)は、 http://www.linux-usb.org/usb-ids.html で管理されています。実際の数は、ベンダーとデバイスの2つの部分に分けられます。

5
ivanivan

すべてのUSBデバイスには、標準の要件により、ベンダーID(VID)と製品ID(PID)の2つの基本パラメーターが必要です。これらの識別子は、「getdescriptor」コマンドの列挙段階ですべてのUSBデバイスによって送信されます。 VIDとPIDはデバイスハードウェアに組み込まれているため、OSに依存しません。デバイスの汎用USBクラスに加えて、その目的は、デバイスにこのベンダー固有の独自の機能がある場合に、OSに適切なドライバーをロードさせることです。

VIDは、USB組織に登録されているすべてのメーカーに割り当てられています。 USB.ORGには、メーカーに割り当てられた一意のVIDのリストがあります。 PIDはデバイスの追加の識別子であり、メーカーの製品ライン内のさまざまなデバイスタイプとモデルバージョンを記述します。

そうです、同じ店舗の棚にある2つのキーボードは、まったく同じVIDとPIDを報​​告します。これらは、OSによって接続されているすべてのUSBデバイスに内部的に割り当てられているドライバー(「ハンドル」)のインスタンスの識別と混同しないでください。デバイスの接続方法と検出方法によって異なる場合があります。

3
Ale..chenski