2020/11/14

macOS Big Sur + Arduino IDE + M5Stack


macOS Big Sur 入れたら案の定ビルドが出来なくなった〜〜。

買ったばかりの CoreInk だからダメなのかと思ったら M5Stack もダメでした。

調べてみるとしばらく前から Big Sur で esptool.py が動かないという報告と色々な対処が。

一番筋が良さそうな方法があったので試したらうまく行ったのでメモしておきます。


注)公式でもサポートしそうな雰囲気があります。まず ~/Library/Arduino15 以下を削除するとかして、Arduino IDE 環境をクリーンインストールしてみて、それでもダメだったら試してみてください。


スイッチサイエンスさんでも、M1 + Big Sur での対処法書かれてますね。こちらも参考にしてみては(2020/12/21)。
https://mag.switch-science.com/2020/12/21/macos-espr-developer/


さて、私が対処したとき参考になったのは、

https://github.com/pyserial/pyserial/issues/509

の Eliahg さんの A better fix ... とコメントしている投稿

やってることは Python を最新のものでビルドしなおして、esptool.py を Git から拾ってきて(多分 Python3 版)、esptool バイナリをスクリプト版に入れ替えです。スクリプトの名前変えて、実行属性つけて、呼び出す Python を Python3 にしてます。

Python にはバグがあるらしいのですが、Python のリポジトリではすでに Apple によってバグフィックスされてるのですが、Big Sur には反映されていないらしいので Python のビルドしなおしが必要だそうです。ビルドはそこそこ時間かかります。


基本的には Eliahg さんのやってることそのままなのですが、自分の環境だと esptool の場所が違うので、そこを変えたぐらい。

実際に実行したコマンドを書いておきます。esptool のパスはそれぞれ若干違うかも。最新のにしたら 3.0.0 でした (11/28/'20)。

% sudo rm -rf /Library/Developer/CommandLineTools

% sudo xcode-select --install

% brew install --build-from-source python

% /usr/local/bin/pip3 install pyserial

esptool.py を以下からダウンロードする https://github.com/espressif/esptool/blob/master/esptool.py

% mv ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool.old

% mv ~/Download/esptool.py  ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool

% chmod +x ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool

エディタで esptool の先頭を修正 #!/usr/bin/env python を #!/usr/local/bin/python3 

% vi ~/Library/Arduino15/packages/m5stack/tools/esptool_py/2.6.1/esptool


以上です。


ちなみに PlatformIO も同じように対処できて、

~/.platformio/packages/tool-esptoolpy@1.20600.0/esptool.py

を上記スクリプトに置き換えれば OK でした。

0 件のコメント: