本日Arduino IDEのボードマネージャを開いたら、ESP32のボードライブラリが消えてしまい、コンパイルできなくなってしまいました。
現在は復旧しています。
原因、対策をメモとして残しておきます。
ライブラリの実体は存在するが、IDEが認識できなくなる
arduino-esp32の安定版が更新されて1.0.3になったという情報を見つけたので「ほほぅ…」とか思ってボードマネージャを開いたのが今日(2019年9月26日)の午前11時ごろです。
いつもなら「インデックスを読み込んでいます……」的なメッセージが出てさっとボード一覧が現れるのですが、今日はなかなか現れず、現れたかと思ったら一覧からESP32が無くなっていました。
もちろん、コンパイルするボードを選ぶ一覧の中にもありません。
コンパイルできんやん……(;´Д`)
ボードマネージャからインストールしたライブラリはデフォルトでは、C:\Users\[UserName]\AppData\Local\Arduino15以下に置かれます。
そちらのファイルは普通に存在していましたから、消し飛んでしまった訳ではなく、Arduino IDEから認識できなくなったようです。
原因はdl.espressif.comのSSL認証切れ
原因を調べてみたところ、dl.espressif.comのSSLサーバー認証が切れていたことが分かりました。
どうやら9月24日から繋がらなくなっていたようです。
参考:https://github.com/espressif/arduino-esp32/issues/2251
Arduino IDEのボードマネージャが開かれた際に、追加のボードマネージャに設定されたアドレスにアクセスし、もしもタイムアウトしたらそんなライブラリは無かったことにする、という仕様なんでしょうねたぶん。
でもそれだと例えば会社が破綻してサーバーが無くなったりした場合、誰かが代わりにファイルを配布しない限り、そのボードはコンパイルできなくなってしまうことを意味しますし、今回のようにSSL認証切れでもコンパイルできなくなってしまいます。
ちょっとこの仕様は変えて頂きたいなぁ~
昔のセットアップ方法も使えません
ESP32のライブラリがボードマネージャからインストールできるようになったのは確か2018年の夏ごろだったと思います。
それ以前はGithubからリポジトリをcloneしてきてget.exeなるファイルを実行してインストールする、という手順でした。
SSLが切れてる間の一時しのぎとしてその昔の方法は使えないかなと試してみました。
結果は、失敗。ダメです使えません。
ファイルを覗いてみると以下のように、dl.espressif.comからフィアルをダウンロードすることになっていました。
そりゃ当然だめだわ(´-ω-`)
{ "host": "i686-mingw32", "url": "https://dl.espressif.com/dl/xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip", "archiveFileName": "xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip", "checksum": "SHA-256:f217fccbeaaa8c92db239036e0d6202458de4488b954a3a38f35ac2ec48058a4", "size": "125719261" },
PCの日付を戻したらいけるらしい
ちなみにさっきのissueの中に、
“Change the date of your computer to Sept 23 or before. Then go to Arduino IDE board manager. The download should be OK. Then you can install ESP32 now.
DO not forget to change the date back to correct date.”
という記述がありました。
「PCの日付設定を9月23日より前に戻してね。そしたらインストールできるよ。インストールした後は時計を戻すのを忘れないように。」とのことです。
いやー、いけちゃうんですねそれで……なんとなく納得いかない。
私は試してないので誰かやってみてください。
26日18時現在は復旧済み、次回は12月23日頃?
で、あれもだめ、これもだめかーってやってる間にSSL復活したようです。
現在はあっさり普通にインストールできます。
最新版1.0.3ももちろん使えます。
なんか無駄に時間を食われた気が……。
ちなみにこの問題、過去にも起こっているようです。
どうやら使ってるSSL認証の期限が90日みたいですね。
短い気もしますがどーなんでしょ?
という訳で次回は12月23日頃にSSL認証切れになることが予想されます。
espressifの中の人がちゃんと更新してくれることを祈りつつ、クリスマス付近にはボードマネージャを開かないようにしましょう。
おわり
コメント