■必要なソフトのインストール
・Xcode, gcc command line tool
AppStore経由でXcodeのインストール
command line toolはXcodeのメニューからインストール
・Homebrew
http://brew.sh/index_ja.html
上記サイトを見ながらhomebrewをインストールする
・OpenOCD
ターミナルから brew install openocd
で依存関係まで含めてインストールされる
■Kernel Extension設定変更
BeagleBone搭載のデバッガはTI XDS100v2
これはMacに接続するとUSBデバイス FT2232(vendor id: 0x403, product id: 0x6010)と認識される
macOS SierraにはFTDIのドライバが標準で入っているらしく接続すると以下4つのTTYデバイスが/dev に作成される
cu.usbserial-TIWD9YJWA
cu.usbserial-TIWD9YJWB
tty.usbserial-TIWD9YJWA
tty.usbserial-TIWD9YJWB
ただ、この状態だとOpenOCDが接続できない。
OpenOCDはlibftdi->libusb経由でUSB interface0のXDS100v2に接続しようとするが既にTIWD9YJWAというTTYデバイスとして使用してしまっているからである。
そこでmacOS Sierraの標準FTDIドライバがinterface0にドライバを適用しないようにする
/System/Library/Extensions/AppleUSBFTDI.kext/Contents/Info.plist の以下の部分を削除する
<key>AppleUSBEFTDI-6010-0</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBFTDI</string>
<key>IOClass</key>
<string>AppleUSBFTDI</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>InputBuffers</key>
<integer>8</integer>
<key>OutputBuffers</key>
<integer>16</integer>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>idProduct</key>
<integer>24592</integer>
<key>idVendor</key>
<integer>1027</integer>
</dict>
削除する前に一応 cp Info.plist Info.plist.org とでもしてバックアップを取っておくと良い
ちなみに/System/以下のファイルはSIPを無効にしないとchmodで書き込み権限を付与しても編集できない。
SIPを無効にするにはcommand+Rを押しながら起動または再起動してリカバリーモードから行う
リカバリーモードで起動したらメニューから[ユティリティ]-[ターミナル]を選択し、ターミナルからcsruti disableとする
Info.plist の編集が終わったら再びリカバリーモードから csrutil enableとして保護機能を有効化するのを忘れずに。
■OpenOCD起動
AppleUSBFTDIのInfo.plistを編集した後に再起動するか、モジュールのunload, loadをするとinterface0のTIWD9YJWAが作成されなくなる。
この状態でOpenOCDが接続可能となる
openocd -f board/ti_beaglebone.cfg
で接続することができる。さらに
screen /dev/tty.usbserial-TIWD9YJWB 115200
とすることでinterface1はシリアルUARTでデバイスと通信が可能である。