M5 STACKをMac 使おうと思ったらget.pyでエラーが出た
環境構築で起きた問題
普段、メインPCTはwin10のデスクトップ、サブのノートPCはMac bookを使用している。
家ではあまりノートPCを触ることがないのだが、ふと思い立ってMacで環境構築を行ったところ思った以上に行き詰まったので備忘録として残しておく。
MacOSでM5Stackを使用している方も多くいるようで、下記の記事を参考にしながら環境構築を進めた。
USBシリアルドライバのインストールは特に問題なく完了。
次に、ESP32 Arduino Coreをインストールしようとしたのだが、ここで盛大に躓いた。
下記のページに記載されている、コマンドをターミナルにコピペし、gitからファイルをダウンロードしようとするとエラーが出る。
エラーの内容は以下のとおり、
MacBook:tools $ python get.py System: Darwin, Info: Darwin-16.7.0-x86_64-i386-64bit Platform: x86_64-apple-darwin Tool xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz already downloaded Extracting xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz Tool esptool-2.3.1-macos.tar.gz already downloaded Extracting esptool-2.3.1-macos.tar.gz Downloading mkspiffs-0.2.3-arduino-esp32-osx.tar Traceback (most recent call last): File "get.py", line 148, in <module> get_tool(tool) File "get.py", line 103, in get_tool urlretrieve(url, local_path, report_progress) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 98, in urlretrieve return opener.retrieve(url, filename, reporthook, data) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 245, in retrieve fp = self.open(url, data) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 213, in open return getattr(self, name)(url) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 443, in open_https h.endheaders(data) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1049, in endheaders self._send_output(message_body) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 893, in _send_output self.send(msg) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 855, in send self.connect() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1274, in connect server_hostname=server_hostname) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 352, in wrap_socket _context=self) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 579, in __init__ self.do_handshake() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 808, in do_handshake self._sslobj.do_handshake() IOError: [Errno socket error] [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590)
CUIアレルギーである私が、頑張って読んでみたところ、どうやらmkspiffs-0.2.3-arduino-esp32-osx.tarというファイルのダウンロードでエラーを吐いている用に見える。
冒頭に貼り付けた記事の方も同様のエラーが発生したらしく、解決方法が記載された下記の記事を紹介している。
どうやらエラーの出ているファイルを単体でgitよりダウンロードし、参照されているフォルダに置けばきちんと実行できるらしい。
ということで早速試してみたのだが、記事のリンクよりダウンロードされるファイルは、バージョンが古い0.2.2のものらしくエラーが出るのは変わらず。
解決方法
ロクにソースも読めない私が、なんとか解決した方法を以下に示す。
まず、ファイルのダウンロードURLであるが、get.py実行時に呼び出されているpackage_esp32_index.template.json内に記載してある。
場所は、下記の通り。
~/Documents/Arduino/hardware/espressif/esp32/package
MacOS向けのダウンロードURLは139行目に記載されている。
"host": "x86_64-apple-darwin", "url": "https://github.com/igrr/mkspiffs/releases/download/0.2.3/mkspiffs-0.2.3-arduino-esp32-osx.tar.gz", "archiveFileName": "mkspiffs-0.2.3-arduino-esp32-osx.tar.gz", "checksum": "SHA-256:9f43fc74a858cf564966b5035322c3e5e61c31a647c5a1d71b388ed6efc48423", "size": "130270"
これよりURLは、
https://github.com/igrr/mkspiffs/releases/download/0.2.3/mkspiffs-0.2.3-arduino-esp32-osx.tar.gz
コピペしたURLをブラウザに貼り付けてファイルをダウンロードする。
ダウンロードしたファイルは下記の場所に置く。
~/Documents/Arduino/hardware/espressif/esp32/tools/dist/
でこれで大丈夫かと思いきや、ダウンロードしたファイルの拡張子は.tar
jsonのコードには、.tar.gzで記載されているので.gzで圧縮する。
cd ~/Documents/Arduino/hardware/espressif/esp32/tools/dist/ &&/ gzip mkspiffs-0.2.3-arduino-esp32-osx.tar
ファイルの拡張子が.tar.gzになっていたらOK。
get.pyがあるフォルダに移動して、再度実行する。
cd ~/Documents/Arduino/hardware/espressif/esp32/tools/ &&/ python get.py
下記のようにDoneになれば成功。
MacBook:tools $ python get.py System: Darwin, Info: Darwin-16.7.0-x86_64-i386-64bit Platform: x86_64-apple-darwin Tool xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz already downloaded Extracting xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz Tool esptool-2.3.1-macos.tar.gz already downloaded Extracting esptool-2.3.1-macos.tar.gz Tool mkspiffs-0.2.3-arduino-esp32-osx.tar.gz already downloaded Extracting mkspiffs-0.2.3-arduino-esp32-osx.tar.gz Renaming mkspiffs-0.2.3-arduino-esp32-osx to mkspiffs Done
あとは、ESP32ライブラリをgit cloneすればArduino IDEから使用できる。
以上
PS.無理矢理な解決方法な気がするので、根本的な解決方法があれば知りたい