Może to zająć trochę ekstrapolacji, ale użyj wartości z „Prędkości” w system_profiler
Na przykład, patrząc na odbiornik USB Logitech (dla mojej myszy i drugiej klawiatury):
$ 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
Patrząc na wartość „Speed”, informuje mnie, że jest to urządzenie USB 1.1. Wykonując to samo wyszukiwanie dysku USB Seagate FreeAgent Go, otrzymuję następujące informacje:
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)
Mówi mi, że ma prędkość 480 Mb / s, czyli urządzenie USB 2.0.
Nie musisz wysyłać wszystkich dodatkowych danych, używam ich tylko do celów ilustracyjnych, zamiast tego możesz zawęzić je do linii zawierającej wartość prędkości:
$ system_profiler SPUSBDataType | grep Seagate -A5 | grep Speed
Speed: Up to 480 Mb/sec
Na przykład, Prędkości / specyfikacje USB są następujące:
USB 1.x - 12Mb/sec
USB 2.0 - 480Mb/sec
USB 3.0 - 5Gb/s
USB 3.1 - 10Gb/s
lsusb
i marzy o przerobieniu go na macOS :: github.com/gregkh/usbutils/blob/master/lsusb.c