本章では、Armadillo のオンボードフラッシュメモリを書き換える手順について説明します。
フラッシュメモリの書き換え方法には、大きくわけて2種類の方法があります。
作業用 PCで動作するダウンローダーから、ターゲットとなる Armadillo にイメージを送信して、フラッシュを書き換える方法
ターゲットとなる Armadillo 自身で、リモートサーバーからイメージファイルを取得してフラッシュを書き換える方法
まず、「ダウンローダーを使用してフラッシュメモリを書き換える」で、1. の方法について説明します。次に、「tftpdl を使用してフラッシュメモリを書き換える」および、「netflashを使用してフラッシュメモリを書き換える」で2. の方法について説明します。
| |
---|
何らかの原因により「フラッシュメモリの書き換え」に失敗した場合、ソフトウェアが正常に起動しなくなる場合があります。書き換えの際は次の点に注意してください。 ブートローダーの書き換えに失敗するなどして起動できなくなった場合は、「ブートローダーを出荷状態に戻す」の手順に従ってブートローダーを復旧してください。 |
フラッシュメモリの書き込み先頭アドレスは、リージョン(領域)名で指定することができます。各リージョンに指定するイメージファイルは、表6.1「リージョン名と対応するイメージファイル
」のようになります。
表6.1 リージョン名と対応するイメージファイル
製品 | リージョン名 | ファイル名 |
---|
Armadillo-420 ベーシックモデル | bootloader | loader-armadillo4x0-[version] .bin |
kernel | linux-a400-[version] .bin.gz |
userland | romfs-a420-[version] .img.gz |
Armadillo-440 ベーシックモデル | bootloader | loader-armadillo4x0-[version] .bin |
kernel | linux-a400-[version] .bin.gz |
userland | romfs-a420-[version] .img.gz |
Armadillo-420 WLANモデル(AWL13対応) | bootloader | loader-armadillo4x0-[version] .bin |
kernel | linux-a400-wlan-[version] .bin.gz |
userland | romfs-a420-wlan-awl13-[version] .img.gz |
Armadillo-440 WLANモデル(AWL13対応) | bootloader | loader-armadillo4x0-[version] .bin |
kernel | linux-a400-wlan-[version] .bin.gz |
userland | romfs-a420-wlan-awl13-[version] .img.gz |
Armadillo-440 液晶モデル | bootloader | loader-armadillo4x0-[version] .bin |
kernel | linux-a400-[version] .bin.gz |
userland | romfs-a440-[version] .img.gz |
Armadillo-410 液晶モデル | bootloader | loader-armadillo4x0-[version] .bin |
kernel | linux-a400-[version] .bin.gz |
userland | romfs-a440-[version] .img.gz |
| |
---|
全てのモデルでブートローダは共通のイメージファイルを使用します。Armadillo-420 ベーシックモデルとArmadillo-440 ベーシックモデルのカーネルおよびユーザーランドは共通のイメージファイルを使用します。Armadillo-420 WLANモデル(AWL13対応)とArmadillo-440 WLANモデル(AWL13対応)のカーネルおよびユーザーランドは共通のイメージファイルを使用します。Armadillo-440 液晶モデルとArmadillo-420 ベーシックモデルのカーネルは共通のイメージファイルを使用します。
|
各リージョンは、書き込みを制限することが可能です。書き込みを制限する理由は、誤動作や予期せぬトラブルにより、フラッシュメモリ上のデータが不意に破壊または消去されることを防ぐためです。
読み込みは、常時可能です。読み込みに制限を付けることはできません。
Linuxが起動している場合、リージョンへの書き込み制限はコマンドで変更することが可能です。変更は、Sysfsの MTDクラスディレクトリ以下にある"ro"というファイルに"0"または"1"を書き込むことで行います。各リージョンの書き込み制限を変更することで、bootloaderリージョンの書き換えを可能にしたり、kernelリージョンの書き換えを禁止したりすることができます。
各リージョンのデフォルト状態での書き込み制限の有無と、対応するMTDクラスディレクトリを以下に記載します。
表6.2 リージョンのデフォルト状態での書き込み制限の有無と対応するMTDクラスディレクトリ
リージョン | 書き込み制限 | MTDクラスディレクトリ |
---|
bootloader | あり | /sys/class/mtd/mtd0 |
kernel | なし | /sys/class/mtd/mtd1 |
userland | なし | /sys/class/mtd/mtd2 |
config | なし | /sys/class/mtd/mtd3 |
以降の説明では、任意のリージョンを示すMTDクラスディレクトリを"/sys/class/mtd/[MTD]"のように表記します。
書き込み制限を解除するには、roファイルに0を書き込みます。
書き込みを制限するには、roファイルに1を書き込みます。
作業用 PC にダウンローダーをインストールします。
ダウンローダーには、表6.3「ダウンローダー一覧」に示すように複数の種類があります。
表6.3 ダウンローダー一覧
ダウンローダー | OSタイプ | 説明 |
---|
Hermit-At ダウンローダー | Linux | Linux用のCUIアプリケーションです。 |
Shoehorn-At | Linux | Linux用のCUIアプリケーションです。 |
Hermit-At Win32 | Windows | Windows用のGUIアプリケーションです。 |
| |
---|
ATDE (Atmark Techno Development Environment) を利用する場合、ダウンローダーパッケージはすでにインストールされているので、インストールする必要はありません。
|
付属 DVD のダウンローダーディレクトリ (downloader/
) 以下の deb パッケージディレクトリ (deb/
)よりパッケージファイルを取得し、インストールします。
付属 DVD のダウンローダーディレクトリ (downloader/
) 以下の win32 ディレクトリ (win32/
) にある hermit-at-win_[version]
.zip
を任意のフォルダに展開します。
6.3. ダウンローダーを使用してフラッシュメモリを書き換える
ここでは、Hermit-At ダウンローダーおよび Hermit-AT Win32を使用してフラッシュメモリを書き換える手順について説明します。
Hermit-At ダウンローダーおよび Hermit-AT Win32は、Armadillo のブートローダーと協調動作を行い、作業用 PC から Armadillo のフラッシュメモリを書き換えることができます。
表3.11「ジャンパの設定」を参照しジャンパを適切に設定したあと Armadillo に電源を投入し、保守モードで起動してください。
Armadillo と接続している作業用 PC のシリアルインターフェースが他のアプリケーションで使用されていないことを確認してください。使用されている場合は、該当アプリケーションを終了するなどしてシリアルインターフェースを開放してください。
6.3.2. 作業用 PC が Linux の場合
作業用 PC が Linux の場合、hermit コマンドを使用し、図6.4「ダウンロードコマンド」のようにコマンドを実行します。
download
は hermit コマンドのサブコマンドの1つです。--input-file
で指定されたファイルをターゲットボードに書き込む時に使用します。--region
は書き込み対象のリージョンを指定するオプションです。下記の例では、「kernel リージョンに linux.bin.gz を書き込む」という指示になります。
シリアルインターフェースが /dev/ttyS0 以外の場合は、図6.5「ダウンロードコマンド(ポート指定)」のように--port
オプションを使用してポートを指定してください。
bootloaderリージョンは、誤って書き換えることがないように簡易プロテクトされています。書き換える場合は、図6.6「ダウンロードコマンド(アンプロテクト)」のように--force-locked
オプションを使用して、プロテクトを解除してください[]。
| |
---|
bootloaderリージョンに誤ったイメージを書き込んでしまった場合、オンボードフラッシュメモリからの起動ができなくなります。この場合は「ブートローダーを出荷状態に戻す」を参照してブートローダーを復旧してください。
|
作業用 PC が Windows の場合、hermit.exe
を実行すると、図6.7「Hermit-At Win32:Downloadウィンドウ」が表示されます。
Armadilloと接続されているシリアルインターフェースを「Serial Port」に指定してください。ドロップダウンリストに表示されない場合は、直接ポート名を入力してください。
Imageには書き込むファイルを、Regionには書き込み対象のリージョンを指定してください。allやbootloaderリージョンを指定する場合は、Force Lockedをチェックする必要があります。
すべて設定してから実行ボタンをクリックすると、書き込みが開始されます。書き込み中は、図6.8「Hermit-At Win32:downloadダイアログ」が表示され、ダウンロードの設定と進捗状況を確認することができます。
ダウンロードが完了すると、ダイアログはクローズされます。
| |
---|
bootloaderリージョンにはブートローダーイメージの他にブートローダーのパラメータが保存されています。bootloaderリージョンへのブートローターイメージの書き込み行っただけでは、パラメータは書き換えられず、以前の設定が残ったままとなります。パラメータを初期状態に戻したい場合は、「ブートローダーのパラメータを出荷状態に戻す」に示す手順を実行してください。
|
6.4. tftpdl を使用してフラッシュメモリを書き換える
ここからは、Armadillo 自身でリモートサーバーからイメージファイルを取得してフラッシュメモリを書き換える方法について説明します。
Hermit-At ブートローダーの tftpdl 機能を使用することで、ダウンローダーを使用して書き込むよりも高速にフラッシュメモリを書き換えることができます。
tftpdl 機能は、所属するネットワークにある TFTP サーバーが公開しているファイルをダウンロードして、自分自身のフラッシュメモリを書き換えることができる機能です。
| |
---|
ATDE5は、標準で TFTP サーバー (atftpd) が動作しています。/var/lib/tftpboot/ ディレクトリにファイルを置くことで、TFTP によるアクセスが可能になります。 |
tftpdl 機能を使用するには、ターゲットとなる Armadillo のジャンパを設定し、保守モードで起動してください。
作業用 PC のシリアル通信ソフトウェアを使用して、コマンドを入力します。図6.9「tftpdl コマンド例」は、Armadillo の IP アドレスを 192.168.10.10 に設定し、IP アドレスが 192.168.10.1 の TFTP サーバー上にある、linux.bin.gz を kernel リージョンに書き込む例です。
書き込み対象には、ブートローダー、カーネル、ユーザーランドそれぞれのリージョンを指定することができます。
書き込むリージョンとオプションの対応を、表6.4「リージョンとオプションの対応」に示します。
表6.4 リージョンとオプションの対応
リージョン | オプション |
---|
ブートローダー | --bootloader |
カーネル | --kernel |
ユーザーランド | --userland |
6.5. netflashを使用してフラッシュメモリを書き換える
Linux が動作している状態では、Linux アプリケーションの netflash を使用することでフラッシュメモリを書き換えることができます。
netflash は、接続されているネットワーク内にある HTTP サーバーや FTP サーバーが公開しているファイルをダウンロードして、自分自身のフラッシュメモリを書き換えることができるコマンドです。
| |
---|
ATDE5は、標準で HTTP サーバー (lighttpd) が動作しています。/var/www/ ディレクトリにファイルを置くことで、HTTP によるアクセスが可能になります。 |
netflash を使用するには、Armadillo にログインし図6.10「netflashコマンド例」のようにコマンドを実行します。
オプションの"-r [デバイスファイル名]"で書き込み対象のリージョンを指定しています。表6.5「リージョンとデバイスファイルの対応」を参照してください。その他のオプションについては、netflash -hで詳細を確認する事ができます。
表6.5 リージョンとデバイスファイルの対応
リージョン | デバイスファイル |
---|
bootloader[] | /dev/flash/bootloader |
kernel | /dev/flash/kernel |
userland | /dev/flash/userland |
config | /dev/flash/config |
何らかの理由でブートローダーリージョンの内容が破壊されブートローダーが起動しなくなった場合、UART ブートモードを使用することでブートローダーを出荷状態に戻すことができます。
Armadillo のジャンパを、表3.11「ジャンパの設定」を参照し、UARTブートモードに設定してください。この時点では Armadillo は起動させないでください。
Armadillo と接続している作業用 PC のシリアルインターフェースが他のアプリケーションで使用されていないことを確認します。使用されている場合は、該当アプリケーションを終了するなどしてシリアルインターフェースを開放してください。
6.7. ブートローダーのパラメータを出荷状態に戻す
フラッシュメモリのbootloaderリージョンには、ブートローダーイメージの他にブートローダーのパラメータが保存されています。これは、Armadilloの再起動後も設定を有効にするためです。パラメータと初期設定の対応を、表6.6「ブートローダーのパラメータ」に示します。
表6.6 ブートローダーのパラメータ
パラメータ | 初期設定 | 説明 |
---|
Linuxカーネルパラメータ | 無し | Linuxカーネル起動時にカーネルに渡すパラメータ |
ブートデバイス | フラッシュメモリ | Linuxカーネルを格納しているデバイスを指定する |
ブートローダーのパラメータを出荷状態に戻すには、ターゲットとなる Armadillo のジャンパを設定し、保守モードで起動してください。
作業用PCのシリアル通信ソフトウェアを使用して、コマンドを入力します。Linuxカーネルパラメータを初期設定に戻すには、図6.21「Linuxカーネルパラメータを初期設定に戻す」のようにコマンドを実行してください。[]
ブートデバイスを初期設定のフラッシュメモリに戻すには、図6.22「ブートデバイスを初期設定に戻す」のようにコマンドを入力してください。[]