cangoxina

生産性向上見習いのブログ的な何かです

Windows10 HomeでDockerを使って簡単にTOPPERS/EV3RTのビルド環境を構築する

この記事は、Windows10 HomeでDockerを使って簡単にTOPPERS/EV3RTのビルド環境を構築する - Qiitaアーカイブです。

本稿はLEGOマインドストームで、リアルタイムOSであるTOPPERS/EV3RT用のプログラムをビルドする環境をWindows10 HomeエディションでDockerを使って簡単に構築するための方法を記しています。


目次


はじめに

本稿はLEGOマインドストームで、リアルタイムOSであるTOPPERS/EV3RT用のプログラムをビルドする環境をWindows10 HomeエディションでDockerを使って簡単に構築するための方法を記しています。

Windows10 Pro以上を持っている方はDocker for Windowsをインストールして使う方が楽です。[手順/EV3RTのサンプルコードをダウンロードする]までスキップしてください。

macOSの方はこちら

Dockerを用いないビルド環境の構築について

もちろんDockerを使わずに環境を構築する方法はあります。 Windowsで環境を構築する場合、例えば公式の方法ではCygWinを使っています。他にも、Bash on Windows[BoW]を使う方法もあります。 しかし、CygWin・BoWは時間がかかり、バージョンによって動作に大きな差1がでることから、今回Dockerを使った環境構築方法を記すことにしました。

予備知識

Docker

Dockerはコンテナ型の仮想化環境を提供するオープンソースソフトウェアである。VMware製品などの完全仮想化を行うハイパーバイザ型製品と比べて、ディスク使用量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。

WikipediaのDockerの記事より

仮想化技術の一つで、例えば仮想マシン(VirtualBoxなど)と比べて、起動が速い・メモリ消費量が少ない・移植性が高いなどといったメリットが存在します。 必要なミドルウェアがインストール済の環境を手軽に用意できることと上記のメリットから、多くの方に利用されています。

参考

ETrobo-Docker

TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージです。 EV3RTをビルドするための環境が用意されています。今回はこれを利用します。 詳細はこちら

手順

Dockerを使えるようにする

※既にDockerがインストールされている場合は次のセクションにお進みください

ETrobo-Dockerを使うためにはDockerを使えるようになる必要がある。Windows10のHomeエディションではDocker Toolboxをインストールすることで実現できる。

Intel VT-X/AMD-vが有効かどうかを確認する

Dockerを動かすためには仮想化ハードウェア拡張を有効にする必要がある。有効になっているかどうかを確認する。 有効でない場合は、BIOSより有効にする。(参考

  1. タスクマネージャを起動2する。
  2. 詳細(D)が表示されている場合はそれをクリックする。
  3. パフォーマンスタブをクリックする。
  4. CPUの欄の仮想化有効になっているか確認する。

f:id:korosuke613:20200926194906p:plain

Docker Toolboxをインストールする

Dockerを使えるようにするためにDocker Toolboxをインストールする。 以下の5つがインストールされる。

f:id:korosuke613:20200926194924p:plain

インストールが完了すると、Docker Quickstart TerminalKitematicのショートカットが生成されています。

  • Docker Quickstart TerminalはDockerVMを素早く起動することができ、起動後はそのままMINGW64ターミナルとして利用できる。
  • KitematicはDockerをGUIで操作するツール。本稿では扱わない。(参考)

Docker Quickstart Terminalを起動する

デスクトップにできたDocker Quickstart Terminalをダブルクリックすると、ターミナルが起動する。インストール後の初回起動時はDockerVMが立ち上がるまで少し時間がかかる。以下の鯨の画面になればDockerが使えるようになる。

f:id:korosuke613:20200926194945p:plain

しっかり動くか確認するために、以下のコマンドを実行する。

$ docker run hello-world

f:id:korosuke613:20200926195005p:plain

上のような文字が出力されればインストールは完了!

EV3RTのサンプルコードをダウンロードする

※既にソースコードを持っている方は次のセクションに進んでください

f:id:korosuke613:20200926195022p:plain

平成30年10月8日(月)追記: 現在の最新版はβ7-2です。

  1. TOPPERSのEV3のページev3rt-beta7-2-release.zipをダウンロードし、解凍する。
  2. 解凍したフォルダの中にあるhrp2.tar.gzを解凍3し、解凍したhrp2フォルダの中のsdkフォルダの中のworkspaceフォルダをユーザのホームディレクトリ直下C:\Users\(ユーザ名)\workspaceにコピーする。

Docker Quickstart TerminalのホームディレクトリはWindowsのホームディレクトリと同じなので、ホームディレクトリ直下にワークスペースがあると後々楽になる

ソースコードをビルドする

先ほど立ち上げたDocker Quickstart Terminalで目的のソースコードがあるフォルダに移動する。 C:\Users\(ユーザ名)\workspace以下にソースコードがある場合、以下のコマンドで移動できる。

$ cd ~/workspace

上のセクションでサンプルコードをダウンロードしている場合、lsコマンドで以下のフォルダがあることが確認できる。

f:id:korosuke613:20200926195050p:plain

ビルドしたいフォルダに移動する。今回は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 に変更しました。

f:id:korosuke613:20200926195110p:plain

このような画面になったらビルド成功! 生成された実行ファイルは、実行したフォルダにappという名前で保存されている。

Mindstormsで動かしてみる

生成した実行ファイルをMindstormsにコピーすることでMindstormsでプログラムを実行できる。

おわりに

本稿の方法だとEV3RTのビルド環境を簡単に素早く構築できます。 今回はWindowsでの説明でしたが、Dockerが使えるなら他のOSでも同様にビルド環境を構築できます。 また、ローカル環境を汚さないので、不要になったらDockerイメージを消すだけで済みます。 マインドストームを用いた教育で、各生徒のノートパソコンを使う場合4などにご活用ください。


  1. 事実、2017年10月にBowを使った方法で複数の学生に環境構築をさせたところ、当時はWindowsのバージョンによってUbuntuのバージョンが異なり、謎のエラーでビルドができない学生が出て、大変なことになりました。

  2. Ctrl + Shift + Esc キーを押すか、タスクバーの空白の領域を右クリックし、[タスク マネージャー] をクリックして、タスクマネージャを起動できます。

  3. tar.xzの解凍ができない場合はこちらを参考にしてください。

  4. 私の所属する研究室では毎年1年生にMindstormsで演習をしており、毎回各学生の環境構築で苦戦します。そこでDockerを用いることにしました。


スポンサーリンク