はじめに
本稿はLEGOマインドストームで、リアルタイムOSであるTOPPERS/EV3RT用のプログラムをビルドする環境をWindows10 HomeエディションでDockerを使って簡単に構築するための方法を記しています。
Windows10 Pro以上を持っている方はDocker for Windowsをインストールして使う方が楽です。[手順/EV3RTのサンプルコードをダウンロードする]までスキップしてください。
Dockerを用いないビルド環境の構築について
もちろんDockerを使わずに環境を構築する方法はあります。
Windowsで環境を構築する場合、例えば公式の方法ではCygWinを使っています。他にも、Bash on Windows[BoW]を使う方法もあります。
しかし、CygWin・BoWは時間がかかり、バージョンによって動作に大きな差1がでることから、今回Dockerを使った環境構築方法を記すことにしました。
予備知識
Docker
Dockerはコンテナ型の仮想化環境を提供するオープンソースソフトウェアである。VMware製品などの完全仮想化を行うハイパーバイザ型製品と比べて、ディスク使用量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。
WikipediaのDockerの記事より
仮想化技術の一つで、例えば仮想マシン(VirtualBoxなど)と比べて、起動が速い・メモリ消費量が少ない・移植性が高いなどといったメリットが存在します。
必要なミドルウェアがインストール済の環境を手軽に用意できることと上記のメリットから、多くの方に利用されています。
参考
- 【入門】Dockerとは?使い方と基本コマンドを分かりやすく解説します
- 今からでも間に合うDockerの基礎。コンテナとは何か、Dockerfileとは何か。Docker Meetup Tokyo #2
ETrobo-Docker
TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージです。
EV3RTをビルドするための環境が用意されています。今回はこれを利用します。
詳細はこちら
手順
Dockerを使えるようにする
※既にDockerがインストールされている場合は次のセクションにお進みください
ETrobo-Dockerを使うためにはDockerを使えるようになる必要がある。Windows10のHomeエディションではDocker Toolboxをインストールすることで実現できる。
Intel VT-X/AMD-vが有効かどうかを確認する
Dockerを動かすためには仮想化ハードウェア拡張を有効にする必要がある。有効になっているかどうかを確認する。
有効でない場合は、BIOSより有効にする。(参考)
- タスクマネージャを起動2する。
-
詳細(D)
が表示されている場合はそれをクリックする。 -
パフォーマンス
タブをクリックする。 - CPUの欄の
仮想化
が有効
になっているか確認する。
Docker Toolboxをインストールする
Dockerを使えるようにするためにDocker Toolboxをインストールする。
以下の5つがインストールされる。
- Docker Client for Windows
- Docker Machine for Windows
- Kitematic for Windows(Alpha)
- VirtualBox
- Git for Windows
-
Docker公式ページの
Get Doccker Toolbox for Windows
をクリックしてインストーラをダウンロードする。 - インストーラを実行し、画面にしたがってインストールする。途中にあるチェックボックスは理由がない限りデフォルトで構わない。
インストールが完了すると、Docker Quickstart Terminal
とKitematic
のショートカットが生成されています。
-
Docker Quickstart Terminal
はDockerVMを素早く起動することができ、起動後はそのままMINGW64ターミナルとして利用できる。 -
Kitematic
はDockerをGUIで操作するツール。本稿では扱わない。(参考)
Docker Quickstart Terminalを起動する
デスクトップにできたDocker Quickstart Terminal
をダブルクリックすると、ターミナルが起動する。インストール後の初回起動時はDockerVMが立ち上がるまで少し時間がかかる。以下の鯨の画面になればDockerが使えるようになる。
しっかり動くか確認するために、以下のコマンドを実行する。
$ docker run hello-world
EV3RTのサンプルコードをダウンロードする
※既にソースコードを持っている方は次のセクションに進んでください
平成30年10月8日(月)追記:
現在の最新版はβ7-2です。
-
TOPPERSのEV3のページで
ev3rt-beta7-2-release.zip
をダウンロードし、解凍する。 - 解凍したフォルダの中にある
hrp2.tar.gz
を解凍3し、解凍したhrp2
フォルダの中のsdk
フォルダの中のworkspace
フォルダをユーザのホームディレクトリ直下C:\Users\(ユーザ名)\workspace
にコピーする。
Docker Quickstart TerminalのホームディレクトリはWindowsのホームディレクトリと同じなので、ホームディレクトリ直下にワークスペースがあると後々楽になる
ソースコードをビルドする
先ほど立ち上げたDocker Quickstart Terminalで目的のソースコードがあるフォルダに移動する。
C:\Users\(ユーザ名)\workspace
以下にソースコードがある場合、以下のコマンドで移動できる。
$ cd ~/workspace
上のセクションでサンプルコードをダウンロードしている場合、ls
コマンドで以下のフォルダがあることが確認できる。
ビルドしたいフォルダに移動する。今回はev3way-cpp
をビルドする。
$ cd ev3way-cpp
ビルドには、上記で紹介した、TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージのETrobo-Dockerを利用する。
以下のコマンドを実行する。初回はイメージをプルする必要があるため時間がかかる。
$ docker run -v $PWD:/home/hrp2/sdk/workspace/product korosuke613/etrobo-docker
平成30年8月9日(木) 追記
$ docker run -v $PWD:/home/hrp2/sdk/workspace/src korosuke613/etrobo-docker
を
$ docker run -v $PWD:/home/hrp2/sdk/workspace/product korosuke613/etrobo-docker
に変更しました。
このような画面になったらビルド成功!
生成された実行ファイルは、実行したフォルダにapp
という名前で保存されている。
Mindstormsで動かしてみる
生成した実行ファイルをMindstormsにコピーすることでMindstormsでプログラムを実行できる。
おわりに
本稿の方法だとEV3RTのビルド環境を簡単に素早く構築できます。
今回はWindowsでの説明でしたが、Dockerが使えるなら他のOSでも同様にビルド環境を構築できます。
また、ローカル環境を汚さないので、不要になったらDockerイメージを消すだけで済みます。
マインドストームを用いた教育で、各生徒のノートパソコンを使う場合4などにご活用ください。