Чи існує еквівалент lsusb для OS X


96

Здається, це питання по всьому 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? Там повинен бути інструмент , який робить це?


Якщо ви не проти, як ви використовуєте таку інформацію, як "інтерфейси та кінцеві точки, асоціації інтерфейсів, складові пристрої"?
Бен Крісі

Відповіді:


136

Мені набридло забувати system_profiler SPUSBDataTypeсинтаксис, тому я зробив lsusbальтернативу. Ви можете знайти його тут або встановити за допомогою домашньої писемності:

brew install lsusb

2
Гарний сценарій! Ви хотіли б додати його як доморощену формулу? Це було б зручно.
Moritz

1
Це приємна утиліта, але це все-таки лише частка того, що lsusb у Linux може вам отримати. lsusb на Linux може надати вам повний вміст дескрипторів конфігурації пристрою. Без цього я боюся, що цей інструмент в основному є просто гарним принтером.
Тед Міддлтон,

3
Може бути обмеженим, але він робить саме те, що мені потрібно. Робить моє середовище розробки просто brew installспасибі !!
snakeoil

2
Це приємний сценарій, але насправді його не слід називати "lsusb", враховуючи, що lsusbнасправді можна зробити: askubuntu.com/a/604169/598643
містер Кеннеді,

1
Акуратним було б, alias lsusb='system_profiler SPUSBDataType'якщо вас не надто турбує отримання такого самого результату для lsusb
yerlilbilgin

73

Я зазвичай запускаю цю команду, щоб перерахувати USB-пристрої на Mac OS X, а також деталі про них:

ioreg -p IOUSB -l -w 0

Дивіться мою відповідь @blekenbleu про ioreg
Тед Міддлтон,

3
Копія коментаря Теда Міддлтона : Проблема полягає в тому, що ioreg та IORegistryExplorer показують вам об’єкти ядра, які відповідають пристроям, а не деталі самих пристроїв. Це означає, що ви не побачите інтерфейсів у інших конфігураціях, крім поточно активної, і взагалі не побачите жодної інформації про кінцеву точку (що є найбільш корисним результатом роботи з lsusb).
Маартен Бодевес,

1
Здається, видалені сторінки. Альтернативами (станом на травень 2019 р.) Є: unix.com/man-page/mojave/8/ioreg та manpagez.com/man/8/ioreg
rdadolf

26

Користувачі Homebrew: ви можете отримати lsusb, встановивши usbutilsформулу з мого крана:

brew install mikhailai/misc/usbutils

Він встановлює REAL lsusbна основі джерел Linux (версія 007).


1
Нарешті, справжня угода. Я можу підтвердити, що цей працює на OX 10.13.6.
Гвідо

3
Дякую, це набагато краще рішення, недоступне на момент розробки lsusbсценарію.
jlhonora

2
Дякую, @jlhonora. Іронія в тому, що хлопці Homebrew вирішили додати ваш lsusbсценарій homebrew-core, а не мій usbutils.
Михайло Ях'яєв

1
Ви завжди можете надіслати їм PR.
jlhonora


9

У mac osx ви можете використовувати таку команду:

system_profiler SPUSBDataType

system_profiler має ту саму проблему, що і ioreg - він відображає стан об'єктів ядра, які ядро ​​відповідає пристроям, а не самим пристроям. Я хочу щось, що в основному відображатиме повну компоновку пристрою, як у всіх дескрипторах конфігурації всіх конфігурацій.
Тед Міддлтон,

6

Якщо ви користуєтеся MacPorts , ви можете просто встановити usbutils

sudo port install usbutils

Якщо ви цього не зробите, це може бути гарною можливістю встановити його, він має порти для кількох інших корисних інструментів Linux.


Ага - добре, у файлі порту, який я бачу, "depend_lib port: libusb", і джерело справді вимагає libusb. Я б це зробив, я думаю. Я насправді не користуюся макпортами - я готую. І я не хотів би встановлювати макпорти саме для цього, особливо коли lsusb можна було б так легко переоснастити за допомогою iokit простору користувача.
Тед Міддлтон,

Це має бути прийнятою відповіддю. Howerver, зараз цей пакет зламаний через його залежність usbids, відстежуйте його через trac.macports.org/ticket/53188

Здається, це вже виправлено.
Маартен Бодеус

4

Як щодо ioreg? Висновок набагато детальніший, ніж профайлер, але трохи щільний.

Джерело: https://lists.macosforge.org/pipermail/macports-users/2008-July/011115.html


Дивіться мою відповідь на @blekenbleu. lsusb має набагато більше інформації, ніж ioreg / IORegistryExplorer, або будь-яка інша програма, така як system_profiler, яка просто виконує реєстр iokit.
Тед Міддлтон,

2
system_profiler SPUSBDataType

це вам потрібна команда на macos


0

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


Проблема полягає в тому, що ioreg та IORegistryExplorer показують вам об'єкти ядра, які відповідають пристроям, а не деталі самих пристроїв. Це означає, що ви не побачите інтерфейсів у інших конфігураціях, крім поточно активної, і взагалі не побачите жодної інформації про кінцеву точку (що є найбільш корисним результатом роботи з lsusb).
Тед Міддлтон,

Що б я хотів, це інструмент, який показує вміст усіх дескрипторів конфігурацій пристрою. ioreg цього не робить, робить lsusb.
Тед Міддлтон,

Я не розумію, чим це відрізняється від цієї відповіді ?
Маартен Бодеус

0

У Mac OS X набір розробників Xcode включає програму USB Proper.app. Це можна знайти в / Developer / Applications / Utilities /. USB Prober дозволить вивчити дескриптори пристрою та інтерфейсу.


Xcode.app/Contents/Applications/Utilities не існує в Xcode 8.3, а в програмах немає USB Prober. Я знаю, що USB Prober все ще доступний, але мені ще не вдалося з’ясувати, де він знаходиться. Це всередині упаковки з деякими іншими інструментами.
Майк Кроуфорд,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.