Частичный ответ:
Вы можете использовать ioreg -p IOUSB
чтобы увидеть дерево USB, если оно зарегистрировано в IOKit (или использовать приложение System Information , в разделе Hardware/USB).
Кроме того, ioreg -l -p IOUSB
печатает свойства, среди которых USB Address
(который, по-видимому, является номером порта родительского концентратора), и locationID
, который согласно документам является
32-разрядное число, которое является уникальным среди всех USB-устройств в системе и которое не изменится при перезагрузке системы, если не изменится топология самой шины.
Значение, возвращаемое IORegistryEntryGetLocationInPlane, которое отображается после @
в выводе ioreg
, также, похоже, содержит какой-то путь к порту или, по крайней мере, уникальный идентификатор.
У меня нет устройств с последовательным портом USB, с которыми можно поиграться, поэтому я не знаю, как эта информация связана с идентификатором после tty.usbserial
или можно ли получить этот идентификатор с помощью iokit
другим способом.