Número de série USB não mostrado com o comando lsusb -v

Número de série USB não mostrado com o comando lsusb -v

Tenho um pendrive do qual gostaria de ler o número de série. Se eu invocar o comando, lsusb -va saída na linha iSerialserá a seguinte:

iSerial    3

Se eu for /proc/scsi/usb-storagee examinar o arquivo, obtenho a seguinte saída:

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

Por que não há saída serial com o lsusbcomando por um lado, mas por outro lado recebo um número de série de /proc/scsi/usb-storage. Onde está a diferença entre os dois métodos para coletar o serial?

Responder1

lsusbpode tentar abrir o dispositivo USB como O_RDWR(leitura/escrevermodo) e seu usuário pode não ter os direitos para fazer isso (alguma mensagem de erro "Não foi possível abrir o dispositivo, algumas informações estarão faltando" deve estar entre a saída, se houver). Iniciado como root lsusbtambém deve ser capaz de gerar todo o valor iSerial.

Responder2

Existem muitos dispositivos USB diferentes em geral (teclados, mouses, webcams, ...). lsusblida com os dispositivos conectados no nível do protocolo USB.

Alguns dispositivos USB são dispositivos de armazenamento (pen drives, discos rígidos USB, ...). Eles entendem um protocolo diferente (mais ou menos SCSI) além do protocolo USB. Dentro deste protocolo, um dispositivo de armazenamento USB possui um número de série (assim como um dispositivo ATA). Isto é o que você vê em /proc/scsi/usb-storage.

O iSerialnúmero que você vê lsusbnão tem nada a ver com isso.

É por isso que você vê o número de série no qual está interessado em um método, mas não no outro método. E é por isso que você não pode usar lsusbpara obter o tipo de número de série no qual está interessado

Responder3

Você pode usar lsusbcom sinalizador detalhado, mas precisa ter certeza de usar sudocom ele, caso contrário o serial estará incorreto.

sudo lsusb -v

Se isso for muito detalhado, execute lsusbpara obter o ID do dispositivo:

$ 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

Em seguida, execute lsusbcom -sflag para mostrar apenas o dispositivo especificado e grep para o número de série.

Então, para o número de série do dispositivo Rigol:

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

Para obter mais informações sobre lsusbcomo usar o --helpsinalizador:

$ 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

informação relacionada