2013-02-27 16 views
6

Szukałem przez wiele godzin bez skutku. Widziałem go wszędzie, gdzie libusb_detach_kernel_driver nie jest obsługiwany na Mac OS X, ale nie byłem w stanie znaleźć łaty lub alternatywy dla niego.Błąd libusb_claim_interface w systemie Mac OS X Mountain Lion

libusb_claim_interface zwraca ten: libusb: 0.863377 error [darwin_claim_interface] USBInterfaceOpen: another process has device opened for exclusive access

Jak mogę odłączyć urządzenie USB z jądrem?

+0

Cześć George! Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? Mam ten sam błąd USBInterfaceOpen w systemie Mac OS X, Mavericks. Bez względu na to, co próbuję, nie mogę odebrać mojego interfejsu urządzenia CDC. –

+0

Niestety nie mam. Jeśli coś wymyślisz, daj nam znać tutaj! –

+0

Najbliższym rozwiązaniem jest ktoś, kto powie mi, żebym napisał swój własny plik sterownika .kext. Możesz również znaleźć pomoc dotyczącą mojego pytania dotyczącego StackOverflow tutaj: http://stackoverflow.com/questions/20253350/unable-to-claim-usb-interface-with-c-libusb-on-mac-os-x Najlepszy sposób jest wypróbowanie trasy komunikacji szeregowej, którą próbuję tutaj: http://www.microchip.com/forums/tm.aspx?high=&m=762247&mpage=1#762269 –

Odpowiedz

2

Wiele urządzeń automatycznie ma podłączony sterownik do urządzenia USB, który jest rozpoznawany przez system OSX i nie będzie można odebrać urządzenia, chyba że zmusisz system do ręcznego odłączenia urządzenia, zanim będzie można uruchomić kod i odebrać urządzenie. Jeśli na przykład jest dołączone urządzenie AppleUSBCDC do jakiejś wyjątkowej urządzenie USB podłączone trzeba by zrobić:

sudo kextunload -b com.apple.driver.AppleUSBCDC 

przed uruchomieniem aplikacji, która próbuje zastrzeżenia interfejs.

+0

W moim przypadku było to 'sudo kextunload -b com.apple.driver.AppleUSBFTDI', które naprawiło problem. Czy istnieje sposób sprawdzenia, który sterownik faktycznie trzyma urządzenie? –