目次
章 | タイトル | 内容 |
---|---|---|
1 | はじめに | この記事について |
2 | 開発環境構築 | 環境構築について説明 |
3 | 最後に | この後やる事について説明 |
1. はじめに
この記事は 【もっと!後輩たちのためのEV3rt講座】シリーズ の #1 開発環境を作ろう に対する補足記事となります。
#1 では、開発環境構築をテーマに、主にWindows(WSL) でEV3rtの開発環境を作成する方法を紹介しました。
それ以外のOSについての紹介はしていなかったため、 #1-2でmacOS版の構築方法を解説しました。
そして本記事では、Linux/Ubuntu での構築方法を紹介していきます。
本質的には #1 と同じ内容ですが、WSL特有の設定が多く含まれていたので、それらを取り除き、そして実際にUbuntu環境に構築し検証した記事となります。
環境構築以外の説明 (#1の「EV3rtとは?」など) は省いていきますので、そちらはご自身で #1 の記事をご覧ください。
2. 開発環境構築
Step 1. 必要なパッケージのインストール
gcc, make, diff のインストール
まずは「コンパイラ」を含めた 「パッケージ」 をインストールしていきます。
「コンパイラ」とはソースコードを機械語に翻訳するソフトのことです。
また「パッケージ」とは平たく言えば、ソフトウェアとそれに付随するファイル群のことで、Linuxでは「パッケージ管理システム」を使うことで簡単にソフトウェアをインストールしたり、アップデートすることが出来ます。
では、ターミナル(Ubuntuを日本語化していると「端末」という表記かも)を開き、以下のコマンドを一行ずつ入力していきましょう。
$ sudo apt update
$ sudo apt install build-essential
コマンドの前の$
は入力する必要ありませんので注意してください。
$ sudo apt update
は、パッケージ管理システム「apt」のアップデートです。
2行目はパッケージのインストールを行っており、gcc
、make
、diff
といったパッケージを使えるようにするものです。
ここで、各行の先頭にsudo
というコマンドがありますが、こちらは 「管理者権限で実行する」 という意味です。
この際、パスワードの入力が求められますので、Ubuntuにログインする際のパスワードを入力してください。
これらのパッケージを正しくインストール出来ているかは、以下のコマンドで確認することが出来ます。
$ gcc -v
$ make -v
$ diff -v
以下のように出力されればOKです。
ruby のインストール
次に、コンパイルに必要なruby
の環境を整えます。
ターミナルを開き、以下のコマンドによりrubyをインストールします。
$ sudo apt install ruby
インストール出来たかは以下のコマンドにより確認することが出来ます。
$ ruby -v
以下のように出力されればOKです。
rubyのバージョンが3.0
以上の場合、この後必要な作業があるので注意してください。
shell のインストール
コンパイルの際にruby
のライブラリでshell
というものを用います。
ruby 2.7系以降では標準搭載されていないので、インストールしていきます。
Ubuntuのターミナルで、以下のコマンドを入力してインストールします。
$ sudo gem install shell
インストール出来たかは以下のコマンドにより確認することが出来ます。
余談
shell
をインストールするためにgem
というものを使っています。
これもまた「パッケージ管理システム」で、これはrubyのライブラリを管理するパッケージ管理システムとなります。
$ gem list
インストールされているライブラリが一覧表示されますが、その中に shell (バージョン)
があればOKです。
以上で、必要なパッケージのインストールは完了です!
Step3. EV3rt用のシェルスクリプトの実行
ここからは、TOPPERSが用意している 「シェルスクリプト」 を用います。
「シェルスクリプト」とは、今まで手打ちで行っていたコマンドが書かれているファイルで、これを用いることでコマンドの実行を自動化することが出来ます。
Ubuntuのターミナルを開き、以下のコマンドを一行ずつ実行してください。
$ wget http://ev3rt-git.github.io/public/ev3rt-prepare-ubuntu.sh
$ sudo bash ev3rt-prepare-ubuntu.sh
1つ目のコマンドではgithub上にあるev3rt-git.github.io
というリポジトリから、インストールに用いるシェルスクリプトをダウンロードしています。
2つ目のコマンドはそのシェルスクリプトを実行しています。
2つ目のコマンドを入力すると、次のような表示がなされます。
ここで1
を入力してください。
これでEV3rtに必要なものが自動的にインストールされます。
余談
今回用いたシェルスクリプトについて、その中身をほんの少しだけご紹介します。
このシェルスクリプトはEV3rtのGithubリポジトリより見ることが出来ます。
https://github.com/ev3rt-git/ev3rt-git.github.io/blob/master/public/ev3rt-prepare-ubuntu.sh
このシェルスクリプトでは 「ARM社のマイコン用のGCCコンパイラ」 、そしてブートローダーである 「U-bootのmkimage」 がインストールされます。
以下、カッコ内の行数はシェルスクリプト上の行数を表しています。
EV3はARM社のプロセッサTexas Instruments AM1808 ARM Microporcessor
を採用していますが、このARMプロセッサ用のコンパイラも必要なのです。
ARM社用GCCコンパイラは多くのバージョンがありますが、自動的に動作確認済みバージョンをインストールしてくれます。(58~61行目)
又、コンピュータ内にそれ以外のバージョンがあった場合は削除してくれます。(52行目)
そして、EV3を起動するとき、一番最初に動くソフトウェアであるブートローダーのU-bootの設定も同時にしてくれます。(55行目)
ここで、再起動をするよう指示されるので、Ubuntuを再起動しましょう
Step4. EV3rtのファイルをダウンロード ⇒ 配置
それでは、EV3rtのソースコードをダウンロードしていきます。
TOPPERS/EV3rtのページから、EV3rtのファイルをダウンロードしましょう。
このページの一番上にある2021年6月25日リリースの1.1版のファイルをダウンロードしましょう。
(ev3rt-1.1-release.zip
というzipファイル)
上記ページでのzipファイルのダウンロードですが、Google Chromeを利用するとダウンロードが出来ません。
よって、Firefox などの他のブラウザを利用するようにしてください。
ダウンロードが出来たらzipファイルを展開してください。
展開するとev3rt-1.1-release
というフォルダが生成されます。
その後、展開したフォルダを移動させますが、ここでは「ホーム」フォルダの下に「Workspace」フォルダを置き、その中にコピーすることとします。
コピーできたら、圧縮ファイル hrp3.tar.xz
を展開します。
右クリックして「展開」を押すと展開することが出来ます。
ソースコードの修正
ruby 3.0系以上をインストールしている場合は必ずこの作業を行ってください。
2.7以下の場合はやらなくても大丈夫です。
コンパイルする際のrubyのコードに誤りがあるようで、修正しておかないとruby 3.0系以上でコンパイルで出来なくなるバグが発生します。
これを修正したいと思います。
@kuboaki(Kuboaki Shin) 様の下の記事👇の情報を元に修正していきます。
まず、ev3rt-1.1-release/hrp3/cfg/pass1.rb
を探して開きます。
見つけたらダブルクリックで開いてみましょう。
デフォルトの設定なら「テキストエディター」が開くはずです。
開いたら、179行目
に移動します。
以下のように「Show Line Numbers」にチェックを入れて行番号を表示すると探しやすいです。
移動したら、以下の画像の部分を修正します。
コードを以下のように修正してください。
({
}
両端の中カッコを取ります。)
# 元のコード
symvalCsv = CSV.open(symvalTableFileName, { skip_blanks: true, skip_lines: /^#/ })
# 修正後のコード
symvalCsv = CSV.open(symvalTableFileName, skip_blanks: true, skip_lines: /^#/ )
修正出来たら上書き保存して、メモ帳を閉じてください。
以上にて、環境構築完了です!!
このあと、動作確認を行います。
Step 5. 動作確認
それでは最後に、プログラムをコンパイル出来るか確認してみましょう。
ターミナルを開き、EV3rtの ワークスペースフォルダ Workspace/ev3rt-1.1-release/hrp3/sdk/workspace
に移動します。
この次々回詳しく説明しますが、このフォルダ内にプロジェクトを作製していきます。
$ cd Workspace/ev3rt-1.1-release/hrp3/sdk/workspace
今回は既に用意されているサンプルプログラムをコンパイルしてみます。
以下のコマンドでコンパイルを行います。
$ make app=helloev3
今回はhelloev3
というプログラムをビルドしました。
このサンプルプログラムはev3rtのチュートリアル的なプログラムになっています。
このコマンドを打ち込むことでworkspace
内にapp
というファイルが生成されていれば成功です。
以上で、動作確認は完了です!!
3. 最後に
#1 の Windows(WSL) 版の記事では、この後 microSDカードの準備 を行います。
ここからは、エクスプローラーと表示は多少違えど、やる事はWindowsでもUbuntuでも共通ですので、そちらを参照してください。