2015年4月8日水曜日

esp8266用の環境を構築する

ESP8266がもうすぐ使えるかもしれない、ということで、早速ビルド環境を構築してみることにしました。
にある esp-open-sdk を使えるようにすることがターゲットになります。

1.Debianのインストール

まあ、Debianは普通にDebian7.8をVMware上でインストールします。
(2回目のインストールはUbuntu14.04LTS上にインストールしました。)

2.ツール類のインストール

環境構築に必要なパッケージ類をインストールします。
$ sudo apt-get install make autoconf automake libtool gcc g++ gperf  flex bison texinfo gawk ncurses-dev libexpat-dev python sed git

3.環境構築

以下の手順で環境構築します。
$ git clone https://github.com/pfalcon/esp-open-sdk
$ cd esp-open-sdk
$ make STANDALONE=n

・・・・とすると、勝手にいろんなものを引っ張ってきてコンパイルしてくれます。マルチコアだからといって、make で -j 2 とか付けたりするとうまく行きません。

4.パスの修正

ホームディレクトリの .profile に以下の内容を追記して、xtensa用のgccをパスに追加します。
# add esp8266 tools to PATH
PATH="$HOME/esp-open-sdk/xtensa-lx106-elf/bin:$PATH"

一旦ログオフしてログオンしなおしてから、正しくパスが通っているか確認します。
~$ xtensa-lx106-elf-gcc -v 
Using built-in specs. COLLECT_GCC=xtensa-lx106-elf-gcc COLLECT_LTO_WRAPPER=/home/xxx/esp-open-sdk/xtensa-lx106-elf/libexec/gcc/xtensa-lx106-elf/4.8.2/lto-wrapper Target: xtensa-lx106-elf Configured with: /home/xxx/esp-open-sdk/crosstool-NG/.build/src/gcc-4.8.2/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=xtensa-lx106-elf --prefix=/home/xxx/esp-open-sdk/xtensa-lx106-elf --with-local-prefix=/home/xxx/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --disable-libmudflap --with-sysroot=/home/xxx/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG 1.20.0' --disable-__cxa_atexit --with-gmp=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpfr=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpc=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-isl=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-cloog=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-libelf=/home/xxx/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --enable-lto --enable-target-optspace --disable-libgomp --disable-libmudflap --disable-nls --disable-multilib --enable-languages=c,c++ Thread model: single gcc version 4.8.2 (crosstool-NG 1.20.0) 
~$

5.アップデートの適用

以下の手順で環境のアップデートを適用します。
$ cd ~/esp-open-sdk
$ make clean
rm -rf esp_iot_sdk_v0.9.5
rm -f sdk
rm -f .sdk_patch_0.9.5
make -C crosstool-NG clean MAKELEVEL=0
make: ディレクトリ `/home/xxx/esp-open-sdk/crosstool-NG' に入ります
 RM 'ct-ng'
 RM 'scripts/crosstool-NG.sh'
 RM 'scripts/saveSample.sh'
 RM 'scripts/showTuple.sh'
 RM 'paths'
 RM 'config/configure.in'
 RM 'kconfig'
 RM 'docs/ct-ng.1'
 RM 'docs/ct-ng.1.gz'
make: ディレクトリ `/home/xxx/esp-open-sdk/crosstool-NG' から出ます
rm -rf /home/xxx/esp-open-sdk/xtensa-lx106-elf
$ git pull
Already up-to-date.
$ git submodule update --init --recursive
Submodule 'crosstool-NG' () registered for path 'crosstool-NG'
Submodule 'esptool' () registered for path 'esptool'
Submodule 'lx106-hal' () registered for path 'lx106-hal'
$ make STANDALONE=n

※クロスコンパイラを再構築するので、時間がかかります。

6.exampleのコンパイル

以下の手順でコンパイルを試みているが、まだうまく行かない。
$ cd ~/esp-open-sdk/sdk
$ mv example/IoT_Demo .
$ cd IoT_Demo
$ make COMPILE=gcc

コンパイルする対象ディレクトリは sdk 直下に必要な模様。

0 件のコメント: