環境
Debian 7(wheezy)使用。必要になるパッケージを入れる。
$ sudo aptitude install imagemagick git u-boot-tools
Java Linux x86(jdk-7u25-linux-i586.tar.gz)をダウンロード。
$ sudo tar xzf -C /opt jdk-7u25-linux-i586.tar.gz
Sourcery CodeBench Lite EditionからARM ProcessorsのDownload the GNU/Linux Releaseを辿り、Sourcery CodeBench Lite 2013.05-24からIA32 GNU/Linux TAR(arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2)ダウンロード。
$ sudo tar xjf -C /opt arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
以下のように環境変数を設定する。
ソースコード
Githubから直接クローンする。
$ mkdir projects $ cd projects $ git clone https://github.com/mindboards/ev3sources.git lms2012
ビルド
クローンしたlms2012ディレクトリ内のlms2012/open_first
内でビルドする。ターゲットを指定せずにmake
を実行すると有効なターゲットとその説明が表示される。
$ cd lms2012/open_first $ make Execute "make TARGET" where TARGET is: lms2012: to build the lms2012 program and its libraries modules: to build lms2012 kernel modules programs: to build bytecode programs and their data files kernel: to build Linux kernel u-boot: to build u-Boot doc: to build documentation Execute "make doc.view" to view the documentation in a web browser Execute "make TARGET.clean" to clean an individual target or "make clean" to clean everything Add the ARCH=X86 argument to run for X86 platform (some targets are then meaningless).
doc
以外のターゲットを実行すれば、ファームウェア作成に必要なファイルが生成される。
$ make lms2012 modules programs kernel u-boot
以下は、各ターゲットで実行される内容。
- lms2012
lms2012/lms2012
内をビルドする。デバイスアクセス用ユーザランドライブラリとEV3上で動作するバイナリインタプリタ(lms2012
)が生成される。ビルドしたバイナリはlms2012/lms2012/Linux_AM1808
に出力される。- modules
- ハードウェア制御用のカーネルドライバをビルドする。
lms2012/d_xxxx
にあるソースからlms2012/d_xxxx/Linuxmod_AM1808
にビルドする。 - programs
- デフォルトで入っているユーティリティなどをビルドする。
- kernel
extra/linux-03.20.00.13
にあるソースをビルドしてカレントディレクトリにuImage
を作る。- u-boot
extra/uboot-03.20.00.13
にあるソースをビルドしてカレントディレクトリにuBoot
を作る。
イメージの作成
lms2012/open_first/scripts/make_ev3_os_EDU.sh
の、/mnt
で作業しているのが気持ち悪いので/tmp
に書き換える。
さらにsudo
で実行するためにホームディレクトリの参照を書きかえる。
-PATH1=~/projects/lms2012 +PATH1=/home/$SUDO_USER/projects/lms2012
カレントディレクトリをlms2012/open_first
にしたうえで、以下のコマンドを実行する。
$ sudo ./make_image_EDU.sh
正常に終了すると、EV3-image.1378785043.bin
とEV3.cramfs.bin
が生成される。EV3-image.1378785043.bin
はU-Bootとカーネルとルートファイルシステムを含んだファームウェア、EV3.cramfs.bin
はルートファイルシステムになる。