libusb_claim_interface 在 Mac OS X Mountain Lion 上失败
Posted
技术标签:
【中文标题】libusb_claim_interface 在 Mac OS X Mountain Lion 上失败【英文标题】:libusb_claim_interface fails on Mac OS X Mountain Lion 【发布时间】:2013-02-12 16:11:05 【问题描述】:我已经搜索了几个小时没有结果。我到处都看到libusb_detach_kernel_driver
在 Mac OS X 上不受支持,但我找不到补丁或替代方案。
libusb_claim_interface
返回:libusb: 0.863377 error [darwin_claim_interface] USBInterfaceOpen: another process has device opened for exclusive access
如何从内核中分离 USB 设备?
【问题讨论】:
嗨,乔治!你有没有找到解决方案?我在 Mac OS X,Mavericks 上遇到了同样的 USBInterfaceOpen 错误。无论我尝试什么,我都无法认领我的 CDC 设备接口。 不幸的是我没有。如果您发现了什么,请在这里告诉我们! 我得到的最接近的解决方案是有人告诉我编写自己的 .kext 驱动程序文件。此外,您可能会在这里找到有关我的 *** 问题的一些帮助:***.com/questions/20253350/… 最好的方法是尝试串行通信路由,我正在这里尝试:microchip.com/forums/… 是的,这正是我最终所做的。如果你写了kext
,请告诉我。如果你需要一些帮助,也许我们可以想办法。
【参考方案1】:
许多设备会自动将驱动程序附加到它们被 OSX 识别为的 USB 设备,除非您强制系统手动分离设备,然后才能运行代码并声明设备,否则您将无法声明该设备.例如,如果它将 AppleUSBCDC 设备连接到您插入的某个独特的 USB 设备上,您必须这样做:
sudo kextunload -b com.apple.driver.AppleUSBCDC
在运行尝试声明接口的应用程序之前。
【讨论】:
就我而言,是sudo kextunload -b com.apple.driver.AppleUSBFTDI
解决了这个问题。有什么方法可以知道哪个驱动程序实际持有该设备?
我正在使用 arduino nano 并想通过我的 mac 上的 android 模拟器与 USB 通话。遇到了同样的错误,发现操作系统已将 nano 附加为 FTDI 设备,所以: sudo kextunload -b com.apple.driver.AppleUSBFTDI 为我工作。
对于 macOS Mojave:sudo kextunload -b com.apple.driver.usb.cdc.acm
在 Mojave 10.14.6 (18G87) 上没有找到上述扩展
这是现在 libusb 文档中讨论的三种方法之一:github.com/libusb/libusb/wiki/…以上是关于libusb_claim_interface 在 Mac OS X Mountain Lion 上失败的主要内容,如果未能解决你的问题,请参考以下文章
NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记