k0b0's record.

Computer Engineering, Arts and Books

openOCDのエラー:LIBUSB_ERROR_ACCESS(on macOS)

LIBUSB_ERROR_ACCESS

 HiFive1を動作させるためにopenOCDをインストールして色々と試してたら”LIBUSB_ERROR_ACCESS”と怒られた。

原因

 調べてみると、macOSではOpenOCDはlibFTDIパッケージ(Homebrewでインストールする)を必要とし、アップル提供のFTDIドライバでは動作しないようだ。それで、USBデバイスを接続すると、FTDIドライバがlibFTDIパッケージを要求し、OpenOCDはうまく動作せずLIBUSB_ERROR_ACCESSが出ると言うわけだ。
(詳細は参考サイトを参照。)

解決方法

 Apple FTDI kext(FTDIドライバ)を無効にすると問題は解決するみたいなので、以下のコマンドよりApple FTDI kextを無効にする。

$ sudo kextunload -p -b com.apple.driver.AppleUSBFTDI
$ sudo kextutil -b com.apple.driver.AppleUSBFTDI -p AppleUSBEFTDI-6010-1

 上記の設定はシステムを再起動させるまで有効である。
もし、設定を元に戻したいのであれば以下のコマンドを実行して元に戻すことも可能。

$ sudo kextload -b com.apple.driver.AppleUSBFTDI