¿Existe un equivalente de lsusb para OS X?

95

Esta pregunta parece estar en todo Google, pero todas las respuestas apuntan a usar System Profiler. Eso es bueno, pero con System Profiler todo lo que obtienes es algo que se ve así:

            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

Eso está muy bien si lo que quieres son el contenido de un grupo de descriptores de dispositivo, pero lsusbse da de manera mucho más - información sobre las interfaces y los puntos finales, asociaciones de interfaz, dispositivos compuestos ... ¿dónde se puede encontrar esta información en OS X? ¿ Debe haber una herramienta que haga esto?

Ted Middleton
fuente
Si no le importa, ¿cómo está utilizando información como "interfaces y puntos finales, asociaciones de interfaces, dispositivos compuestos"?
Ben Creasy

Respuestas:

135

Me cansé de olvidar la system_profiler SPUSBDataTypesintaxis, así que hice una lsusbalternativa. Puede encontrarlo aquí o instalarlo con homebrew:

brew install lsusb
jlhonora
fuente
2
¡Buen guión! ¿Le gustaría agregarlo como fórmula casera? Esto sería conveniente.
moritz
1
Es una buena utilidad, pero sigue siendo solo una fracción de lo que lsusb en Linux puede ofrecerte. lsusb en Linux puede brindarle el contenido completo de los descriptores de configuración del dispositivo. Sin eso, me temo que esta herramienta es principalmente una impresora bonita.
Ted Middleton
3
Puede ser limitado, pero hace exactamente lo que necesitaba. Hace que mi entorno de desarrollo sea consistente con solo un ¡ brew installGracias!
aceite de serpiente
2
Es un buen script, pero realmente no debería llamarse "lsusb" considerando lo lsusbque realmente puede hacer: askubuntu.com/a/604169/598643
Mr. Kennedy
1
Uno bueno sería alias lsusb='system_profiler SPUSBDataType'si no le importa demasiado obtener el mismo resultado exacto para lsusb
yerlilbilgin
72

Normalmente ejecuto este comando para listar dispositivos USB en Mac OS X, junto con detalles sobre ellos:

ioreg -p IOUSB -l -w 0
David Grayson
fuente
Vea mi respuesta a @blekenbleu sobre ioreg
Ted Middleton
3
Copia del comentario de Ted Middleton : El problema es que ioreg y IORegistryExplorer le muestran los objetos del kernel que se han emparejado con los dispositivos, no los detalles de los dispositivos en sí. Eso significa que no verá interfaces en configuraciones distintas de la activa actualmente, y no verá ninguna información de punto final (que es la salida más útil de lsusb).
Maarten Bodewes
1
Parece que las páginas de manual se han eliminado. Los suplentes (a partir de mayo de 2019) son: unix.com/man-page/mojave/8/ioreg y manpagez.com/man/8/ioreg
rdadolf
26

Usuarios de Homebrew: pueden obtener lsusbinstalando la usbutilsfórmula de mi grifo:

brew install mikhailai/misc/usbutils

Instala el REAL lsusbbasado en fuentes Linux (versión 007).

Mikhail Iakhiaev
fuente
1
Finalmente, el verdadero negocio. Puedo confirmar que este funciona en OX 10.13.6.
Guido
3
Gracias, esta es una solución mucho mejor, no disponible en el momento en que desarrollé el lsusbscript.
jlhonora
2
Gracias, @jlhonora. La ironía es que los chicos de Homebrew decidieron agregar su lsusbscript a homebrew-core, en lugar de my usbutils.
Mikhail Iakhiaev
1
Siempre puedes enviarles un PR.
jlhonora
9

En mac osx, puede usar el siguiente comando:

system_profiler SPUSBDataType
QJGui
fuente
system_profiler tiene el mismo problema que ioreg: refleja el estado de los objetos del kernel que el kernel ha hecho coincidir con los dispositivos, no con los dispositivos en sí. Quiero algo que básicamente muestre el diseño completo del dispositivo, como en todos los descriptores de configuración de todas las configuraciones.
Ted Middleton
6

Si es usuario de MacPorts , simplemente puede instalar usbutils

sudo port install usbutils

Si no es así, esta podría ser una buena oportunidad para instalarlo, tiene puertos para varias otras herramientas útiles de Linux.

Thiago
fuente
Ah - está bien, en el archivo de puerto veo, "depende_lib puerto: libusb", y la fuente de hecho parece requerir libusb. Eso sería suficiente, supongo. Sin embargo, realmente no uso macports, estoy en brebaje. Y odiaría tener que instalar macports solo para esto, especialmente cuando lsusb podría reimplementarse con el espacio de usuario iokit tan fácilmente.
Ted Middleton
Esta debería ser la respuesta aceptada. Howerver, en este momento este paquete está roto debido a su dependencia usbids, rastree a
Eso parece haber sido arreglado por ahora.
Maarten Bodewes
4

¿Qué tal ioreg? La salida es mucho más detallada que la del generador de perfiles, pero es un poco densa.

Fuente: https://lists.macosforge.org/pipermail/macports-users/2008-July/011115.html

lhagan
fuente
Vea mi respuesta a @blekenbleu. lsusb tiene mucha más información que ioreg / IORegistryExplorer, o cualquier otro programa como system_profiler que simplemente recorre el registro de iokit.
Ted Middleton
2
system_profiler SPUSBDataType

es su comando de necesidad en macos

xds2000
fuente
0

Al menos en 10.10.5, la system_profiler SPUSBDataTypesalida NO se actualiza dinámicamente cuando se conecta un nuevo dispositivo USB, mientras que lo ioreg -p IOUSB -l -w 0hace.

Blekenbleu
fuente
El problema es que ioreg e IORegistryExplorer le muestran los objetos del kernel que se han emparejado con los dispositivos, no los detalles de los dispositivos en sí. Eso significa que no verá interfaces en configuraciones distintas de la activa actualmente, y no verá ninguna información de punto final (que es la salida más útil de lsusb).
Ted Middleton
Lo que me gustaría es una herramienta que mostrara el contenido de todos los descriptores de configuración de un dispositivo. ioreg no hará esto, lsusb lo hace.
Ted Middleton
No veo en qué se diferencia de esta respuesta .
Maarten Bodewes
0

En Mac OS X, el paquete de desarrolladores Xcode incluye la aplicación USB Proper.app. Esto se encuentra en / Developer / Applications / Utilities /. USB Prober le permitirá examinar el dispositivo y los descriptores de interfaz.

RayM
fuente
Xcode.app/Contents/Applications/Utilities no existe en Xcode 8.3 y no hay Prober USB en Aplicaciones. Sé que USB Prober todavía está disponible, pero aún no he podido averiguar dónde está. Está dentro de un paquete con algunas otras herramientas.
Mike Crawford