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

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 つの方法の違いはどこにあるのでしょうか。

答え1

lsusbUSBデバイスをO_RDWR(読み取り/書くモード) であり、ユーザーにはこれを行う権限がない可能性があります (その場合、出力の間に「デバイスを開けませんでした。一部の情報が不足しています」というエラー メッセージが表示されます)。root として起動すると、lsusbiSerial 値全体を出力できるはずです。

答え2

一般的に、さまざまな USB デバイス (キーボード、マウス、Web カメラなど) が存在します。USBlsusbプロトコル レベルで接続されたデバイスを処理します。

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

iSerial表示される数字はそれlsusbとは何の関係もありません。

そのため、一方の方法では興味のあるシリアル番号が表示されますが、もう一方の方法では表示されません。そのため、lsusb興味のある種​​類のシリアル番号を取得するために使用することはできません。

答え3

詳細フラグと一緒に使用できますlsusbが、必ず一緒に使用する必要があります。sudoそうしないと、シリアルが不正確になります。

sudo lsusb -v

詳細すぎる場合は、次のコマンドを実行してlsusbデバイス ID を取得します。

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 012: ID 1ab1:0e11 Rigol Technologies
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

次に、指定されたデバイスのみを表示するフラグlsusbを付けて実行し-s、シリアル番号を grep で検索します。

したがって、Rigol デバイスのシリアル番号は次のようになります。

$ sudo lsusb -s 012 -v|grep -i iserial
  iSerial                 3 DP8C221100000

フラグlsusbの使用に関する詳細については、以下を参照してください。--help

$ lsusb --help
Usage: lsusb [options]...
List USB devices
  -v, --verbose
      Increase verbosity (show descriptors)
  -s [[bus]:][devnum]
      Show only devices with specified device and/or
      bus numbers (in decimal)
  -d vendor:[product]
      Show only devices with the specified vendor and
      product ID numbers (in hexadecimal)
  -D device
      Selects which device lsusb will examine
  -t, --tree
      Dump the physical USB device hierarchy as a tree
  -V, --version
      Show version of program
  -h, --help
      Show usage and help

関連情報