Esto puede requerir un poco de extrapolación, pero usa el valor de "Speed" en system_profiler
Por ejemplo, al observar el receptor USB de Logitech (para mi ratón y segundo teclado):
$ system_profiler SPUSBDataType | grep Logitech -A5
Vendor ID: 0x046d (Logitech Inc.)
Version: 12.01
Speed: Up to 12 Mb/sec
Manufacturer: Logitech
Location ID: 0x14200000 / 3
Current Available (mA): 1000
Current Required (mA): 98
Extra Operating Current (mA): 0
Al observar el valor de "Speed", me indica que es un dispositivo USB 1.1. Al hacer la misma búsqueda para mi disco USB Seagate FreeAgent Go, obtengo lo siguiente:
system_profiler SPUSBDataType | grep Seagate -A5
Vendor ID: 0x0bc2 (Seagate LLC)
Version: 1.48
Serial Number: 2GE7WLWG
Speed: Up to 480 Mb/sec
Manufacturer: Seagate
Location ID: 0x14320000 / 23
Current Available (mA): 1000
Current Required (mA): 100
Extra Operating Current (mA): 0
Capacity: 500.11 GB (500,107,861,504 bytes)
Me indica que tiene una velocidad de 480Mb/s, lo que significa que es un dispositivo USB 2.0.
No es necesario mostrar todos esos datos adicionales, los estoy usando con propósitos ilustrativos, en su lugar puedes enfocarte en la línea que contiene el valor de velocidad:
$ system_profiler SPUSBDataType | grep Seagate -A5 | grep Speed
Speed: Up to 480 Mb/sec
Para referencia, las velocidades/especificaciones de USB son las siguientes:
USB 1.x - 12Mb/sec
USB 2.0 - 480Mb/sec
USB 3.0 - 5Gb/s
USB 3.1 - 10Gb/s
1 votos
::echar un vistazo bajo el capó de
lsusb
y soñar con rehacerlo para macOS:: github.com/gregkh/usbutils/blob/master/lsusb.c