OS X是否有等同于lsusb的文件


96

这个问题似乎遍及整个Google,但答案都指向使用System Profiler。很好,但是使用System Profiler,您所获得的只是以下内容:

            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此信息接口和终端,接口协会,复合设备的信息......?有必须是一个工具,做这个?


如果您不介意,您将如何使用“接口和端点,接口关联,复合设备”之类的信息?
Ben Creasy

Answers:


136

我已经厌倦了忘记system_profiler SPUSBDataType语法,因此我lsusb选择了替代方法。您可以在这里找到它,或使用自制软件安装它:

brew install lsusb

2
不错的脚本!您想将其添加为自制配方吗?这样会很方便。
moritz 2013年

1
这是一个不错的实用程序,但是它仍然只是linux上的lsusb可以帮助您的一小部分。linux上的lsusb可以为您提供设备配置描述符的全部内容。没有这个,恐怕这个工具只是一个漂亮的打印机。
特德·米德尔顿

3
可能有限,但它确实满足了我的需求。使我的开发环境与“ brew install谢谢” 保持一致!!
snakeoil '16

2
那是一个不错的脚本,但考虑到lsusb实际可以做的事情,它实际上不应被称为“ lsusb” :askubuntu.com/a/604169/598643
肯尼迪先生

1
一个整洁的方法是,alias lsusb='system_profiler SPUSBDataType'如果您不太在乎lsusb的获得完全相同的结果
yerlilbilgin

73

我通常会运行以下命令来列出Mac OS X上的USB设备以及有关它们的详细信息:

ioreg -p IOUSB -l -w 0

见我约名为ioreg @blekenbleu响应
泰德·米德尔顿

3
Ted Middleton的评论副本:问题是ioreg和IORegistryExplorer向您显示了已与设备匹配的内核对象,而不是设备本身的详细信息。这意味着除了当前处于活动状态的配置之外,您将看不到其他配置上的接口,也根本看不到任何终结点信息(这是lsusb最有用的输出)。
Maarten Bodewes,

1
联机帮助页似乎已被删除。备用(截至2019年5月)是:unix.com/man-page/mojave/8/ioregmanpagez.com/man/8/ioreg
rdadolf

26

自制用户:您可以lsusb通过以下方法安装usbutils公式:

brew install mikhailai/misc/usbutils

lsusb基于Linux源(版本007)安装REAL 。


1
最后,真正的交易。我可以确认这一版本适用于OX 10.13.6。
Guido

3
谢谢,这是一个更好的解决方案,在我开发lsusb脚本时不可用。
jlhonora

2
谢谢,@ jlhonora。具有讽刺意味的是,自制的家伙决定添加您的lsusb脚本homebrew-core,而不是我的usbutils
米哈伊尔·伊亚希耶夫

1
您可以随时向他们发送PR。
jlhonora


9

在mac osx中,可以使用以下命令:

system_profiler SPUSBDataType

system_profiler与ioreg有相同的问题-它反映了内核已与设备(而不是设备本身)匹配的内核对象的状态。我想要的东西基本上可以显示设备的完整布局,就像所有配置的所有配置描述符中的内容一样。
特德·米德尔顿

6

如果您是MacPorts的用户,则只需安装usbutils

sudo port install usbutils

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


嗯-好的,在端口文件中,我看到的是“ depends_lib port:libusb”,而源代码确实确实需要libusb。我想那会做到的。不过,我实际上并不使用macports-我正在酝酿中。而且我不想为此而安装macports,尤其是当lsusb可以很容易地用iokit用户空间重新实现时。
泰德·米德尔顿

这应该是公认的答案。但是,由于该软件包的依赖性usbids,该软件包现在已损坏,请通过trac.macports.org/ticket/53188进行

到目前为止,这似乎已经解决。
Maarten Bodewes


2
system_profiler SPUSBDataType

它是您在macOS上需要的命令


0

至少在10.10.5上,system_profiler SPUSBDataType插入新USB设备时不会动态更新输出,而在插入新USB设备时不会动态更新输出ioreg -p IOUSB -l -w 0


问题是ioreg和IORegistryExplorer向您显示已与设备匹配的内核对象,而不是设备本身的详细信息。这意味着除了当前处于活动状态的配置之外,您将看不到其他配置上的接口,也根本看不到任何终结点信息(这是lsusb最有用的输出)。
特德·米德尔顿

我想要的是一个可以显示设备所有配置描述符内容的工具。ioreg不会这样做,而lsusb会这样做。
特德·米德尔顿

我看不出这个答案有什么不同吗?
Maarten Bodewes

0

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


Xcode 8.3中不存在Xcode.app/Contents/Applications/Utilities,并且Applications中没有USB Prober。我确实知道USB Prober仍然可用,但是我还无法找到它的位置。它位于带有其他工具的包装内。
Mike Crawford
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.