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.