MindstromEV3にleJOSを導入したい
leJOSはMindstormEV3をjavaで制御したい時に導入するOSです。授業でも使おうと思ったりして。
Windowsで行う標準的なインストールはこちらが詳しいです。
LeJOS EV3 実行/Netbeans開発環境構築メモ(Windows版)
以前にインストールした時は、素直にWindowsでインストールできました。指示通り進めばそれほど苦労もなくインストールできるはずです。
さて授業に展開しようと思い、SDカードをまとめて入手しました。
amazonで買ったのは以下の製品。

【Amazon.co.jp限定】Transcend microSDHCカード 32GB Class10 (無期限保証) Newニンテンドー3DS 動作確認済み TS32GUSDHC10E (FFP)
- 出版社/メーカー: トランセンド・ジャパン
- メディア: Personal Computers
- 購入: 6人 クリック: 5回
- この商品を含むブログを見る
32GBのSDカードでleJOSの環境構築が停止する
ここではまってしまいました。インストールは終わりますが、初回起動時の環境構築が途中で停止します。これは想定外の動きです。
インストールからの動きを観察していくとこんな感じでした。
- FATフォーマットされたSDカードに必要なファイルを保存
- 初回起動時にFATフォーマット領域を500MBまで縮小
- 残りの領域を ext2 フォーマットで構築
- この作業から先に進まない様子
いろいろ情報を調べてみましたが、「カードが対応していないのでは」とか「フォーマットしなおしてからやってみよ」とか「インストールファイルに含まれるsd500.imgを書き込め」とか書いてありました。いろいろ試してみましたがどれもうまくいきません。
そう高いものでもないので容量が小さいSDカードを使えばそれで済むのですが、なにしろ12枚も買ってしまった。なんとしてもこれで使えるようにしたいところです。
あらかじめ小さい容量で作ったSDカードをイメージコピーする
環境さえあればわりと簡単にできます。
Macなら標準でddコマンド使えますので、それでコピーしてみましょう。
環境構築済みのSDカードをセットして、ターミナルでdfコマンドを使ってSDカードのデバイス名を探します。
うちでは /dev/disk1が該当するようです。
サイズも大きいのでイメージは圧縮して保存します。
# sudo dd if=/dev/disk1 bs=5120 | gzip -c > lejos.img.gz
新しいSDカードをセットして、圧縮されたイメージを展開しながら書き込みます。
# gzip -dc < lejos.img.gz | dd of=/dev/disk1 bs=5120
これならいけますね。コピー先が32GB越えの容量でも、コピー元の容量として動作します。
欠点は容量丸ごとイメージにしなければならないので、結構大きな容量のイメージを作らないとダメなところでしょうか。
SDカードの書き込みもかなり時間がかかります。
そもそも、大きな容量のSDカードしかない時はこの方法は使えません。
パーティションさえ事前に作れば先に進めるのでは?
この仮説で進めてみます。ext2ということはlinuxベースのOSですね。
WindowsもMacも標準ではext2に対応していません。
さらに都合よくSDカードが読めるlinuxマシンが身近にはありません。
OSに拘らないならlinuxのライブブートを利用するのが簡単でしょうか。
どのディストリビューションでも良いですが、ライブブートしてパーティションを切るだけなので、これが便利かもしれないです。
GPartedというパーティション操作をするツールが入っています。
Windows機でもMacでも起動できます。
EFIブートに対応している機種ならISOからブートCDを作らなくても、zipで圧縮されているものをUSBメモリのルートに保存しておけば起動できるはずです。
linuxライブでブートしたら2つのパーテョションを作りましょう
- 500MB以上のfat32領域
- インストーラでは515MBの領域が自動的に作られます。
- 残りがext2領域
- そんなに大きな領域がいらなければ小さめでも良い。ただし、3つ目の領域があると起動しないので、未使用にしておくこと。
今回は32GBのSDカードを半々に分けてfat32とext2にしてみました。
leJOSの手動インストール
Macで作業していますのでWindowsのインストーラは使わず手動でインストールします。
sourceforge.net
ここから leJOS_EV3_0.9.1-beta.tar.gz をダウンロードして展開します。
Running Java SE Embedded on LEGO® Mindstorms® EV3からJava SE Embedded version 7 をダウンロード
- 展開したleJOS_EV3_0.9.1-betaのlejosimage フォルダの中身をFAT領域にコピー
- ダウンロードしたjavaをFAT領域にコピー
- SDカードをEV3にセットして起動
無事初回起動で環境が構築されます。
これでSDカードを買い直さなくても済みそうです。