Есть ли эквивалент lsusb для OS X

Этот вопрос, кажется, повсюду в Google, но ответы на все вопросы указывают на использование System Profiler. Это хорошо, но с System Profiler все, что вы получаете, выглядит примерно так:

            DasKeyboard:

              Product ID: 0x1919
              Vendor ID: 0x04d9  (Holtek Semiconductor, Inc.)
              Version: 1.06
              Speed: Up to 1.5 Mb/sec
              Location ID: 0x1d114000 / 11
              Current Available (mA): 500
              Current Required (mA): 100

            USB2.0 Hub:

              Product ID: 0x0608
              Vendor ID: 0x05e3  (Genesys Logic, Inc.)
              Version: 32.98
              Speed: Up to 480 Mb/sec
              Location ID: 0x1d113000 / 10
              Current Available (mA): 500
              Current Required (mA): 100

                Microsoft Basic Optical Mouse v2.0 :

                  Product ID: 0x00cb
                  Vendor ID: 0x045e  (Microsoft Corporation)
                  Version: 1.99
                  Speed: Up to 1.5 Mb/sec
                  Manufacturer: Microsoft 
                  Location ID: 0x1d113200 / 12
                  Current Available (mA): 500
                  Current Required (mA): 100

Прекрасно, если все, что вам нужно, это содержимое набора дескрипторов устройств, но lsusb дает вам гораздо больше - информацию об интерфейсах и конечных точках, ассоциации интерфейсов, составные устройства... где вы можете найти эту информацию в OS X? Должен быть инструмент, который делает это?

10 ответов

Я устал забывать system_profiler SPUSBDataType синтаксис, поэтому я сделал lsusb альтернатива. Вы можете найти его здесь или установить с помощью homebrew:

brew install lsusb

Обычно я запускаю эту команду для вывода списка устройств USB в Mac OS X вместе с подробной информацией о них:

ioreg -p IOUSB -l -w 0

Документация ioreg это здесь:

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/ioreg.8.html

Доморощенные пользователи: вы можете получить lsusb установив usbutils формула из моего крана:

brew install mikhailai/misc/usbutils

Это устанавливает РЕАЛЬНОЕ lsusb на основе источников Linux (версия 007).

В Mac OSX вы можете использовать следующую команду:

system_profiler SPUSBDataType

Если вы являетесь пользователем MacPorts, вы можете просто установить usbutils

sudo port install usbutils

Если вы этого не сделаете, это может быть хорошей возможностью для его установки, у него есть порты для нескольких других полезных инструментов Linux.

Я пройду через свою шляпу, попробовав ответы здесь. Сценарий почти не работает, а порт для macOSusbutilsне фиксирует строковые дескрипторы или не поддерживает--tree.

Это привело меня к созданию cyme, современного кросс-платформенного инструмента USB-списка, использующегоsystem_profiler -jsonпод капотом. Он также используетlibusbдля дополнительных данных/кросс-платформенных иudevна Линукс. Он поддерживает--lsusbсовместимый режим, который почти соответствует выходным данным для всех аргументов. Он должен поцарапать macOSlsusbзуд и многое другое.

system_profiler SPUSBDataType

это ваша команда на macos

Как насчет ioreg? Вывод гораздо более детальный, чем профилировщик, но он немного плотный.

Источник: https://lists.macosforge.org/pipermail/macports-users/2008-July/011115.html

Хотя бы на 10.10.5, system_profiler SPUSBDataType выход не обновляется динамически при подключении нового USB-устройства, в то время как ioreg -p IOUSB -l -w 0 делает.

В Mac OS X в комплект разработчика Xcode входит приложение USB Proper.app. Это находится в /Developer/Applications/Utilities/. USB Prober позволит вам изучить дескрипторы устройства и интерфейса.

Другие вопросы по тегам