シリアル番号を読みたい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つの方法の違いはどこですか?
lsusb
は、USBデバイスをO_RDWR
(読み取り/ 書き込みモード)として開こうとする場合があり、ユーザーはこれを実行する権限を持っていない可能性があります(いくつかのエラーメッセージ "Couldn ' tデバイスを開くと、一部の情報が失われます。ルートlsusb
として開始すると、iSerial値全体を出力できるはずです。
一般に、さまざまなUSBデバイス(キーボード、マウス、ウェブカメラなど)がたくさんあります。 lsusb
は、USBプロトコルレベルで接続されたデバイスを扱います。
一部のUSBデバイスはストレージデバイスです(USBスティック、USBハードディスクなど)。彼らは、USBプロトコルに加えて別のプロトコル(多かれ少なかれSCSI)を理解しています。このプロトコル内では、USBストレージデバイスにシリアル番号があります(ATAデバイスと同様)。これは/proc/scsi/usb-storage
。
iSerial
に表示されるlsusb
番号は、それとは関係ありません。
そのため、ある方法では関心のあるシリアル番号が表示されますが、他の方法では表示されません。そして、それがlsusb
を使用して、興味のある種類のシリアル番号を取得できない理由です。