2013-02-27 6 views
6

Я искал часы безрезультатно. Я видел это повсюду, что libusb_detach_kernel_driver не поддерживается в Mac OS X, но я не смог найти патч или альтернативу для него.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

Привет, Джордж! Вы когда-нибудь находили решение для этого? У меня такая же ошибка USBInterfaceOpen на Mac OS X, Mavericks. Независимо от того, что я пытаюсь, я не могу претендовать на свой интерфейс устройства CDC. –

+0

К сожалению, я этого не сделал. Если вы что-то придумаете, сообщите нам об этом! –

+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 –

ответ

2

У многих устройств автоматически есть драйвер, подключенный к USB-устройству, которые они распознают по OSX, и вы не сможете требовать устройство, если вы не заставите систему вручную отсоединить устройство, прежде чем вы сможете запустить свой код и потребовать устройство. Если, например, он прикрепил устройство AppleUSBCDC к некоторым уникальным USB устройства, которое вы подключены вы должны сделать:

sudo kextunload -b com.apple.driver.AppleUSBCDC 

перед запуском приложения, которое пытается претендовать на интерфейс.

+0

В моем случае это была 'sudo kextunload -b com.apple.driver.AppleUSBFTDI', которая исправила проблему. Есть ли способ узнать, какой драйвер на самом деле удерживает устройство? –