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?


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

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

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).


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

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.


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


2
system_profiler SPUSBDataType

to twoja potrzeba polecenia na macos


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.


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.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.