2013-02-27 265 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