Esiste un equivalente di lsusb per OS X


96

Questa domanda sembra essere dappertutto su Google, ma tutte le risposte indicano l'utilizzo di System Profiler. È carino, ma con System Profiler tutto ciò che ottieni è qualcosa che assomiglia a questo:

            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

Che bello se tutto quello che volete sono i contenuti di un gruppo di descrittori di periferica, ma lsusbti dà così molto di più - informazioni sulle interfacce ed endpoint, associazioni di interfaccia, dispositivi compositi ... dove si possono trovare queste informazioni in OS X? Ci deve essere uno strumento che fa questo?


Se non ti dispiace, come stai utilizzando informazioni come "interfacce ed endpoint, associazioni di interfacce, dispositivi compositi"?
Ben Creasy

Risposte:


136

Mi sono stancato di dimenticare la system_profiler SPUSBDataTypesintassi, quindi ho fatto lsusbun'alternativa. Puoi trovarlo qui o installarlo con homebrew:

brew install lsusb

2
Bella sceneggiatura! Vorresti aggiungerlo come formula homebrew? Sarebbe conveniente.
moritz

1
Questa è una bella utility, ma è ancora solo una frazione di ciò che lsusb su Linux può darti. lsusb su linux può darti il ​​contenuto completo dei descrittori di configurazione del dispositivo. Senza questo, temo che questo strumento sia per lo più solo una bella stampante.
Ted Middleton

3
Può essere limitato, ma fa esattamente ciò di cui avevo bisogno. Rende il mio ambiente di sviluppo coerente con un semplice brew installgrazie !!
olio di serpente

2
È un bel copione, ma in realtà non dovrebbe essere chiamato "lsusb" considerando cosa lsusbpuò effettivamente fare: askubuntu.com/a/604169/598643
Mr. Kennedy,

1
Uno accurato sarebbe alias lsusb='system_profiler SPUSBDataType'se non ti importasse troppo di ottenere lo stesso identico risultato per lsusb
yerlilbilgin

73

In genere eseguo questo comando per elencare i dispositivi USB su Mac OS X, insieme ai dettagli su di essi:

ioreg -p IOUSB -l -w 0

Vedi la mia risposta a @blekenbleu su ioreg
Ted Middleton

3
Copia del commento di Ted Middleton : Il problema è che ioreg e IORegistryExplorer mostrano gli oggetti del kernel che sono stati abbinati ai dispositivi, non i dettagli dei dispositivi stessi. Ciò significa che non vedrai interfacce su configurazioni diverse da quella attualmente attiva e non vedrai alcuna informazione sull'endpoint (che è l'output più utile di lsusb).
Maarten Bodewes

1
Le manpage sembrano essere state rimosse. Le alternative (a partire da maggio 2019) sono: unix.com/man-page/mojave/8/ioreg e manpagez.com/man/8/ioreg
rdadolf

26

Utenti homebrew: puoi ottenere lsusbinstallando la usbutilsformula dal mio rubinetto:

brew install mikhailai/misc/usbutils

Installa il REAL lsusbbasato su sorgenti Linux (versione 007).


1
Infine, il vero affare. Posso confermare che questo funziona su OX 10.13.6.
Guido

3
Grazie, questa è una soluzione molto migliore, non disponibile al momento in cui ho sviluppato lo lsusbscript.
jlhonora

2
Grazie, @jlhonora. L'ironia è che i ragazzi di Homebrew hanno deciso di aggiungere il tuo lsusbscript homebrew-core, invece del mio usbutils.
Mikhail Iakhiaev

1
Puoi sempre inviare loro un PR.
jlhonora


9

In mac osx, puoi usare il seguente comando:

system_profiler SPUSBDataType

system_profiler ha lo stesso problema di ioreg: riflette lo stato degli oggetti del kernel che il kernel ha abbinato ai dispositivi, non i dispositivi stessi. Voglio qualcosa che fondamentalmente mostri il layout completo del dispositivo, come in tutti i descrittori di configurazione di tutte le configurazioni.
Ted Middleton

6

Se sei un utente di MacPorts , puoi semplicemente installare usbutils

sudo port install usbutils

Se non lo sei, questa potrebbe essere una buona opportunità per installarlo, ha i port per molti altri utili strumenti di Linux.


Ah - ok, nel file del port vedo, "depend_lib port: libusb", e il sorgente sembra davvero richiedere libusb. Questo lo farebbe, immagino. Non uso davvero i macport, però - sono sulla birra. E non vorrei dover installare macports solo per questo, specialmente quando lsusb potrebbe essere reimplementato con lo spazio utente iokit così facilmente.
Ted Middleton

Questa dovrebbe essere la risposta accettata. Tuttavia, in questo momento questo pacchetto è danneggiato a causa della sua dipendenza usbids, seguilo

Sembra che ormai sia stato risolto.
Maarten Bodewes


2
system_profiler SPUSBDataType

è il tuo comando necessario su macos


0

Almeno il 10.10.5, l' system_profiler SPUSBDataTypeoutput NON viene aggiornato dinamicamente quando viene collegato un nuovo dispositivo USB, mentre lo ioreg -p IOUSB -l -w 0fa.


Il problema è che ioreg e IORegistryExplorer mostrano gli oggetti del kernel che sono stati abbinati ai dispositivi, non i dettagli dei dispositivi stessi. Ciò significa che non vedrai interfacce su configurazioni diverse da quella attualmente attiva e non vedrai alcuna informazione sull'endpoint (che è l'output più utile di lsusb).
Ted Middleton

Quello che vorrei è uno strumento che mostri il contenuto di tutti i descrittori delle configurazioni di un dispositivo. ioreg non lo farà, lsusb lo farà.
Ted Middleton

Non vedo come questo sia diverso da questa risposta ?
Maarten Bodewes

0

Su Mac OS X, la suite per sviluppatori Xcode include l'applicazione USB Proper.app. Si trova in / Developer / Applications / Utilities /. USB Prober ti consentirà di esaminare i descrittori del dispositivo e dell'interfaccia.


Xcode.app/Contents/Applications/Utilities non esiste in Xcode 8.3 e non c'è USB Prober nelle applicazioni. So che USB Prober è ancora disponibile ma non sono ancora riuscito a scoprire dove si trova. È all'interno di un pacchetto con alcuni altri strumenti.
Mike Crawford
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.