付録A Hermit-At ブートローダー

Hermit-At は、アットマークテクノ製品に採用されている高機能ダウンローダー兼ブートローダー[12]です。Armadillo を保守モードで起動すると、Hermit-At ブートローダーのプロンプトが表示されます。プロンプトからコマンドを入力することにより、フラッシュメモリの書き換えや、Linux カーネルパラメーターの設定等 Hermit-At ブートローダーの様々な機能を使用することができます。ここでは、代表的な機能について説明します。

[ティップ]Hermit-ATのモード

Hermit-ATには、2つのモードがあります。コマンドプロンプトを表示して対話的に動作する「対話モード」と、Hermit-ATダウンローダと通信するための「バッチモード」です。バッチモードではコマンドプロンプトの表示や入力した文字の表示を行いませんが、コマンドの実行は可能です。

起動直後のHermit-ATは必ず対話モードになっています。対話モードからバッチモードに移行するにはチルダ「~」を、バッチモードから対話モードに移行するにはエクスクラメーションマーク「!」を入力します。

Hermit-ATダウンローダと通信を行った場合は、バッチモードに移行します。これは通信を確立するためにHermit-ATダウンローダがチルダを送信するためです。

対話モードからバッチモードに移行したり、バッチモード中に入力したコマンドが成功した場合などは以下のように表示されます。

+OK

A.1. version

バージョン情報を表示するコマンドです。

構文:version

図A.1 version 構文


A.1.1. version 使用例

hermit> version
Hermit-At v3.0.0 (Armadillo-800 EVA) compiled at 22:22:10, Dec 21 2011

図A.2 version の使用例


A.2. info

ボード情報を表示するコマンドです。

構文:info

図A.3 info 構文


A.2.1. info 使用例

hermit> info
   Board Type: 0x08000000
     Revision: 0x00000003
          Lot: 0x00000001
Serial Number: 0
    Boot Mode: 0x00000038 (eMMC)
       Jumper: ON
      Tact-SW: OFF,OFF,OFF,OFF
 ORIG MAC-1: 00:11:0c:00:00:00

図A.4 info の使用例


A.3. mac

MAC アドレスを表示するコマンドです。

構文:mac

図A.5 mac 構文


A.3.1. mac 使用例

hermit> mac
00:11:0c:00:00:00

図A.6 mac の使用例


A.4. setenv と clearenv

Linux カーネルパラメーターを設定するコマンドです。setenv で設定されたパラメータは、Linux カーネルブート時にカーネルに渡されます。clearenv を実行すると、設定がクリアされます。このパラメータは、内蔵ストレージに保存され再起動後も設定は有効となります。

構文:setenv [カーネルパラメーター]...
説明:カーネルパラメーターを設定します。オプションを指定せずに実行すると、現在の設定を表示します。

構文:clearenv
説明:設定されているオプションをクリアします。

図A.7 setenv/clearenv 構文


A.4.1. setenv/clearenv 使用例

hermit> setenv console=ttySC1,115200
hermit> setenv
1: console=ttySC1,115200
hermit> clearenv
hermit> setenv
hermit>

図A.8 setenv と clearenv の使用例


A.4.2. Linux カーネルパラメーター

Linux カーネルパラメーターの例を、表A.1「よく使用されるLinuxカーネルパラメーター」に示します。この他のオプションについては、linux-2.6/Documentation/kernel-parameters.txtを参照してください。

表A.1 よく使用されるLinuxカーネルパラメーター

オプション説明
consoleカーネルコンソールとして使用するデバイスを指示します。
rootルートファイルシステム関連の設定を指示します。
rootdelayルートファイルシステムをマウントする前に指定秒間待機します。
rootwaitルートファイルシステムがアクセス可能になるまで待機します。
noinitrdカーネルが起動した後に initrd データがどうなるのかを指示します。
nfsrootNFSを使用する場合に、ルートファイルシステムの場所やNFSオプションを指示します。

A.5. setbootdevice

Linux カーネルを格納しているブートデバイスを指定するコマンドです。この設定は内蔵ストレージに保存され、再起動後も設定は有効となります。

構文:setbootdevice mmcblk0pN
説明:内蔵ストレージのパーティションNの /boot/ ディレクトリに置かれたカーネルイメージを RAM に展開してブートします

構文:setbootdevice mmcblk1pN
説明:SDカード(CON7)のパーティションNの /boot/ ディレクトリに置かれたカーネルイメージを RAM に展開してブートします

図A.9 setbootdevice 構文


A.5.1. setbootdevice の使用例

内蔵ストレージのパーティション4の/boot/ ディレクトリに置かれたカーネルイメージでブートするには、図A.10「ブートデバイスに内蔵ストレージのパーティション4を指定する」のようにコマンドを実行します。

hermit> setbootdevice mmcblk0p4

図A.10 ブートデバイスに内蔵ストレージのパーティション4を指定する


SD カード(CON7)のパーティション 1 に格納されたカーネルイメージでブートするには、図A.11「ブートデバイスにSD カードを指定する」のようにコマンドを実行します。

hermit> setbootdevice mmcblk1p1

図A.11 ブートデバイスにSD カードを指定する


A.6. frob

指定したアドレスのデータを読み込む、または、変更することができるモードに移行するコマンドです。

表A.2 frob コマンド

frobコマンド説明
peek [addr]指定されたアドレスから32bitのデータを読み出します。
peek16 [addr]指定されたアドレスから16bitのデータを読み出します。
peek8 [addr]指定されたアドレスから8bitのデータを読み出します。
poke [addr] [value]指定されたアドレスに32bitのデータを書き込みます。
poke16 [addr] [value]指定されたアドレスに16bitのデータを書き込みます。
poke8 [addr] [value]指定されたアドレスに8bitのデータを書き込みます。

A.7. boot

setbootdevice で指定されたブートデバイスから Linux カーネルをブートするコマンドです。

構文:boot

図A.12 boot 構文


A.7.1. boot 使用例

hermit> boot
mmcsd: SD card at address 0x00000001
mmcsd: M8G2FA 1048576KiB
gendisk: /dev/mmcblk0p4: start=0x000f4280, size=0x001dcdc0
gendisk: Image.bin is found. (4390496 Bytes)
Copying        kernel...done.                                                1
Doing console=ttySC1,115200
Doing noinitrd
Doing rootwait
Doing root=/dev/mmcblk0p4
Doing init=/init                                                             2
Linux version 2.6.35.7 (atmark@atde4) (gcc version 4.4.5 (Debian 4.4.5-8) )
 #1 PREEMPT Wed Dec 21 22:37:47 JST 2011                                     3
CPU: ARMv7 Processor [412fc093] revision 3 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Armadillo-800EVA
    :
    :

図A.13 boot の使用例


1

カーネルイメージ RAM 上に展開しています。

2

setenv でカーネルパラメーターを設定している場合、ここで表示されます。ここまでは Hermit-At が表示しています。

3

カーネルがブートされ、カーネルの起動ログが表示されます。



[12] Armadillo-800 EVAでは、Hermit-Atのブートローダー機能のみ利用可能です。