ESP8266のtoolchainを簡単に入手する方法

近頃、このようなものを作って遊んでいる。

CT-iISRUsAAUIxW

ひっくり返って見えないが、右側のドーターボードの下には、ESP-WROOM-02が載っている。

左のドーターボードはUSBシリアル、その下にリセットスイットとLチカ用LEDがあって、お手軽なESP8266開発ボードだ。これはフリスクケースにちゃんと納まる。

VsoAhaWi

こんな感じに。向こうにあるボードはGroveのコネクタ用のインターフェイスボード。

まぁ、実のところ、今お仕事でやっていることを、ESP8266で出来ないかなぁと思っていじり始めた。仕事の方は、MarvellのWiFi入りモジュールで中身はCoretex M3なんだが、だいたい似たような感じのモジュールなんだな。

ネットで見ると、ESP8266はArduinoで動かしている例が多くて、なかなかnative SDKの例が少ない。と言うか、まずtoolchainをちゃんと動かすまでが一苦労だ。gccとか簡単に何とかなるんだが、g++がうまく通ってくれなかったり。

いろいろ試しては失敗し… を繰り返していたのだけど、とても簡単に入手する方法を発見した。それは、

Arduinoからパクる

という、ごく簡単なこと。

まず、ESP8266のボード情報を入手する。

Arduino core for ESP8266 WiFi chip

このページの中程にボード情報がある。

http://arduino.esp8266.com/stable/package_esp8266com_index.json

これをgetすると、

{
"name":"xtensa-lx106-elf-gcc",
"version":"1.20.0-26-gb404fb9",
"systems": [
{
"host":"i686-mingw32",
"url":"http://arduino.esp8266.com/win32-xtensa-lx106-elf-gb404fb9.tar.gz",
"archiveFileName":"win32-xtensa-lx106-elf-gb404fb9.tar.gz",
"checksum":"SHA-256:1561ec85cc58cab35cc48bfdb0d0087809f89c043112a2c36b54251a13bf781f",
"size":"153807368"
},
{
"host":"x86_64-apple-darwin",
"url":"http://arduino.esp8266.com/osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
"archiveFileName":"osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
"checksum":"SHA-256:0cf150193997bd1355e0f49d3d49711730035257bc1aee1eaaad619e56b9e4e6",
"size":"35385382"
},
{
"host":"i386-apple-darwin",
"url":"http://arduino.esp8266.com/osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
"archiveFileName":"osx-xtensa-lx106-elf-gb404fb9-2.tar.gz",
"checksum":"SHA-256:0cf150193997bd1355e0f49d3d49711730035257bc1aee1eaaad619e56b9e4e6",
"size":"35385382"
},
{
"host":"x86_64-pc-linux-gnu",
"url":"http://arduino.esp8266.com/linux64-xtensa-lx106-elf-gb404fb9.tar.gz",
"archiveFileName":"linux64-xtensa-lx106-elf-gb404fb9.tar.gz",
"checksum":"SHA-256:46f057fbd8b320889a26167daf325038912096d09940b2a95489db92431473b7",
"size":"30262903"
},
{
"host":"i686-pc-linux-gnu",
"url":"http://arduino.esp8266.com/linux32-xtensa-lx106-elf.tar.gz",
"archiveFileName":"linux32-xtensa-lx106-elf.tar.gz",
"checksum":"SHA-256:b24817819f0078fb05895a640e806e0aca9aa96b47b80d2390ac8e2d9ddc955a",
"size":"32734156"
}
]
}

という部分があるのだが、ここの”url”にtoolchainがある。

こいつを取って来て展開したら、適当な場所に置いてやれば良い。これで、gccだけじゃなくてg++もあるtoolchainのセットが手に入る。

まぁ、単なるコロンブスの卵に過ぎないのだけど、cross-NGと格闘しなくて済むのは良い。