5.2 正常に起動しない場合の対処 #
エッジゲートウェイのアプリケーションを開発する上で、ユーザーがインストールしたアプリケーションが必要となる場合があります。状況によってはLinuxが起動しない状態になることも考えられます。
エッジゲートウェイには冗長領域があるため、万が一起動しない状態に陥った場合は、ブートローダーで起動エリアを切り替えて起動することが可能です。
サンプルケースについて
この節で想定しているサンプルケースでは、以下の流れで問題に対処しています。
- エリア0とエリア1は、当初、同じ構成で運用されていた。
- エリア0上でアプリケーションを開発する過程で、エリア0側が正常に起動しなくなった。
- エリア0をエリア1と同じ構成に戻すことで復旧させる。
5.2.1 Step1.ブートローダー上の起動エリアの切り替え #
ブートローダーで起動エリアを切り替えることができます。シリアルコンソール上で設定してください。
U-Bootコマンドモードで起動する
電源を接続する前に、DIPスイッチで「U-Bootコマンドモード」に設定し、電源を接続します。
U-BootコマンドモードのDIPスイッチ設定
補足: No.4のDIPスイッチは、ONでもOFFでも構いません。ブートローダーでは参照しません(アプリケーション側でのみ使用します)。
電源を入れると、以下のパスワード入力画面(入力期間:10秒)になりますので、パスワードを入力し、Enterキーを押してログインしてください。
実行環境: エッジゲートウェイ
TIM-1.0
WTMI-devel-18.12.1-118f0bd
WTMI: system early-init
SVC REV: 5, CPU VDD voltage: 1.108V
(略)
STATUS:SN=[300002],MAC0=[E8:1B:4B:00:30:02],BS=[a:0 b:385 h:0 s:0],DIPBM=[ubootcommand]
am_show_board_status: CNTFRQ_EL0=12500000 Hz
Please enter password - autoboot in 10 sec... ←パスワード入力後、Enterキーを押す
Return to boot status(0x55) for login
Amnimo>> run stopwdt ←ウォッチドッグICにより数分経過するとリセットするため、操作に時間がかかる場合は、停止処理を実行してください。
Amnimo>>
補足: 初期パスワードについては、弊社サポートにご確認ください。
パスワードの入力の失敗は3回までです。3回以上失敗すると、Linux起動モードで起動します。
U-Bootで起動エリアを切り替える
ambootswコマンドを利用して、起動エリアを切り替えることができます。起動エリアを切り替えたあとに、resetコマンドで再起動します。
書式
ambootsw { get | set { 0 | 1 } }
設定項目
※1
Boot Area: AREA_NO
Boot Count: BOOT_COUNT
※2
| 項目 | 表示 | 内容 |
|---|---|---|
| AREA_NO | 0(1st Area) | エリア0 設定保存領域: /dev/mmcblk0boot0 rootfs: /dev/mmcblk0p1 userfs: /dev/mmcblk0p3 |
| 1(2nd Area) | エリア1 設定保存領域: /dev/mmcblk0boot1 rootfs: /dev/mmcblk0p2 userfs: /dev/mmcblk0p4 | |
| BOOT_COUNT | 数値 | 起動回数 |
※3
| 項目 | 内容 |
|---|---|
| AREA_NO | 起動エリアの番号を指定します。 |
実行例
実行環境: エッジゲートウェイ
Amnimo>> ambootsw get ←現在の起動エリアを確認
Boot Area : 0 (1st Area) ←エリア0
Boot Count : 385
Amnimo>> ambootsw set 1 ←起動エリアをエリア1に変更
Amnimo>> ambootsw get ←再度の起動エリアを確認
Boot Area : 1 (2nd Area) ←エリア1
Boot Count : 385
Linux起動モードで起動する
再起動する前に、DIPスイッチで「Linux起動コマンドモード」に設定し、再起動処理を行います。
Linux起動モードのDIPスイッチ設定
補足: No.4のDIPスイッチは、ONでもOFFでも構いません。ブートローダーでは参照しません(アプリケーション側でのみ使用します)。
実行環境: エッジゲートウェイ
Amnimo>> reset ←再起動
5.2.2 Step2. Linux起動後の起動エリアの確認 #
起動エリアは、Linux起動後に確認することができます。再起動したあとに、U-Boot側で設定した起動エリアになっていることを確認してください。
➜ 詳細については、『エッジゲートウェイシリーズ CLIユーザーズマニュアル』の『2.4.6 起動する冗長領域を設定する』もしくは『エッジゲートウェイシリーズ CLIユーザーズマニュアル』の『11.2.5 起動エリアを制御する』を参照してください。
実行例
amctrlコマンドの場合は、以下のように実行します。
実行環境: エッジゲートウェイ
admin@amnimo:~$ sudo amctrl boot
AREA: 1
amshの場合は、以下のように実行します。以下は、一般ユーザーモードでの実行例です。
実行モード: 一般ユーザーモード(amnimo$)/管理者モード(amnimo#)
実行環境: エッジゲートウェイ
amnimo$ show device boot
1
5.2.3 Step3.ファームエリアの同期 #
起動エリアのエリア1側で正常起動したことを確認できたため、エリア1側のファームウェアの内容をエリア0側に同期し、エリア0側を正常に起動するようにします。
➜ 詳細については、『エッジゲートウェイシリーズ CLIユーザーズマニュアル』の『2.4.5 ファームウェアの冗長エリアを同期する』を参照してください。
実行例
実行モード: 管理者モード(amnimo#)
実行環境: エッジゲートウェイ
エリア1の内容をエリア0に同期します。「y」を入力すると、エッジゲートウェイが再起動して同期が行われます。
amnimo# firmware area sync reboot to sync? (y/N): ←「y」キーに続けてEnterを入力再起動の後に、もう一度ログインし、起動エリアを確認します。
amnimo# show device boot次回の起動エリアを0に戻し、再起動します。
amnimo# device boot 0 ←起動エリアを0に戻す amnimo# reboot type soft ←ソフトウェアリブートを行う
注意: エリア同期では、同期先のエリア(この例ではエリア0)の rootfs 領域と userfs 領域の内容が削除され、エリア1と同じ内容になります。
補足: firmware area syncコマンドの実行をキャンセルするには、Enterを入力するか、「n」キーに続けてEnterを入力します。

補足: No.4のDIPスイッチは、ONでもOFFでも構いません。ブートローダーでは参照しません(アプリケーション側でのみ使用します)。
注意: エリア同期では、同期先のエリア(この例ではエリア0)の rootfs 領域と userfs 領域の内容が削除され、エリア1と同じ内容になります。