本章では、Armadillo-810のフラッシュメモリに書き込まれているイメージファイルを更新する手順について説明します。
フラッシュメモリの書き換え方法には、大きく分けて以下の2種類の方法があります。
表12.1 フラッシュメモリの書き換え方法
方法 | 特徴 |
---|
netflashを使用する |
|
ダウンローダー使用する |
|
フラッシュメモリを書き換えるためには、Linuxまたはブートローダーが起動している必要があります。フラッシュメモリに書き込まれているブートローダーが起動しない状態になってしまった場合は、15章SDブートの活用を参照してSDカードからソフトウェアを起動させてください。
| |
---|
ダウンローダーを使用してユーザーランドイメージなどサイズの大きなイメージファイルを書き換えると非常に時間がかかります。これは、イメージファイルをArmadilloに転送する際にシリアルの転送速度がボトルネックとなるためです。サイズの大きなイメージファイルを書き換える場合はnetflashを使用する方法を推奨します。
|
12.1. フラッシュメモリのパーティションについて
フラッシュメモリのイメージファイルの書き換えは、パーティション(リージョンとも呼ばれます)毎に行います。各パーティションのサイズはフラッシュメモリ内には保存されていません。ブートローダーとLinuxカーネルそれぞれが同じパーティションテーブルを保持することにより、一意的にを扱うことができるようになっています。
各パーティションに対応するイメージファイル名を表12.2「パーティションとイメージファイルの対応」に示します。
表12.2 パーティションとイメージファイルの対応
パーティション | イメージファイル | 備考 |
---|
bootloader | loader-armadillo810-nor-[version] .bin | ブートローダーイメージを配置するパーティションです。 |
config | なし | ユーザーランドアプリケーション"flatfsd"がFlat file-system(フラッシュメモリ向けファイルシステム)を構築するパーティションです。使用方法については7章コンフィグ領域 − 設定ファイルの保存領域を参照してください。 |
licence | なし | 有償ミドルウェアなどのライセンスファイルを配置するパーティションです。 |
firmware | squashfs-a810-firmware-[version] .img | 有償ミドルウェアなどのファームウェアを配置するパーティションです。 |
kernel | linux-a810-[version] .bin.gz | Linuxカーネルイメージを配置するパーティションです。 |
userland | romfs-a810-[version] .img.gz | ユーザーランドイメージを配置するパーティションです。 |
12.2. netflashを使用してフラッシュメモリを書き換える
Linux が動作している状態では、Linux アプリケーションの netflash を利用することでフラッシュメモリを書き換えることができます。ここでは、netflash を利用して次に示す場所に存在するイメージファイルをフラッシュメモリに書き込む手順を紹介します。
Webサーバー上のイメージファイル
ストレージ上のイメージファイル
netflashコマンドのヘルプは次のとおりです。
"-r"オプションに指定するフラッシュメモリのデバイスファイルとパーティションの対応を次に示します。
表12.3 フラッシュメモリのパーティションとデバイスファイル
パーティション | デバイスファイル |
---|
config | /dec/flash/config |
licence | /dev/flash/license |
firmware | /dev/flash/firmware |
kernel | /dev/flash/kernel |
userland | /dev/flash/userland |
12.2.1. Webサーバー上のイメージファイルを書き込む
ATDEでは、標準でWebサーバー(lighttpd)が動作しており、/var/www/
ディレクトリ以下に置かれたファイルはネットワーク経由でダウンロードすることができます。netflash は、HTTPによるファイルのダウンロードをサポートしています。
イーサネットガジェット[]を利用すると、ATDEとネットワーク通信することができます。ここでは、ATDEとネットワーク通信ができることを前提に、ATDEからイメージファイルをダウンロードしてkernelパーティションに書き込む手順を説明します。
手順12.1 Webサーバー上のイメージファイルを書き込む
ATDEの/var/www/
ディレクトリにLinuxカーネルイメージファイルを置きます。
Webサーバー上のイメージファイルのURL(http://atde5.local/linux-a810-v1.00.bin.gz)を指定して netflashコマンドを実行します。
Armadilloのプロンプトが表示されるとフラッシュメモリの書き換えは完了です。次回起動時から書き換えたLinuxカーネルイメージで起動します。
12.2.2. ストレージ上のイメージファイルを書き込む
ストレージ(SDカードやUSBメモリ)をマウントすることで、ストレージに保存されたイメージファイルをフラッシュメモリに書き込むことができます。
ここでは SDカードに保存されているイメージファイルを userland パーティションに書き込む手順を説明します。
手順12.2 SDカード上のイメージファイルを書き込む
SDカードを/mnt/
ディレクトリにリードオンリーでマウントします。
SDカード上のイメージファイルのパス(/mnt/romfs-a810-v1.00.img.gz)を指定して netflashコマンドを実行します。
Armadilloのプロンプトが表示されるとフラッシュメモリの書き換えは完了です。次回起動時から書き換えたユーザーランドイメージで起動します。
SDカードをアンマウントします。
12.3. ダウンローダーを使用してフラッシュメモリを書き換える
Linuxを起動できない場合やブートローダーを更新する場合は、ダウンローダー(hermit)を使用してフラッシュメモリを書き換える必要があります。hermitはATDEに標準でインストールされています。
hermitはArmadilloのブートローダーと協調動作を行いフラッシュメモリを書き換えることができます。hermitとブートローダー間の通信には、シリアル[]が使用されます。
hermitのヘルプは次のとおりです。
ここでは、bootloaderパーティションを書き換える手順について説明します。
手順12.3 ダウンローダー使用して書き換える
ブートローダーが保守モードで起動するように設定します。設定方法については、「ブートローダー起動モード」を参照してください。
Armadilloが保守モードで起動したことを確認するために、ATDEでminicomを起動しておきます。
Armadilloに電源を投入します。ブートローダーが保守モードで起動すると、次のように保守モードのプロンプトが表示されます。
minicomを終了させシリアルポート(/dev/ttyUSB0)を開放します。
bootloaderパーティションと書き込むイメージファイル(loader-armadillo810-nor-v3.2.0.bin)を指定してhermitコマンドを実行します。bootloaderパーティションを更新する場合は、必ず"--force-locked"オプションを指定する必要があります。
ATDEのプロンプトが表示されるとフラッシュメモリの書き換えは完了です。次回起動時から書き換えたブートローダーイメージで起動します。
12.4. ブートローダーが起動しなくなった場合の復旧作業
フラッシュメモリのbootloaderパーティションを誤ったイメージファイルで書き換えたり、書き換え中にArmadilloの電源を切断してしまった場合、ブートローダーが起動しなくなる場合があります。フラッシュメモリのブートローダーが起動しなくなった場合は、SDブートを利用して復旧する必要があります。
ブートローダーの復旧手順を次に示します。
手順12.4 ブートローダーの復旧
SDブートを行うためのブートディスクを作成します。ブートディスクの作成方法については15章SDブートの活用を参照してください。
Armadilloにブートディスクを接続し、ブートローダーがSDカードから起動し、且つ保守モードとなるように設定します。拡張ボード01 (Aコネクタ用)のJP1およびJP3をショートに設定してください。
Armadilloが保守モードで起動したことを確認するために、ATDEでminicomを起動しておきます。
Armadilloに電源を投入します。ブートローダーが保守モードで起動すると、次のように保守モードのプロンプトが表示されます。
minicomを終了させシリアルポート(/dev/ttyUSB0)を開放します。
bootloaderパーティションと書き込むイメージファイル(loader-armadillo810-nor-[version].bin)を指定してhermitコマンドを実行します。bootloaderパーティションを更新する場合は、必ず"--force-locked"オプションを指定する必要があります。
ATDEのプロンプトが表示されるとフラッシュメモリの書き換えは完了です。次回起動時から書き換えたブートローダーイメージで起動します。