USB-Seriennummer wird mit dem Befehl lsusb -v nicht angezeigt

USB-Seriennummer wird mit dem Befehl lsusb -v nicht angezeigt

Ich habe einen USB-Stick, von dem ich die Seriennummer auslesen möchte. Wenn ich den Befehl aufrufe, lautet lsusb -vdie Ausgabe in der Zeile :iSerial

iSerial    3

Wenn ich /proc/scsi/usb-storagedie Datei anschaue, erhalte ich die folgende Ausgabe:

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

Warum bekomme ich bei dem lsusbBefehl einerseits keine Seriennummer ausgegeben, andererseits aber eine Seriennummer angezeigt /proc/scsi/usb-storage. Wo liegt der Unterschied zwischen den beiden Methoden zur Ermittlung der Seriennummer?

Antwort1

lsusbversucht möglicherweise, das USB-Gerät als O_RDWR(read/schreibenModus) und Ihr Benutzer hat möglicherweise nicht die Rechte, dies zu tun (in diesem Fall sollte die Fehlermeldung „Gerät konnte nicht geöffnet werden, einige Informationen fehlen“ zwischen den Ausgaben erscheinen). Als Root gestartet lsusbsollte es auch möglich sein, den gesamten iSerial-Wert auszugeben.

Antwort2

Generell gibt es viele verschiedene USB-Geräte (Tastaturen, Mäuse, Webcams, ...). lsusbbehandelt die angeschlossenen Geräte auf der USB-Protokollebene.

Einige USB-Geräte sind Speichergeräte (USB-Sticks, USB-Festplatten, ...). Sie verstehen zusätzlich zum USB-Protokoll ein anderes Protokoll (mehr oder weniger SCSI). Innerhalb dieses Protokolls hat ein USB-Speichergerät eine Seriennummer (wie auch ein ATA-Gerät). Dies sehen Sie in /proc/scsi/usb-storage.

Die iSerialNummer, die Sie sehen, lsusbhat damit nichts zu tun.

Deshalb sehen Sie die Seriennummer, an der Sie interessiert sind, mit einer Methode, aber nicht mit der anderen Methode. Und deshalb können Sie nicht verwenden, lsusbum die Art der Seriennummer zu erhalten, an der Sie interessiert sind

Antwort3

Sie können es lsusbmit dem ausführlichen Flag verwenden, müssen aber darauf achten, es sudozusammen mit diesem zu verwenden, da sonst die Seriennummer falsch ist.

sudo lsusb -v

Wenn das zu ausführlich ist, führen Sie Folgendes aus, lsusbum die Geräte-ID abzurufen:

$ 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

Führen Sie es dann lsusbmit -sder Flagge aus, um nur das angegebene Gerät anzuzeigen, und suchen Sie mit grep nach der Seriennummer.

Also für die Seriennummer des Rigol-Geräts:

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

Weitere Informationen zur lsusbVerwendung der --helpFlagge:

$ 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

verwandte Informationen