準備

ソフトウェアのダウンロード

leJOS EV3 leJOSのダウンロードサイト

http://sourceforge.net/projects/lejos/files/lejos-EV3/0.9.1-beta/

上記サイトから以下のファイルをダウンロードしてください。
leJOS_EV3_0.9.1-beta_win32_setup.exe

Java for LEGO® Mindstorms® EV3 Oracle のダウンロードサイト

http://www.oracle.com/technetwork/java/embedded/downloads/javase/javaseemeddedev3-1982511.html

上記サイトから以下のファイルをダウンロードしてください。
ejre-7u60-fcs-b19-linux-arm-sflt-headless-07_may_2014.tar.gz
利用者登録が必要です。

Java SE Development Kit 8 Oracle のダウンロードサイト

http://www.oracle.com/technetwork/java/javase/downloads/index.html

上記サイトからお使いのOSの環境に合わせて、以下のファイルをダウンロードしてください。

  • jdk-8u171-windows-i586.exe (32ビット版jdk)
  • jdk-8u171-windows-x64.exe (64ビット版jdk)
なお、jdkは、最低でも、四半期毎に更新されていきます。セキュリティ等の問題があるので、できるだけ最新バージョンのjdkをインストールすることをお薦めします。
もし、不具合が発生した場合は、古いバージョンへのダウングレード等を試してみてください。

NetBeans IDE 8.2 のダウンロードサイト

https://netbeans.org/downloads/

上記サイトから以下のファイルをダウンロードしてください。

NetBeans 8.2 Java SE Windows インストーラ/日本語 (ja)
netbeans-8.2-javase-windows.exe (94 MB)
SHA-256: 7b0646306a7488e617837da1517a86c08b7cf6fbe4dd9d74e8a4564b5ffde004
netbeans.png

netbeans


lejos:スペイン語で「遠く」を意味する _“lejos”_ にかけている。
スペイン語では「レホス」と読むが、英語風に「レジョス」と読んでいる人が多いかも。
以下のURLを開き、再生ボタンを押していただくとスペイン語の発音を聞くことが出来ます。

https://translate.google.com/#es/ja/lejos

SDカードの準備

4GB以上の micro SD または micro SDHC カードを用意してください。これをFAT32形式でフォーマットしてください。市販のものを新規に購入した場合はたぶんそのままで利用できます。
2GBのmicroSDカードを使用することも可能ですが、その場合は、強制的にFAT32形式 でフォーマットしてください。
もし、やり方がわからない場合は、4GB以上のmicroSDカードの使用をお勧めします。

Windowsでmicro SDカードをフォーマットする場合は、エクスプローラでmicro SDカードのドライブを選択し、管理メニューで表示されるから [フォーマット] ボタンを押してください。


以後、micro SD/SDHC を区別なく micro SD と表記します。
FileManager.png

FileManager

現れたダイアログのファイルシステムがFAT32になっていることを確認し、開始ボタンを押すことでフォーマットが行われます。

Format.png

Format

注意

他の機器で使用していたmicroSDを使い回す場合は、内部が特殊なパーティションに設定されている場合があるのでご注意ください。
このようなmicroSDを使用すると、各種設定やインストールはできるのですが、EV3から起動できない場合があります。
Macでフォーマット した microSD では、起動できませんでした。
もし、このような場合は、SDアソシエーションhttps://www.sdcard.org/jp/homeが提供している以下のツールを使用して、フォーマットし直してみてください。
SD/SDHC/SDXC用SDフォーマッター4.0

https://www.sdcard.org/jp/downloads/formatter_4/

microSDカードのトラブルシューティング

2GBのmicroSDカードのフォーマット

最近の標準的なフォーマットツールは、対象デバイスの容量を自動判定して、2GB以下の容量の記録デバイスは強制的にfat16形式でフォーマットしてしまうようです。
この形式でフォーマットをされたmicroSDカードは、leJOSのシステムインストールには使用できません。
このような場合は、以下のような方法でフォーマットしてください。

Windowsを使う場合

コマンドプロンプトから、以下のコマンドを使い、FAT32でフォーマットするように明示的に指定して、実行してください。

format E: /X /Q /FS:FAT32 /V:ev3lejos090
なお、上記の例は、microSDカードがE:ドライブに割り付けられている場合です。ドライブ名は、ご利用の環境に合わせて修正してください。
(指定を間違えるとそのドライブの内容はすべて消えてしまいます。)

linuxを使う場合

コンソールから、以下のコマンドを使い、FAT32でフォーマットするように明示的に指定して、実行してください。
この場合も、Windowsと同じく、ドライブ名は、ご利用の環境に合わせて修正してください。
(指定を間違えるとそのドライブの内容はすべて消えてしまいます。)
sudo mkfs.vfat -v -c -F 32 -n lejos090 /dev/sdc1

MacでフォーマットされたmicroSDカード

MacでフォーマットされたmicroSDカードは、セクター配置が標準的なmicroSDカードとは異なっており、これが原因で、leJOSのシステムインストールには使えないようです。
また、PC以外の機器(携帯電話、音楽プレーヤー)などで使用したmicroSDカードも、その機器専用に独自フォーマットしたものがあるので利用できない可能性があります。
内部の構成をlinuxのfdiskコマンドで見てみると、以下のような違いがあります。
  • 正常なmicroSDカードのセクター構成(容量4GB)

    デバイス ブート 始点 終点 ブロック Id システム /dev/sdc1 2048 7833599 3915776 b W95 FAT32

  • MacでフォーマットされたmicroSDカードのセクター構成(容量4GB)

    デバイス ブート 始点 終点 ブロック Id システム /dev/sdc1 2 7833599 3916799 b W95 FAT32

このような場合は、セクター配置を再構成する必要があります。
以下に、linuxのfdiskコマンドを利用して、microSDカードのセクター配置を再構成する方法を解説します。(すべての作業は、コンソール上で行います。)

1. microSDカードのドライブ名の確認

セクター配置を再構成するmicroSDカードをPCに接続し、認識完了するまで暫く待ってから以下のdmesgコマンドを実行してください。
この実行結果の最後の部分に、usb関連の内容が表示されます。この中の[sd?]が、現在接続されているmicroSDカードのドライブ名です。
以下の例では、[sdc]に割り当てられています。
duke@hdqrs:~$ dmesg

[ 3467.144100] usb 1-3: new high-speed USB device number 5 using ehci-pci
[ 3467.373324] usb 1-3: New USB device found, idVendor=056e, idProduct=8008
[ 3467.373331] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber    =3
[ 3467.373336] usb 1-3: Product: USB3.0 Card Reader
[ 3467.373340] usb 1-3: Manufacturer: Realtek
[ 3467.373344] usb 1-3: SerialNumber: 201006010301
[ 3467.379388] usb-storage 1-3:1.0: USB Mass Storage device detected
[ 3467.379552] scsi6 : usb-storage 1-3:1.0
[ 3468.382188] init: smbd main process (781) killed by TERM signal
[ 3468.391491] scsi 6:0:0:0: Direct-Access     Generic- USB3.0 CRW   -SD 1.00 PQ: 0 ANSI: 4
[ 3468.404693] scsi 6:0:0:1: Direct-Access     Generic- USB3.0 CRW   -SD 1.00 PQ: 0 ANSI: 4
[ 3468.407567] sd 6:0:0:0: Attached scsi generic sg1 type 0
[ 3468.408823] sd 6:0:0:1: Attached scsi generic sg2 type 0
[ 3469.333204] sd 6:0:0:0: [sdc] Attached SCSI removable disk
[ 3469.333688] sd 6:0:0:1: [sdc] 3842048 512-byte logical blocks: (1.96 GB/1.83 GiB)
[ 3469.335313] sd 6:0:0:1: [sdc] Write Protect is off
[ 3469.335321] sd 6:0:0:1: [sdc] Mode Sense: 2f 00 00 00
[ 3469.336803] sd 6:0:0:1: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 3469.344337]  sdc: sdc1
[ 3469.348426] sd 6:0:0:1: [sdc] Attached SCSI removable disk

2. fdiskの起動

先ほどのmicroSDカードのドライブ名を引数として、fdiskを起動してください。パスワードの入力を要求されるので、現在使用中のユーザアカウントのパスワードを入力してください。

duke@hdqrs:~$ sudo fdisk /dev/sdc
[sudo] password for duke:

3. microSDカードの内容を確認

p コマンドで、現在のパーティションの構成とセクター配置を確認してください。 以下は、Macでフォーマットされたもののパーティションの構成とセクター配置です。

コマンド (m でヘルプ): p

ディスク /dev/sdc: 4010 MB, 4010803200 バイト
ヘッド 255, セクタ 63, シリンダ 487, 合計 7833600 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00000000

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdc1               2     7833599     3916799    b  W95 FAT32

4. パーティションの開放

d コマンドを入力して、現在あるパーティションをすべて削除してください。
削除が終わったら、pコマンドで、パーティションの構成とセクター配置を確認してください。何も表示されなければOKです。
コマンド (m でヘルプ): d
選択したパーティション 1

コマンド (m でヘルプ): p

ディスク /dev/sdc: 4010 MB, 4010803200 バイト
ヘッド 255, セクタ 63, シリンダ 487, 合計 7833600 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00000000

デバイス ブート      始点        終点     ブロック   Id  システム

5. 新規パーティションの確保

n コマンドを入力して、新しくパーティションを確保してください。

Partition typeは、p プライマリーを入力してください。
残りのパラメータは、デフォルト値でよいので、すべてEnterを入力してください。
入力が終わったら、pコマンドで、パーティションの構成とセクター配置を確認してください。新しいパーティションが確保されていればOKです。
コマンド (m でヘルプ): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
パーティション番号 (1-4, 初期値 1): 1
最初 セクタ (2048-7833599, 初期値 2048): 2048
Last セクタ, +セクタ数 or +size{K,M,G} (2048-7833599, 初期値 7833599): 7833599

コマンド (m でヘルプ): p

ディスク /dev/sdc: 4010 MB, 4010803200 バイト
ヘッド 255, セクタ 63, シリンダ 487, 合計 7833600 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00000000

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdc1            2048     7833599     3915776   83  Linux

6. パーティションのシステムタイプの変更

新しくパーティションを確保した場合、デフォルトでは、linux用の領域として設定されています。
これをt コマンドで、FAT32形式に変更してください。
この時、注意すべき点は、FAT32形式には、2種類のシステムタイプが存在します。
使用するmicroSDカードの容量によって、指定するFAT32のシステムタイプが変わるので注意してください。
8GB以下の容量 の場合は、 b を、 8GBを超える容量 の場合は c を指定してください。
  • 0x0B (FAT32) パーティションの終了シリンダが1023、ディスクの先頭から8GBまでの領域にパーティションが収まる場合に利用してもよい。

  • 0x0C (FAT32 (LBA)) LBA対応版。パーティションが終了シリンダが1023を超える場合にこちらを利用する。

    コマンド (m でヘルプ): t 選択したパーティション 1 16進数コード (L コマンドでコードリスト表示): b パーティションのシステムタイプを 1 から b (W95 FAT32) に変更しました

    コマンド (m でヘルプ): p

    ディスク /dev/sdc: 4010 MB, 4010803200 バイト ヘッド 255, セクタ 63, シリンダ 487, 合計 7833600 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスク識別子: 0x00000000

    デバイス ブート 始点 終点 ブロック Id システム /dev/sdc1 2048 7833599 3915776 b W95 FAT32

7. 更新したパーティション情報の書き込み

すべての入力を終了したら、w コマンドを入力し、更新したパーティション情報の書き込みを行ってください。
書き込みが終了すると、fdisk が終了します。
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

もし、何か不安があったり、途中で中止したい場合は、q コマンドを入力してください。何も更新しないで終了します。

8. microSDカードのフォーマット

以下のコマンドで、microSDカードをFAT32形式でフォーマットできます。

sudo mkfs.vfat -v -c -F 32 -n lejos090 /dev/sdc1

指定するmicroSDカードのドライブ名を間違えないように注意してください。

duke@hdqrs:~$ sudo mkfs.vfat -v -c -F 32 -n lejos090 /dev/sdc1
mkfs.fat 3.0.26 (2014-03-07)
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
/dev/sdc1 has 124 heads and 62 sectors per track,
hidden sectors 0x0800;
logical sector size is 512,
using 0xf8 media descriptor, with 7831552 sectors;
drive number 0x80;
filesystem has 2 32-bit FATs and 8 sectors per cluster.
FAT size is 7634 sectors, and provides 977031 clusters.
There are 32 reserved sectors.
Volume ID is e7a21ac1, volume label lejos090   .
Searching for bad blocks 12496... 16224... 21840... 26208... 33888...