2013-02-27 259 views
6

我已經搜索了幾個小時,但無濟於事。我在任何地方看到過,在Mac OS X上不支持libusb_detach_kernel_driver,但我一直無法找到它的補丁或替代品。libusb_claim_interface在Mac OS X上失敗Mountain Lion

libusb_claim_interface返回此:libusb: 0.863377 error [darwin_claim_interface] USBInterfaceOpen: another process has device opened for exclusive access

我怎樣才能取下USB設備從內核?

+0

嗨,喬治!你有沒有找到這個解決方案?我在Mac OS X Mavericks上遇到了相同的USBInterfaceOpen錯誤。無論我嘗試什麼,我都無法聲明我的CDC設備的界面。 – 2013-11-27 21:11:06

+0

不幸的是我沒有。如果你想知道什麼,請在這裏告訴我們! – 2013-11-28 22:00:36

+0

我得到的最接近的解決方案是有人告訴我寫我自己的.kext驅動程序文件。此外,您可能會在我的StackOverflow問題找到一些幫助:http://stackoverflow.com/questions/20253350/unable-to-claim-usb-interface-with-c-libusb-on-mac-os-x最佳途徑是嘗試串行通信路由,我試着在這裏:http://www.microchip.com/forums/tm.aspx?high=&m=762247&mpage=1#762269 – 2013-11-29 05:23:42

回答

2

許多設備會自動將驅動程序附加到USB設備上,並被OSX識別,您將無法聲明設備,除非您強制系統在手動分離設備之後才能運行代碼並聲明設備。舉例來說,如果它附着在AppleUSBCDC設備到一些獨特的USB設備插入你在你不得不做的事:

sudo kextunload -b com.apple.driver.AppleUSBCDC 

運行應用程序,其試圖要求該接口前。

+0

在我的情況下,它是解決問題的'sudo kextunload -b com.apple.driver.AppleUSBFTDI'。有什麼方法可以知道哪個驅動程序實際上持有該設備? – 2015-09-19 06:21:11