libusb_claim_interface не работает в Mac OS X Mountain Lion

Я искал часы безрезультатно. Я везде видел, что 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-устройство от ядра?


person George Morgan    schedule 27.02.2013    source источник
comment
Привет, Джордж! Вы когда-нибудь находили для этого решение? У меня такая же ошибка USBInterfaceOpen в Mac OS X, Mavericks. Что бы я ни пытался, я не могу потребовать интерфейс своего устройства CDC.   -  person josef.van.niekerk    schedule 28.11.2013
comment
К сожалению, нет. Если вы что-то выяснили, дайте нам знать здесь!   -  person George Morgan    schedule 29.11.2013
comment
Самое близкое решение, которое я получил, - это кто-то, кто сказал мне написать собственный файл драйвера .kext. Кроме того, вы можете найти помощь по моему вопросу о StackOverflow здесь: stackoverflow.com/questions/20253350/ Лучший способ - попробовать последовательный маршрут связи, который я пробую здесь : microchip.com/forums/   -  person josef.van.niekerk    schedule 29.11.2013
comment
Да, именно это я и сделал. Если вы напишете это kext, дайте мне знать. Если вам понадобится помощь, возможно, мы сможем что-нибудь придумать.   -  person George Morgan    schedule 30.11.2013


Ответы (1)


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

sudo kextunload -b com.apple.driver.AppleUSBCDC

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

person ckolivas    schedule 29.04.2015
comment
В моем случае проблема была решена sudo kextunload -b com.apple.driver.AppleUSBFTDI. Есть ли способ узнать, какой драйвер на самом деле держит устройство? - person Ákos Vandra; 19.09.2015
comment
Я играю с arduino nano и хотел поговорить с usb через эмулятор Android на моем Mac. Получил ту же ошибку и обнаружил, что ОС подключила nano как устройство FTDI, поэтому: sudo kextunload -b com.apple.driver.AppleUSBFTDI работал у меня. - person Eurospoofer; 19.03.2018
comment
Для macOS Mojave: sudo kextunload -b com.apple.driver.usb.cdc.acm - person Gamadril; 18.12.2018
comment
Ни одно из вышеперечисленных расширений не было обнаружено в Mojave 10.14.6 (18G87). - person VadimFilin; 12.03.2020
comment
Это один из трех методов, обсуждаемых сейчас в документах libusb: - person Matt; 04.05.2020