Czy istnieje odpowiednik lsusb dla OS X?

96

Wydaje się, że to pytanie jest wszędzie w Google, ale wszystkie odpowiedzi wskazują na użycie programu System Profiler. To miłe, ale dzięki Profilowi ​​systemu wszystko, co dostajesz, to coś, co wygląda następująco:

            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

To świetnie, jeśli wszystko, czego chcesz, to zawartość zestawu deskryptorów urządzeń, ale lsusbdaje o wiele więcej - informacje o interfejsach i punktach końcowych, skojarzeniach interfejsów, urządzeniach kompozytowych ... gdzie możesz znaleźć te informacje w systemie OS X? Tam musi być narzędziem, które to robi?

Ted Middleton
źródło
Jeśli nie masz nic przeciwko, w jaki sposób używasz informacji takich jak „interfejsy i punkty końcowe, skojarzenia interfejsów, urządzenia kompozytowe”?
Ben Creasy,

Odpowiedzi:

136

Zmęczyło mnie zapominanie o system_profiler SPUSBDataTypeskładni, więc stworzyłem lsusbalternatywę. Możesz go znaleźć tutaj lub zainstalować za pomocą homebrew:

brew install lsusb
jlhonora
źródło
2
Niezły scenariusz! Czy chcesz dodać go jako formułę homebrew? To byłoby wygodne.
moritz
1
To fajne narzędzie, ale wciąż jest to tylko ułamek tego, co może ci dać lsusb na Linuksie. lsusb w systemie Linux może dostarczyć pełną zawartość deskryptorów konfiguracji urządzenia. Bez tego obawiam się, że to narzędzie jest głównie po prostu ładną drukarką.
Ted Middleton
3
Może być ograniczone, ale robi dokładnie to, czego potrzebowałem. Sprawia, że ​​moje środowisko programistyczne jest spójne dzięki tylko brew installpodziękowaniu !!
Snakeoil
2
To fajny skrypt, ale naprawdę nie powinien nazywać się „lsusb”, biorąc pod uwagę, co lsusbwłaściwie potrafi: askubuntu.com/a/604169/598643
Mr. Kennedy
1
Fajnie byłoby alias lsusb='system_profiler SPUSBDataType', gdybyś nie przejmował się zbytnio uzyskaniem dokładnie tego samego wyniku dla lsusb
yerlilbilgin
73

Zwykle uruchamiam to polecenie, aby wyświetlić listę urządzeń USB w systemie Mac OS X wraz ze szczegółami na ich temat:

ioreg -p IOUSB -l -w 0
David Grayson
źródło
Zobacz moją odpowiedź na @blekenbleu o ioregu
Ted Middleton
3
Kopia komentarza Teda Middletona : Problem polega na tym, że ioreg i IORegistryExplorer pokazują obiekty jądra, które zostały dopasowane do urządzeń, a nie szczegóły samych urządzeń. Oznacza to, że nie zobaczysz interfejsów w konfiguracjach innych niż aktualnie aktywna i nie zobaczysz żadnych informacji o punkcie końcowym (co jest najbardziej użytecznym wyjściem z lsusb).
Maarten Bodewes
1
Wygląda na to, że strony podręcznika zostały usunięte. Zastępcami (stan na maj 2019) są: unix.com/man-page/mojave/8/ioreg i manpagez.com/man/8/ioreg
rdadolf
26

Użytkownicy Homebrew: możesz uzyskać lsusb, instalując usbutilsformułę z mojego kranu:

brew install mikhailai/misc/usbutils

Instaluje REAL lsusbna podstawie źródeł Linuksa (wersja 007).

Michaił Iakhiaev
źródło
1
Wreszcie prawdziwa okazja. Mogę potwierdzić, że ten działa na OX 10.13.6.
Guido
3
Dzięki, to dużo lepsze rozwiązanie, niedostępne w momencie, gdy tworzyłem lsusbskrypt.
jlhonora
2
Dzięki, @jlhonora. Ironia polega na tym, że chłopaki z Homebrew zdecydowali się na dodanie twojego lsusbscenariusza homebrew-corezamiast mojego usbutils.
Michaił Iakhiaev
1
Zawsze możesz wysłać im PR.
jlhonora
9

W systemie Mac OSX możesz użyć następującego polecenia:

system_profiler SPUSBDataType
QJGui
źródło
system_profiler ma ten sam problem co ioreg - odzwierciedla stan obiektów jądra, które jądro dopasowało do urządzeń, a nie do samych urządzeń. Chcę czegoś, co w zasadzie wyświetli pełny układ urządzenia, tak jak we wszystkich deskryptorach konfiguracji wszystkich konfiguracji.
Ted Middleton
6

Jeśli jesteś użytkownikiem MacPorts , możesz po prostu zainstalować usbutils

sudo port install usbutils

Jeśli nie, może to być dobra okazja, aby go zainstalować, ponieważ ma porty dla kilku innych przydatnych narzędzi linuxowych.

thiago
źródło
Ach - ok, w pliku portu, który widzę, "depends_lib port: libusb", a źródło rzeczywiście wymaga libusb. To chyba wystarczy. Nie używam jednak macportów - jestem na naparze. I nie chciałbym instalować macportów tylko w tym celu, zwłaszcza gdy lsusb można tak łatwo ponownie zaimplementować za pomocą iokit przestrzeni użytkownika.
Ted Middleton
To powinna być akceptowana odpowiedź. Jednak w tej chwili ten pakiet jest uszkodzony z powodu jego zależności usbids, śledź go na trac.macports.org/ticket/53188
Wydaje się, że zostało to już naprawione.
Maarten Bodewes
4

Co powiesz na ioreg ? Dane wyjściowe są znacznie bardziej szczegółowe niż profiler, ale są nieco gęste.

Źródło: https://lists.macosforge.org/pipermail/macports-users/2008-July/011115.html

lhagan
źródło
Zobacz moją odpowiedź na @blekenbleu. lsusb ma znacznie więcej informacji niż ioreg / IORegistryExplorer lub jakikolwiek inny program, taki jak system_profiler, który po prostu przegląda rejestr iokit.
Ted Middleton
2
system_profiler SPUSBDataType

to twoja potrzeba polecenia na macos

xds2000
źródło
0

Przynajmniej w wersji 10.10.5 system_profiler SPUSBDataTypedane wyjściowe NIE są dynamicznie aktualizowane po podłączeniu nowego urządzenia USB ioreg -p IOUSB -l -w 0.

blekenbleu
źródło
Problem polega na tym, że ioreg i IORegistryExplorer pokazują obiekty jądra, które zostały dopasowane do urządzeń, a nie szczegóły samych urządzeń. Oznacza to, że nie zobaczysz interfejsów w konfiguracjach innych niż aktualnie aktywna i nie zobaczysz żadnych informacji o punkcie końcowym (co jest najbardziej użytecznym wyjściem z lsusb).
Ted Middleton
To, co chciałbym, to narzędzie, które pokaże zawartość wszystkich deskryptorów konfiguracji urządzenia. ioreg tego nie zrobi, lsusb tak.
Ted Middleton
Nie rozumiem, czym to się różni od tej odpowiedzi ?
Maarten Bodewes
0

W systemie Mac OS X pakiet programisty Xcode zawiera aplikację USB Proper.app. Znajduje się w / Developer / Applications / Utilities /. USB Prober pozwoli ci sprawdzić deskryptory urządzenia i interfejsu.

RayM
źródło
Xcode.app/Contents/Applications/Utilities nie istnieje w Xcode 8.3 i nie ma USB Prober w aplikacjach. Wiem, że USB Prober jest nadal dostępny, ale nie byłem jeszcze w stanie dowiedzieć się, gdzie to jest. Znajduje się w pakiecie z kilkoma innymi narzędziami.
Mike Crawford,