M5StickC Plus に書き込む際に esptool.py no such file or directory というエラーが発生した
Arduino IDE を使って M5StickC Plus にスケッチを書き込もうとしたら、良く分からないエラーが発生した。
rm -rf ~/Library/Arduino15/packages/m5stack/
で Boards Manager から M5Stack を削除して入れ直したら別のエラーが発生したので、対応したことをメモ。
fork/exec /Users/username/Library/Arduino15/packages/m5stack/tools/esptool_py/3.0.0/esptool.py: no such file or directory
Error compiling for board M5Stick-C-Plus.
環境
- macOS BigSur 11.5.2 (20G95)
- Arduino IDE 1.8.15
- Boards Manager: M5Stack 1.0.9
- M5StickC Plus
やったこと
エディタで ~/Library/Arduino15/packages/m5stack/hardware/esp32/1.0.9/platform.txt
を開いて esptool
のコマンド名を変更する。
- tools.esptool_py.cmd=esptool.py
- tools.esptool_py.cmd.linux=esptool.py
- tools.esptool_py.cmd.windows=esptool.exe
+ tools.esptool_py.cmd=esptool
+ tools.esptool_py.cmd.linux=esptool
+ tools.esptool_py.cmd.windows=esptool
macOS なら tools.esptool_py.cmd
だけ編集すればいいと思う。
エラーメッセージのパス ~/Library/Arduino15/packages/m5stack/tools/esptool_py/3.0.0
を確認すると、esptool.py
ではなく esptool
というバイナリが置かれている。
% ls ~/Library/Arduino15/packages/m5stack/tools/esptool_py/3.0.0
esptool*
とりあえず動くようにはなったものの、なぜコマンド名の設定と実際のファイル名がズレているのかが分からない...
また、冒頭で書いた「良く分からないエラー」は java.io.IOException: Cannot run program "___REMOVE___/esptool": error=2, No such file or directory
というもので、いつも通り書き込もうとしたタイミングでいきなり発生したものだった。「何もしていないのに壊れた」というやつ。