# macOS

`macOS`

### 環境

以下の環境で開発・動作確認しています。

* macOS 10.14 (Mojave, Intel)
* macOS 12.4 (Monterey, Apple Silicon)

### 依存するソフトウェアや警告ダイアログについて

下記の事象が発生した場合には、 TWELITE\_Stage の動作のために、実行の許可やインストールが必要です。

* ツールチェインにはコード署名がなされていますが、コード署名が正しく認証されない場合は、ビルドツールチェイン (ba-elf-gcc など) の実行形式一つずつについて、動作許可を求められる場合があります。
* ダウンロードアーカイブには署名しておりません。実行時には、インターネットからダウンロードされたアプリケーションとしてセキュリティ警告が出る場合があります。
* TWELITE\_Stage をインストールしたパスからの実行許可を要求される場合があります。
* ビルド実行時に make ユーティリティのインストールダイアログが出る場合があります。

#### make ユーティリティの追加インストール

場合によっては、make ユーティリティをインストールしなくてはなりません。

{% hint style="warning" %}
macOSバージョンの違いなどにより、別の手順で行う必要があるかもしれません。
{% endhint %}

コマンドライン (zsh) から make を実行したときに、エラーが出る場合には Command Line Tools をインストールします。

```bash
$ xcode-select --install
```

インストールが完了したら、make を入力して以下のメッセージの出力を確認します。

```bash
$ make
make: *** No targets specified and no makefile found.  Stop.
```

### シリアルポートの取り扱い

MONOSTICK や TWELITE R には、 FTDI社 (<https://www.ftdichip.com>) の USBシリアル変換IC FT232 シリーズを、TWELITE R2 には FT230 シリーズを搭載しています。これらを利用するために、デバイスドライバのインストールが必要となる場合があります。

TWELITE\_Stage を起動してもシリアルポートが表示されない場合は、FTDI社のドライバをアンロード（無効化）してください。

{% hint style="danger" %}
このユーティリティは MONOSTICK や TWELITE-R を挿入した際にOS標準のデバイスドライバのロードを抑制するだけでなく、同じ USB の ID を持つそれ以外のデバイスについてもデバイスドライバのロードを抑制します。
{% endhint %}

<https://www.ftdichip.com/Drivers/D2XX.htm> より D2xxHelper をダウンロードできます。 なお、TWELITE STAGE SDKの TWELITE\_Stage/INSTALL フォルダにも同じものを収録しています。

#### 参考：FTDI社デバイスドライバの手動アンロード

FTDI 関連のドライバをアンロードするには、以下のコマンドを実行します。

```bash
$ sudo kextunload -b com.apple.driver.AppleUSBFTDI
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://stage.twelite.info/install/macos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
