El número de serie del USB no se muestra con el comando lsusb -v

El número de serie del USB no se muestra con el comando lsusb -v

Tengo una memoria USB de la que me gustaría leer el número de serie. Si invoco el comando, lsusb -vel resultado en la línea iSeriales el siguiente:

iSerial    3

Si voy /proc/scsi/usb-storagey miro el archivo, obtengo el siguiente resultado:

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

¿Por qué no hay salida en serie con el lsusbcomando por un lado, pero por otro lado obtengo un número de serie de /proc/scsi/usb-storage. ¿Dónde está la diferencia entre los dos métodos para recopilar la serie?

Respuesta1

lsusbPuede intentar abrir el dispositivo USB como O_RDWR(leer/escribirmodo) y es posible que su usuario no tenga los derechos para hacer esto (algún mensaje de error "No se pudo abrir el dispositivo, falta información" debería aparecer entre la salida, si es así). Iniciado como root lsusbtambién debería poder generar el valor iSerial completo.

Respuesta2

Existen multitud de dispositivos USB diferentes en general (teclados, ratones, webcams,...). lsusbse ocupa de los dispositivos conectados en el nivel del protocolo USB.

Algunos dispositivos USB son dispositivos de almacenamiento (memorias USB, discos duros USB, ...). Entienden un protocolo diferente (más o menos SCSI) además del protocolo USB. Dentro de este protocolo, un dispositivo de almacenamiento USB tiene un número de serie (al igual que un dispositivo ATA). Esto es lo que ves en /proc/scsi/usb-storage.

El iSerialnúmero que ves lsusbno tiene nada que ver con eso.

Es por eso que ves el número de serie que te interesa con un método, pero no con el otro. Y es por eso que no puede utilizarlo lsusbpara obtener el tipo de número de serie que le interesa.

Respuesta3

Puede usarlo lsusbcon el indicador detallado, pero debe asegurarse sudode usarlo; de lo contrario, el número de serie será incorrecto.

sudo lsusb -v

Si esto es demasiado detallado, ejecute lsusbpara obtener la identificación del 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

Luego ejecute lsusbcon -sflag para mostrar solo el dispositivo especificado y grep para el número de serie.

Entonces, para el número de serie del dispositivo Rigol:

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

Para más información sobre el lsusbuso de la --helpbandera:

$ 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

información relacionada