2013-06-12 162 views
51

这个问题似乎遍及谷歌,但答案都指向使用系统事件探查器。这很好,但随着系统概述你得到的东西,看起来像这样:是否有相当于OS X的lsusb

  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 

如果你想要的是一堆设备描述符的内容这是伟大的,但lsusb给你这么更多 - 关于接口和端点的信息,接口关联,复合设备...您可以在OS X中找到这些信息?有必须是一个这样做的工具吗?

回答

80

我厌倦了忘记system_profiler SPUSBDataType的语法,所以我做了lsusb的替代方案。你可以找到它here,或用自制的安装:

brew update && brew tap jlhonora/lsusb && brew install lsusb 
+2

不错的脚本!你想添加它作为自制公式?这很方便。 – moritz

+1

@moritz https://github.com/mxcl/homebrew/pull/23803 – jlhonora

+0

这是一个不错的工具,但它仍然只是Linux上lsusb能够帮到你的一小部分。 Linux上的lsusb可以为您提供设备配置描述符的全部内容。没有这些,我担心这个工具大多只是一个漂亮的打印机。 –

7

在Mac OSX上,你可以使用下面的命令:

system_profiler SPUSBDataType 
+0

system_profiler与ioreg具有相同的问题 - 它反映了内核与设备匹配的内核对象的状态,而不是设备本身。我想要的东西基本上会显示设备的完整布局,就像所有配置的所有配置描述符中的内容一样。 –

48

我通常运行此命令可以列出Mac OS X上的USB设备,有关它们的详细信息一起:

ioreg文档是在这里:

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/ioreg.8.html

+0

见我回应@blekenbleu有关[特德·米德尔顿]名为ioreg –

+0

复制评论(https://stackoverflow.com/users/134692):问题是,名为ioreg和IORegistryExplorer表明您已经匹配到设备上的内核对象,而不是设备本身的细节。这意味着除了当前活动的配置之外,您不会看到配置上的接口,并且根本看不到任何端点信息(这是lsusb最有用的输出)。 –

0

至少在10.10.5,system_profiler SPUSBDataType输出不是 当一个新的USB设备被插入, 而ioreg -p IOUSB -l -w 0做动态更新。

+0

问题是ioreg和IORegistryExplorer向您显示已与设备匹配的内核对象,而不是设备本身的细节。这意味着除了当前活动的配置之外,您不会看到配置上的接口,并且根本看不到任何端点信息(这是lsusb最有用的输出)。 –

+0

我想要的是一个能够显示所有设备配置描述符内容的工具。 ioreg不会这样做,lsusb的确如此。 –

+0

我不明白这与[本答案](https://stackoverflow.com/a/29778245/589259)有什么不同? –

5

如果你是一个MacPorts用户,你可以简单地安装usbutils

sudo port install usbutils 

如果你不是,这可能是安装它的好机会,它有其他几个有用的Linux工具端口。

+0

啊 - 好的,在我看到的端口文件“depends_lib port:libusb”中,并且源确实似乎需要libusb。我猜,那会做到。虽然我没有真正使用macports,但我正在酿造。而且我不想为此安装macports,尤其是当lsusb可以很容易地用用户空间iokit重新实现时。 –

+0

这应该是公认的答案。 Howerver,现在这个包,因为它依赖的破'usbids',跟踪它在https://trac.macports.org/ticket/53188 – light2yellow

+0

这似乎已经固定的现在。 –

0

在Mac OS X上,Xcode开发人员套件包含USB Proper.app应用程序。这可以在/ Developer/Applications/Utilities /中找到。 USB Prober将允许您检查设备和接口描述符。