ESP32 + mruby/c開発のための環境構築 - macOS
※この記事に掲載されている情報は、2019年6月時点のものです。
USBドライバをインストール
「USB to UART ブリッジドライバ」をインストールします。 下記ページからお使いのOSに適合するものをダウンロードして、インストールしてください。 https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
インストールの中で「機能拡張がブロックされました(System Extension Blocked)」というダイアログが表示された場合には、「システム環境設定」->「セキュリティとプライバシー」->「一般」を開き、「許可」をクリックしてください(すべての環境でブロックされるわけではないようです)。
関連ツールのセットアップ
ESP関連ツール群をダウンロードして解凍します。
mkdir -p $HOME/esp
cd $HOME/esp
wget https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
tar -xzf xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
rm xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
pythonのバージョン管理にpyenvなどをお使いでしたら、以下のようにシステムデフォルトのpythonにバージョンを固定したほうがよいかもしれません。 pyenv等を使用していない、またはpythonの利用に慣れており問題への対処が可能だと思う場合は、この設定はスキップして構いません。
cd $HOME/esp
echo 'system' > .python-version
.bash_profileファイルに環境変数を設定し、有効化します(bashではなくzshを使用しているなどの場合は適宜読み替えてください)。
echo 'export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"' >> $HOME/.bash_profile
echo 'export IDF_PATH="$HOME/esp/esp-idf"' >> $HOME/.bash_profile
source $HOME/.bash_profile
ESP-IDFを配置します。
cd $HOME/esp
git clone --recursive https://github.com/espressif/esp-idf.git
python製の関連ツールをインストールします。
sudo easy_install pip
python -m pip install --user -r $IDF_PATH/requirements.txt
Rubyについて
mrubyのビルドにはCRuby(最も一般的なRuby実装)が必要です。
Rubyのインストールには複数の方法がありますが、複数のRubyをシステム内に共存させるためのツール「rbenv」を使用することを推奨します。
ワークショップの後半に時間があれば筆者作のmruby/c用便利ツール mrubyc-utils
を使う予定があり、rbenvの環境のほうがスムーズに使用できます。
Rubyのインストール
homebrewが導入済みであることを想定し、手順を説明します。homebrewを使用せずにrbenvをインストールしたい場合は、WSLの環境構築マニュアルの該当部分を参考にしてください。
rbenvとruby-buildをインストールし、パスを通すなどします。
brew install openssl readline zlib rbenv ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source $HOME/.bash_profile
macOSにはRubyがインストールされていますが、せっかくなので新しいバージョンをインストールしましょう。
rbenv install 2.6.2
このときに The Ruby zlib extension was not compiled.
などのエラーが出てしまうときは、以下のようにすることでインストールできるかもしれません。
RUBY_CONFIGURE_OPTS="--with-zlib-dir=$(brew --prefix zlib)" rbenv install 2.6.2
zlib
のところが readline
など別のライブラリかもしれません。適宜読み替えて対処してください。
最後にmrubyをインストールします。mruby2.xはまだmruby/cと統合されていないので、1.4.1を使用します。
rbenv install mruby-1.4.1