Existe-t-il un équivalent de lsusb pour OS X


96

Cette question semble être partout sur Google, mais les réponses indiquent toutes l'utilisation de System Profiler. C'est bien, mais avec System Profiler, tout ce que vous obtenez est quelque chose qui ressemble à ceci:

            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

C'est génial si tout ce que vous voulez est le contenu d'un tas de descripteurs de périphériques, mais lsusbvous donne tellement plus - des informations sur les interfaces et les points de terminaison, les associations d'interfaces, les périphériques composites ... où pouvez-vous trouver ces informations dans OS X? Il doit y avoir un outil qui fait cela?


Si cela ne vous dérange pas, comment utilisez-vous des informations telles que "interfaces et points de terminaison, associations d'interfaces, périphériques composites"?
Ben Creasy

Réponses:


136

J'étais fatigué d'oublier la system_profiler SPUSBDataTypesyntaxe, alors j'ai fait une lsusbalternative. Vous pouvez le trouver ici , ou l'installer avec homebrew:

brew install lsusb

2
Beau script! Souhaitez-vous l'ajouter en tant que formule homebrew? Ce serait pratique.
moritz

1
C'est un utilitaire intéressant, mais ce n'est encore qu'une fraction de ce que lsusb sur Linux peut vous offrir. lsusb sur linux peut vous donner le contenu complet des descripteurs de configuration du périphérique. Sans cela, j'ai bien peur que cet outil ne soit en grande partie qu'une jolie imprimante.
Ted Middleton

3
Peut-être limité, mais il fait exactement ce dont j'avais besoin. Rend mon environnement de développement cohérent avec juste un brew installmerci !!
snakeoil

2
C'est un bon script, mais il ne devrait vraiment pas s'appeler "lsusb" compte tenu de ce que l' lsusbon peut réellement faire: askubuntu.com/a/604169/598643
Mr. Kennedy

1
Un bon serait alias lsusb='system_profiler SPUSBDataType'si vous ne vous souciez pas trop d'obtenir exactement le même résultat pour lsusb
yerlilbilgin

73

J'exécute généralement cette commande pour répertorier les périphériques USB sur Mac OS X, avec des détails à leur sujet:

ioreg -p IOUSB -l -w 0

Voir ma réponse à @blekenbleu à propos de ioreg
Ted Middleton

3
Copie du commentaire de Ted Middleton : Le problème est qu'ioreg et IORegistryExplorer vous montrent les objets du noyau qui ont été mis en correspondance avec les périphériques, pas les détails des périphériques eux-mêmes. Cela signifie que vous ne verrez pas d'interfaces sur des configurations autres que celle actuellement active et que vous ne verrez aucune information de point de terminaison (ce qui est la sortie la plus utile de lsusb).
Maarten Bodewes

1
Les pages de manuel semblent avoir été supprimées. Les suppléants (à partir de mai 2019) sont: unix.com/man-page/mojave/8/ioreg et manpagez.com/man/8/ioreg
rdadolf

26

Utilisateurs Homebrew: vous pouvez obtenir lsusben installant la usbutilsformule de mon robinet:

brew install mikhailai/misc/usbutils

Il installe le REAL lsusbbasé sur des sources Linux (version 007).


1
Enfin, la vraie affaire. Je peux confirmer que celui-ci fonctionne sur OX 10.13.6.
Guido

3
Merci, c'est une bien meilleure solution, indisponible au moment où j'ai développé le lsusbscript.
jlhonora

2
Merci, @jlhonora. L'ironie est que les gars de Homebrew ont décidé d'ajouter votre lsusbscript à la homebrew-coreplace de mon usbutils.
Mikhail Iakhiaev

1
Vous pouvez toujours leur envoyer un PR.
jlhonora


9

Sous mac osx, vous pouvez utiliser la commande suivante:

system_profiler SPUSBDataType

system_profiler a le même problème que ioreg - il reflète l'état des objets du noyau que le noyau a mis en correspondance avec les périphériques, pas les périphériques eux-mêmes. Je veux quelque chose qui affichera essentiellement la disposition complète de l'appareil, comme dans tous les descripteurs de configuration de toutes les configurations.
Ted Middleton

6

Si vous êtes un utilisateur de MacPorts , vous pouvez simplement installer usbutils

sudo port install usbutils

Si vous ne l'êtes pas, cela pourrait être une bonne opportunité de l'installer, il a des ports pour plusieurs autres outils Linux utiles.


Ah - ok, dans le fichier de port que je vois, "dépend_lib port: libusb", et la source semble en effet nécessiter libusb. Cela le ferait, je suppose. Cependant, je n'utilise pas vraiment macports - je suis en brasserie. Et je détesterais devoir installer macports juste pour cela, surtout quand lsusb pourrait être réimplémenté avec l'espace utilisateur iokit si facilement.
Ted Middleton

Cela devrait être la réponse acceptée. Howerver, pour le moment, ce paquet est cassé en raison de sa dépendance usbids, suivez-le sur trac.macports.org/ticket/53188

Cela semble avoir été résolu maintenant.
Maarten Bodewes


2
system_profiler SPUSBDataType

c'est votre commande de besoin sur macos


0

Au moins sur 10.10.5, la system_profiler SPUSBDataTypesortie n'est PAS mise à jour dynamiquement quand un nouveau périphérique USB est branché, alors que c'est le ioreg -p IOUSB -l -w 0cas.


Le problème est que ioreg et IORegistryExplorer vous montrent les objets du noyau qui ont été mis en correspondance avec les périphériques, et non les détails des périphériques eux-mêmes. Cela signifie que vous ne verrez pas d'interfaces sur des configurations autres que celle actuellement active, et que vous ne verrez aucune information de point de terminaison (ce qui est la sortie la plus utile de lsusb).
Ted Middleton

Ce que je voudrais, c'est un outil qui montrerait le contenu de tous les descripteurs de configuration d'un appareil. ioreg ne le fera pas, lsusb le fait.
Ted Middleton

Je ne vois pas en quoi cela diffère de cette réponse ?
Maarten Bodewes

0

Sous Mac OS X, la suite de développeurs Xcode comprend l'application USB Proper.app. Cela se trouve dans / Developer / Applications / Utilities /. USB Prober vous permettra d'examiner les descripteurs de périphérique et d'interface.


Xcode.app/Contents/Applications/Utilities n'existe pas dans Xcode 8.3, et il n'y a pas de USB Prober dans Applications. Je sais que USB Prober est toujours disponible, mais je n'ai pas encore pu savoir où il se trouve. C'est à l'intérieur d'un package avec d'autres outils.
Mike Crawford
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.