web-dev-qa-db-ja.com

lsusb -vコマンドでUSBシリアル番号が表示されない

シリアル番号を読みたいUSBスティックがあります。コマンドlsusb -vを呼び出すと、iSerial行の出力は次のようになります。

iSerial    3

/proc/scsi/usb-storageに移動してファイルを調べると、次の出力が得られます。

Host scsi10: usb-storage
Vendor: USB
Product: Disk 2.0
Serial Number: 92071573E1272519149
Protocol: Transparent SCSI
Transport: Bulk
Quirks:

なぜlsusbコマンドでシリアル出力がないのに、一方で/proc/scsi/usb-storageからシリアル番号を取得するのですか。シリアルを収集する2つの方法の違いはどこですか?

4
Chris

lsusbは、USBデバイスをO_RDWR(読み取り/ 書き込みモード)として開こうとする場合があり、ユーザーはこれを実行する権限を持っていない可能性があります(いくつかのエラーメッセージ "Couldn ' tデバイスを開くと、一部の情報が失われます。ルートlsusbとして開始すると、iSerial値全体を出力できるはずです。

1
Jaleks

一般に、さまざまなUSBデバイス(キーボード、マウス、ウェブカメラなど)がたくさんあります。 lsusbは、USBプロトコルレベルで接続されたデバイスを扱います。

一部のUSBデバイスはストレージデバイスです(USBスティック、USBハードディスクなど)。彼らは、USBプロトコルに加えて別のプロトコル(多かれ少なかれSCSI)を理解しています。このプロトコル内では、USBストレージデバイスにシリアル番号があります(ATAデバイスと同様)。これは/proc/scsi/usb-storage

iSerialに表示されるlsusb番号は、それとは関係ありません。

そのため、ある方法では関心のあるシリアル番号が表示されますが、他の方法では表示されません。そして、それがlsusbを使用して、興味のある種​​類のシリアル番号を取得できない理由です。

1
dirkt