2013-06-12 61 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將允許您檢查設備和接口描述符。