マイクロ SD カード上に環境構築をする

Phenox2 には 2つあるCPUのうちの1つ(CPU0)にLinux (Ubuntu 13.04) が搭載されており、もう片方のCPU(CPU1)に飛行制御システムが作動しています。 この Linux はマイクロ SD カード上に構築されており、ユーザーの好みに応じてカスタマイズすることが可能です。CPU1,FPGAのバイナリデータも同様に公開しており、Phenox2の動作に必要なソフトウェアは全てユーザーで入手し、独自のマイクロSDカード上に環境構築することが可能です。

ここでは、出荷時と同等の環境をマイクロ SD カード上に構築する方法を説明します。

なお以下の環境構築において、ホストPCには Ubuntu 14.04 LTS を使用しています。

1. まず、4 GB以上の容量を持った マイクロ SD カードを用意してください。 SD カード内にデータがある場合は、環境構築を行うと全て失われてしまいますので、 必要に応じてバックアップを取ってください。

2. ターミナル(端末、Terminal)を開きます。 デスクトップからメインメニューを開いてください。 ターミナルの開き方1

検索窓に "terminal" と入力し、端末をクリックしてください。 ターミナルの開き方2

ターミナルが開き、待機状態になります。 ターミナルの開き方2

3. 用意した SD カードをコンピューターに接続してください。

4. SD カードの識別子を確認します。 ターミナルでdmesgコマンドを実行してください。
dmesgと入力してEnterを押してください。)
ターミナルの開き方3

画面出力の最後の方に SD カードについてのメッセージが現れます。
SD カードのメッセージは環境によって違う種類のものが確認されています。
よく確認の上、以下のマニュアルの該当部分を適宜読み替えて作業を進めてください。

  • 識別子が sdX 系の場合

SDカードの識別子を探す1

識別子は sdX (X部分は環境によって変化します。)となります。
メッセージの中に、sdX の文字を探します。この例では識別子は sdb となっています。 SDカードの識別子を探す2

  • 識別子が mmcblkX 系の場合

SDカードの識別子を探す1

識別子は mmcblkX (X部分は環境によって変化します。)となります。
メッセージの中に、mmcblkX の文字を探します。この例では識別子は mmcblk0 となっています。 SDカードの識別子を探す1

5. SD カードのフォーマットを行います。 次のコマンドの sdX 部分を先程確認した値(sd+数字もしくはmmcblk+数字)に置き換え、実行してください。

sudo dd if=/dev/zero of=/dev/sdX bs=1024 count=1

SDカードのフォーマット1

sudo を実行するのが初めての場合は、管理者権限のパスワードを尋ねられます。 パスワードを入力して Enter を押してください。 SDカードのフォーマット2

以下のような出力が出れば成功です。 SDカードのフォーマット2

6. 次に SD カードにパーティションを2つ作成します。 次のコマンドの sdX 部分を先程確認した値に置き換え、実行してください。

sudo fdisk /dev/sdX

ターミナルが対話モードに切り替わります。 SDカードのパーティション作成1

コマンド(mでヘルプ):と出ますのでn と入力します。 SDカードのパーティション作成1.2

Select (default p):p と入力します。 SDカードのパーティション作成2

パーティション番号(1-4、初期値1):1 と入力します。 SDカードのパーティション作成3

最初 セクタ (2048-XXXXXXX、初期値 2048):には何も入力しないで Enter を押します。 SDカードのパーティション作成4

初期値 2048を使いますと出力されます。 SDカードのパーティション作成5

Last セクタ, +セクタ数 or +size{K,M,G} (2048-XXXXXXX, 初期値 XXXXXXX):+256M と入力します。 SDカードのパーティション作成6

特に出力はありませんが、これで1つ目のパーティション作成は完了です。 SDカードのパーティション作成7

続けて二つ目のパーティションを作成します。
コマンド(mでヘルプ):n
Select (default p):p
パーティション番号(1-4、初期値1):2 と順に入力していきます。 SDカードのパーティション作成8

最初 セクタ (XXXXXXX-YYYYYYY、初期値 XXXXXXX):には何も入力しないで Enter を押します。
SDカードのパーティション作成8

初期値 XXXXXXXを使いますと出力されます。 SDカードのパーティション作成8

Last セクタ, +セクタ数 or +size{K,M,G} (XXXXXXX-YYYYYYY, 初期値 YYYYYYY):に再び何も入力しないで Enterを押します。 SDカードのパーティション作成9

2つ目のパーティション作成が完了しました。 SDカードのパーティション作成9

次に、それぞれのパーティションのシステムタイプと ID を変更します。 まずパーティション1のシステムタイプを変更します。 コマンド(mでヘルプ):と出ますのでa と入力します。
SDカードのパーティション作成10

パーティション番号(1-4):1 と入力します。 SDカードのパーティション作成11

コマンド(mでヘルプ):t と入力します。 SDカードのパーティション作成12

パーティション番号(1-4):1 と入力します。 SDカードのパーティション作成13

16進数コード(Lコマンドでコードリスト表示):c と入力します。 SDカードのパーティション作成14 パーティション1のシステムタイプが変更されました。

次はパーティション2のシステムタイプを変更します。 コマンド(mでヘルプ):t と入力します。 SDカードのパーティション作成15

パーティション番号(1-4):2 と入力します。 SDカードのパーティション作成16

16進数コード(Lコマンドでコードリスト表示):83 と入力します。 SDカードのパーティション作成17 パーティション2のシステムタイプが変更されました。

これまでの入力を確認します。 コマンド(mでヘルプ):p と入力します。 SDカードのパーティション作成19
次のようになっていることを確認します。(数字部分は環境によって異なります)

デバイス ブート 始点 終点 ブッロク Id システム
/dev/sdX1 * XXXXXXX YYYYYYY BBBBBBB c W95 FAT32 (LBA)
/dev/sdX2 XXXXXXX YYYYYYY BBBBBBB 83 Linux

もし結果が違っていれば、Ctrl+cで操作を中断し、一連の操作を最初からやり直してください。 正しく進んでいれば w を入力し、変更を反映させます。 SDカードのパーティション作成18 fdisk の書き込みが完了したら、SD カードを一度抜き、再び差し直します。

7. 作成した2つのパーティションにファイルシステムを構築します。
次の2つのコマンドを、sdX を先程確認した値(sd+数字もしくはmmcblk+数字)に置き換えた上で、順番に実行してください。

sudo mkfs.vfat -F 32 -n boot /dev/sdX1
sudo mkfs.ext4 -L root /dev/sdX2

(注意:このコマンドでは先程作成したパーティションを指定するために、 sdX の後に 1, 2 が付け加わっています。注意して実行してください。) SDカードのファイルシステム構築1

SDカードのファイルシステム構築2

SDカードのファイルシステム構築3

SDカードのファイルシステム構築4 処理が完了したら、SD カードを一度抜き、再び差し直します。

8. 最後に、Phenox Lab の Web サイトより、 必要なソフトウェアをダウンロードし、SD カード上に展開します。

以下のコマンドを実行して、ソフトウェアをダウンロードしてください。

wget http://phenoxlab.com/static/phenox_boot_master.tar.gz
wget http://phenoxlab.com/static/phenox_ubuntu_master.tar.gz

ダウンロード1

ダウンロード2

ダウンロード3

ダウンロード4

次に、以下のコマンドでダウンロードした圧縮ファイルを解凍します。

tar zxvfp phenox_boot_master.tar.gz
tar zxvfp phenox_ubuntu_master.tar.gz

最後に、解凍したファイルを SD カードにコピーします。 以下のコマンドの <username> 部分を現在ログインしているユーザー名に置き換え、実行してください。
写真の例ではユーザー名は phenox になっています。
(なお、最後のコピーには時間がかかりますのでご注意ください。)

cp -a phenox_boot_master/* /media/<username>/boot/
sudo cp -a phenox_ubuntu_master/* /media/<username>/root/

コピー1

コピー2 コピー3

コピー4

コピーが完了したら、SD カードをコンピューターから取り出します。 次のコマンドの <username> 部分を現在ログインしているユーザー名に置き換え、実行してください。  

umount /media/<username>/root /media/<username>/boot

アンマウント

ソフトウェアの更新

現在のリビジョン番号は、microSDカードの各パーティション(boot/, root/)内のrevision.logに記載されています。

phenox_boot_master ("boot"フォルダにコピーするファイル)

最新版は20160607です。

phenox_ubuntu_master ("root"フォルダにコピーするファイル)

最新版は20160109です。