本章では、SDブートを行うためのブートディスクの作成方法や、ブートディスクにルートファイルシステムを構築する方法など、SDブートを活用するために必要な情報について説明します。SDブートとは、SDカードに保存されたブートローダーイメージを起動させることを示します。
開発時にSDブートを利用すると、以下のようなメリットがあります。
フラッシュメモリのブートローダーを復旧することができる フラッシュメモリに収まらないサイズのソフトウェアを動作させることができる SDカードを取り替えるだけでシステムイメージを変更することができる
| |
---|
SDブートを行った場合でも、ブートローダーの設定(保守モードのsetenv/setboodeviceコマンドで設定する項目)についてはフラッシュメモリに保存されます。
|
SDカードに対する作業は、ATDEで行います。そのため、ATDEにSDカードを接続する必要があります。詳しくは「取り外し可能デバイスの使用」を参照してください。
ATDEにSDカードを接続すると、自動的に/media/ ディレクトリにマウントされます。本章に記載されている手順を実行するためには、次のようにSDカードをアンマウントしておく必要があります。
本章で使用するブートローダーイメージファイルなどは、開発セット付属の DVD に収録されています。最新版のファイルは、"Armadillo サイト"でダウンロードすることができます。新機能の追加や不具合の修正などが行われているため、DVD に収録されているものよりも新しいバージョンがリリースされているかを確認して、最新バージョンのソースコードを利用することを推奨します。
ATDEでブートディスクを作成します。ブートディスクの作成に使用するファイルを次に示します。
表15.1 ブートディスクの作成に使用するファイル ファイル | ファイル名 |
---|
SDブート用ブートローダーイメージ | loader-armadillo840-mmcsd-[version] .bin |
SDカードにブートローダーイメージを配置する際、表15.2「ブートディスクの制約」に示す制約があります。本章に示す手順を実行した場合は問題になることはありませんが、独自のブートディスクを作成する場合は注意してください。
表15.2 ブートディスクの制約 項目 | 制約 |
---|
パーティション番号 | 1 | パーティションのシステムタイプ | 0xb(Win95 FAT32) | ファイルシステム | FAT32 | ブートローダーイメージファイル名 | sdboot.bin | ブートローダーイメージファイルの配置場所 | ルートディレクトリ直下 |
表15.3「ブートディスクの構成例」に示すブートディスクを作成する手順を、手順15.1「ブートディスクの作成例」に示します。
表15.3 ブートディスクの構成例 パーティション番号 | パーティションサイズ | ファイルシステム | 説明 |
---|
1 | 128MByte | FAT32 | SDブート用のブートローダーイメージを配置します。 | 2 | 残り全て | ext3 | ルートファイルシステムを構築するためにext3ファイルシステムを構築しておきます。 |
手順15.1 ブートディスクの作成例
SDブート用のブートローダーイメージファイルを取得します。
| |
---|
フラッシュメモリ用のブートローダーイメージをSDカードに配置しても起動することができません。事前にファイル名を確認してください。ブートローダーイメージファイルには以下2種類があります。
|
SDカードに2つのプライマリパーティションを作成します。
パーティションリストを表示し、2つのパーティションが作成されていることを確認してください。
それぞれのパーティションにファイルシステムを構築します。
SDブート用のブートローダーイメージファイルを第1パーティションに配置します。
| |
---|
アンマウントが完了する前にSDカードを作業用PCから取り外すと、SDカードのデータが破損する場合があります。
|
「ブートディスクの作成」で作成したブートディスクにルートファイルシステムを構築します。
Atmark Dist または Debian GNU/Linuxのルートファイルシステムを構築することができます。ルートファイルシステムの構築に使用するファイルを次に示します。
表15.4 ルートファイルシステムの構築に使用するファイル Linuxディストリビューション | ファイル名 | ファイルの説明 |
---|
Atmark Dist | romfs-a840-[version] .img.gz | Atmark Distで作成したユーザーランドイメージ | Debian GNU/Linux | debian-wheezy-armhf_a840_[version] .tar.gz | ARM(armhf)アーキテクチャ用 Debian GNU/Linux 7(コードネーム 「wheezy」)のルートファイルシステムアーカイブ |
| |
---|
ブートディスクに構築したAtmark Distルートファイルシステムからでも、netflashを使用してフラッシュメモリを書き替えることができます。開発時にはフラッシュメモリの復旧用として準備しておくことを推奨します。
|
15.2.1. Atmark Distのルートファイルシステムを構築する
Atmark Distで作成したユーザーランドイメージから、ルートファイルシステムを構築する手順を次に示します。
手順15.2 Atmark Distイメージからルートファイルシステムを構築する
Atmark Distで作成したユーザーランドイメージファイル(romfs-a840-[version] .img.gz)を準備しておきます。
ユーザーランドイメージファイルをマウントします。
| イメージファイルをマウントするには |
---|
Atmark Distで作成したユーザーランドイメージファイルのマウントには「loopデバイス」を使用します。loopデバイスを使用すると、イメージファイルをブロック型デバイスとして扱うことができます。loopデバイスを使用したマウントを行うためには、mountコマンドの"-o"オプションで"loop"を指定する必要があります。
|
ルートファイルシステムをブートディスクの第2パーティションに構築します。
ユーザーランドイメージファイルの/etc/fstab はフラッシュメモリ用の設定になっているため、SDカード用の設定に変更します。
| |
---|
アンマウントが完了する前にSDカードを作業用PCから取り外すと、SDカードのデータが破損する場合があります。
|
15.2.2. Debian GNU/Linuxのルートファイルシステムを構築する
Debian GNU/Linuxルートファイルシステムアーカイブから、ルートファイルシステムを構築する手順を次に示します。
手順15.3 Debian GNU/Linuxルートファイルシステムアーカイブからルートファイルシステムを構築する
Debian GNU/Linuxルートファイルシステムアーカイブを準備しておきます。
ルートファイルシステムをブートディスクの第2パーティションに構築します。
| |
---|
アンマウントが完了する前にSDカードを作業用PCから取り外すと、SDカードのデータが破損する場合があります。
|
「Atmark Distのルートファイルシステムを構築する」または、「Debian GNU/Linuxのルートファイルシステムを構築する」で作成したルートファイルシステムにLinuxカーネルイメージを配置します。Linuxカーネルイメージの配置に使用するファイルを次に示します。
表15.5 ブートディスクの作成に使用するファイル ファイル | ファイル名 |
---|
Linuxカーネルイメージ | linux-a840-[version] .bin.gz |
SDカードにLinuxカーネルイメージを配置する際は、次の条件を満たすようにしてください。この条件から外れた場合、ブートローダーがLinuxカーネルイメージを検出することができなくなる場合があります。
表15.6 ブートローダーがLinuxカーネルを検出可能な条件 項目 | 条件 |
---|
ファイルシステム | ext2 または ext3 | 圧縮形式 | gzip形式 または 非圧縮 | Linuxカーネルイメージファイル名(gzip形式) | Image.gz , linux.gz , Image.bin.gz , linux.bin.gz のいずれか | Linuxカーネルイメージファイル名(非圧縮) | Image , linux , Image.bin , linux.bin のいずれか | Linuxカーネルイメージファイルの配置場所 | /boot/ ディレクトリ直下 |
Linuxカーネルイメージをルートファイルシステムに配置する手順を次に示します。
手順15.4 Linuxカーネルイメージの配置例
Linuxカーネルイメージを準備しておきます。
Linuxカーネルイメージをブートディスクの第2パーティションに配置します。
| |
---|
アンマウントが完了する前にSDカードを作業用PCから取り外すと、SDカードのデータが破損する場合があります。
|
「ブートディスクの作成」で作成したブートディスクから起動する方法を説明します。
Armadilloに電源を投入する前に次の準備を行います。
SDスロット(CON1)にブートディスクを接続します。
ブートディスクのブートローダーイメージを起動させ(SDブート)、ブートローダーの起動後に保守モードとなるように、Armadillo-840のJP1およびJP2をショートに設定します。
準備が完了後、電源を投入するとSDブートさせることができます。SDブートに成功した場合は、図15.2「SDブート時の起動メッセージ」のように起動メッセージが表示されます。起動デバイス(Armadillo-840/の後に表示される文字列)が"mmcsd"になっていることを確認してください。
「ルートファイルシステムの構築」で構築したルートファイルシステムで起動する場合は、図15.3「ルートファイルシステムの起動設定」のようにsetenvコマンドでLinuxカーネル起動オプションを設定します。setenvコマンドの詳細については「ブートローダーの機能」を参照してください。
| |
---|
Linuxカーネル起動オプションを出荷状態(Linuxカーネル起動オプションが設定されていない状態)に戻すには、以下のようにコマンドを実行します。
|
「Linuxカーネルイメージの配置」で配置したLinuxカーネルイメージで起動する場合は、保守モードで図15.4「Linuxカーネルの起動設定」のようにsetbootdeviceコマンドでLinuxカーネルイメージを指定します。setbootdeviceコマンドの詳細については「Linuxカーネルイメージの指定方法」を参照してください。
| |
---|
起動デバイス設定を出荷状態(フラッシュメモリから起動)に戻すには、以下のようにコマンドを実行します。
|
| |
|