2013-06-12 7 views
51

Этот вопрос, кажется, повсюду в google, но ответы все указывают на использование System Profiler. Это хорошо, но с системой Profiler все, что вы получаете то, что выглядит следующим образом:Есть ли эквивалент lsusb для OS X

  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? Там должен быть инструментом, который это делает?

ответ

80

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

brew update && brew tap jlhonora/lsusb && brew install lsusb 
+2

Хороший скрипт! Вы хотите добавить его в формулу доморощенного? Это было бы удобно. – moritz

+1

@moritz https://github.com/mxcl/homebrew/pull/23803 – jlhonora

+0

Это хорошая утилита, но она по-прежнему остается лишь частью того, что lsusb на linux может получить. lsusb on linux может предоставить вам полное содержимое дескрипторов конфигурации устройства. Без этого я боюсь, что этот инструмент в основном просто красивый принтер. –

4

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

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

+0

См. Мой ответ на @blekenbleu. lsusb имеет гораздо больше информации, чем ioreg/IORegistryExplorer, или любую другую программу, такую ​​как system_profiler, которая просто просматривает реестр iokit. –

7

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

system_profiler SPUSBDataType 
+0

system_profiler имеет ту же проблему, что и ioreg - он отражает состояние объектов ядра, которое ядро ​​соответствует устройствам, а не сами устройства. Я хочу что-то, что будет в основном отображать полный макет устройства, как и во всех дескрипторах конфигурации всех конфигураций. –

48

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

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

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

+0

Посмотрите мой ответ на @blekenbleu о ioreg –

+0

Копия комментария [Ted Middleton] (https://stackoverflow.com/users/134692): Проблема в том, что ioreg и IORegistryExplorer показывают вам объекты ядра, которые были сопоставлены с устройствами , а не детали самих устройств. Это означает, что вы не увидите интерфейсы на конфигурациях, отличных от текущего, и вы вообще не увидите никакой информации о конечных точках (это самый полезный вывод из lsusb). –

0

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

+0

Проблема в том, что ioreg и IORegistryExplorer показывают вам объекты ядра, которые были сопоставлены с устройствами, а не детали самих устройств. Это означает, что вы не увидите интерфейсы на конфигурациях, отличных от текущего, и вы вообще не увидите никакой информации о конечных точках (это самый полезный вывод из lsusb). –

+0

Что мне нужно - это инструмент, который отображает содержимое всех дескрипторов конфигурации устройства. ioreg этого не сделает, lsusb делает. –

+0

Я не вижу, как это отличается от [этого ответа] (https://stackoverflow.com/a/29778245/589259)? –

5

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

sudo port install usbutils 

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

+0

Ah - ok, в файле порта, который я вижу, «depends_lib port: libusb», и, похоже, источник действительно требует libusb. Думаю, это сделает это. На самом деле, я не использую macports, я нахожусь на пиво. И мне было бы неинтересно устанавливать для этого macports, особенно когда lsusb можно было бы переопределить с помощью iokit пользовательского пространства так легко. –

+0

Это должен быть принятый ответ. Howerver, прямо сейчас этот пакет поврежден из-за его зависимости 'usbids', отслеживает его по https://trac.macports.org/ticket/53188 – light2yellow

+0

Это, похоже, уже исправлено. –

0

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