这个问题似乎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
为您提供了 so 更多信息 - 有关接口和端点、接口关联、复合设备的信息...您可以在哪里找到此信息操作系统? 一定有有一个工具可以做到这一点吗?
我厌倦了忘记
system_profiler SPUSBDataType
语法,所以我做了一个 lsusb
替代方案。您可以在here找到它,或者使用自制程序安装它:
brew install lsusb
我通常运行此命令来列出 macOS 上的 USB 设备以及有关它们的详细信息:
ioreg -p IOUSB -l -w 0
Homebrew 用户:您可以通过从我的水龙头安装
lsusb
公式来获得
usbutils
:
brew install usbutils
它安装基于 Linux 源的 REAL
lsusb
(版本 007)。
在 mac osx 中,您可以使用以下命令:
system_profiler SPUSBDataType
我将通过我的帽子尝试这里的答案。
lsusb
脚本几乎无法工作,并且 usbutils
的 macOS 端口不捕获字符串描述符或支持 --tree
。
它引导我创建了 cyme,一个在底层使用
system_profiler -json
的现代跨平台 USB 列表工具。它还使用 libusb
来获取额外数据/跨平台,并在 Linux 上使用 udev
。它支持 --lsusb
兼容模式,几乎匹配 lsusb
所有参数的输出。它应该会让 macOS lsusb
痒痒等等。
ioreg
怎么样?输出比探查器详细得多,但有点密集。
来源:https://lists.macosforge.org/pipermail/macports-users/2008-July/011115.html
至少在 10.10.5 上,
system_profiler SPUSBDataType
输出不是
当插入新的 USB 设备时动态更新,
而 ioreg -p IOUSB -l -w 0
确实如此。
在 Mac OS X 上,Xcode 开发人员套件包括 USB Proper.app 应用程序。 这可以在 /Developer/Applications/Utilities/ 中找到。 USB Prober 将允许您检查设备和接口描述符。
我会推荐 cyme,它是用 Rust 写的。 https://github.com/tuna-f1sh/cyme