Armadillo-IoT ゲートウェイ G4で故障かな?と思った時の確認手順を説明します。
確認は下の図のような流れで行ないます。
目次
1. 準備
1-1. Armadillo-IoT ゲートウェイ G4と作業用PCをシリアル通信用USBケーブル(A-microB)で接続する
以下の接続例を参考に、Armadillo-IoT ゲートウェイ G4のCON9と作業用PCをシリアル通信用USBケーブル(A-microB)で接続します。 また、「SDブート用のmicroSDカードを作成する」で作成したmicroSDカードをmicroSDスロット(CON1)に挿入します。
1-2. 作業用PCがUSBシリアル変換ICを認識していることを確認する
作業用PCがWindowsの場合、「Armadillo-IoT ゲートウェイ G4のUSBコンソール向けデバイスドライバをWindowsにインストールする方法」を参照してUSBシリアル変換ICのドライバを作業用PCにインストールし、シリアルポートとして認識されていることを確認した上で「作業用PCにATDEをインストールする」以降の手順を実行してください。
Armadillo-IoT ゲートウェイ G4に搭載されているUSBシリアル変換ICのドライバがインストールされていない場合、Armadillo-IoT ゲートウェイ G4と作業用PCをシリアル通信用USBケーブル(A-microB)で接続してもシリアルポートとして認識せず、ATDEでも使用できない場合があります。
作業用PCがLinuxであり、Linuxカーネルのバージョン3.x.x以降である場合は当該のUSBシリアル変換ICのドライバが組み込まれているため、この作業は基本的に必要ありません。
接続後に以下のコマンドを実行して正しく認識されていることを確認し、「作業用PCにATDEをインストールする」に進んでください。
[PC ~/]$ lsusb | grep CP210x
Bus 002 Device 008: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
ドライバをインストールしたにも関わらず、作業用PCがUSBシリアル変換ICを認識しない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。
1-3. 作業用PCにATDEをインストールする
作業用PCにATDEをインストールします。
インストールの手順は「Armadillo-IoT ゲートウェイ G4 製品マニュアル 開発/動作確認環境の構築」を参照してください。
1-4. SDブート用のmicroSDカードを作成する
本FAQでは、標準イメージが書き込まれたmicroSDからSDブートすることで問題の切り分けを行なっていくため、予めSDブート用のmicroSDを作成します。
「Armadillo-IoT ゲートウェイ G4 製品マニュアル SDブートの活用」の"ブートディスクの作成"を参照し、最新の標準イメージを用いてSDブート用のmicroSDを作成してください。
1-5. ATDEでシリアル通信ソフトウェアを起動する
Armadillo-IoT ゲートウェイ G4とシリアル通信を行なうために、ATDEでminicom
を起動します。minicom
は端末内で動作するシリアル通信ソフトウェアです。
minicom
の起動方法と設定については「Armadillo-IoT ゲートウェイ G4 製品マニュアル シリアル通信ソフトウェア(minicom)の使用」を参照してください。
もしATDEでシリアルポートが使用できない場合は、「FAQ : ATDEでシリアルポートが使用できません」を参照してください。
2. ACアダプタの確認
Armadillo-IoT ゲートウェイ G4の電源投入前に、ACアダプタがArmadillo-IoT ゲートウェイ G4で使用できるものか確認します。
Armadillo-IoT ゲートウェイ G4 付属のACアダプタを使用している場合は問題ありません。
そうでない場合は以下の表を参照してACアダプタが適切であるか確認してください。
出力電圧 | 出力電流 | プラグ形状 | 極性マーク | 対応ACアダプタ |
---|---|---|---|---|
12V | 3.0A以上 | 外径: 5.5mm 内径: 2.1mm |
OP-AC12V6-00 (3.0A) |
3. ハードウェアの確認
起動出来ない原因がハードウェアかソフトウェアかを判断するために、Armadillo-IoT ゲートウェイ G4のブートローダーであるU-BootをmicroSDカードから起動させます。
3-1. SDブートを行なう
まず、JP1をショートに設定します。
次に、最初に作成したmicroSDカードがmicroSDスロット(CON1)に挿入されていることを確認し、Armadillo-IoT ゲートウェイ G4にACアダプタを接続します。
3-2. LED4の点灯確認
電源投入後にLED4が点灯することを確認してください。
LED4の位置は「Armadillo-IoT ゲートウェイ G4 製品マニュアル インターフェースレイアウト(ケース内部)」を参照してください。
電源を投入してもLED4が点灯しない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。
3-3. SDブートの起動確認
SDブートが成功すると以下のように起動メッセージが表示されます。
U-Boot SPL 2020.04-at6 (Apr 27 2022 - 15:02:58 +0900)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
image offset 0x8000, pagesize 0x200, ivt offset 0x0
NOTICE: BL31: v2.4(release):
NOTICE: BL31: Built : 15:06:15, Apr 27 2022
U-Boot 2020.04-at6 (Apr 27 2022 - 15:02:58 +0900)
CPU: i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 31C
Model: Atmark-Techno Armadillo X2 Series
DRAM: Hold key pressed for tests: t (fast) / T (slow)
2 GiB
WDT: Started with servicing (10s timeout)
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF
- U-Boot 2020.04-at6
reset cause: watchdog
log_wdt_reset() reset by wdt
### Warning: temperature compensation has stopped
### Warning: Voltage low, data is invalid
Could not get time: invalid date will be used in logs
Could not switch mmc 2 to part 5
** Unable to write file /atlog **
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Net:
eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Saving Environment to MMC... Writing to MMC(1)... OK
Normal Boot
Hit any key to stop autoboot: 0
u-boot=>
「Hit any key to stop autoboot:」のカウントダウンが0になる前に何かキーを押下することでU-Bootのプロンプトが表示されます。
u-boot=>
正しく起動メッセージとプロンプトが表示された場合、eMMC上のソフトウェアの不具合である可能性があります。 ACアダプタを外し、JP1をオープンに設定して「U-Bootイメージの確認」に進んでください。
プロンプトが表示されない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。
4. U-Bootイメージの確認
eMMCに書き込まれているU-Bootを起動できるか確認します。
JP1がオープンに設定されていることを確認し、ACアダプタを接続してください。 正しく起動すると以下のようにU-Bootの起動メッセージとプロンプトが表示されます。
U-Boot SPL 2020.04-at6 (Mar 25 2022 - 08:09:26 +0000)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE: BL31: v2.4(release):lf-5.10.y-1.0.0-0-gba76d337e
NOTICE: BL31: Built : 03:47:11, Dec 21 2021
U-Boot 2020.04-at6 (Mar 25 2022 - 08:09:26 +0000)
CPU: i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 44C
Model: Atmark-Techno Armadillo X2 Series
DRAM: Hold key pressed for tests: t (fast) / T (slow)
2 GiB
WDT: Started with servicing (10s timeout)
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF ba76d33
- U-Boot 2020.04-at6
reset cause: normal reboot
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:
eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Saving Environment to MMC... Writing to redundant MMC(2)... OK
Normal Boot
Hit any key to stop autoboot: 0
u-boot=>
起動メッセージとプロンプトが正しく表示された場合、eMMC上のU-Bootイメージに問題はありません。「Linuxイメージの確認」へ進んでください。
プロンプトが表示されない場合はeMMCに書き込まれているU-Bootに問題がある可能性があります。 「不具合箇所が特定できた場合は?」を参照してください。
5. Linuxイメージの確認
Linuxの起動を確認します。
5-1. Linuxシステムの起動確認
U-Bootのプロンプトでboot
コマンドを実行しLinuxシステムを起動してください。
=> boot
boot
コマンド実行後に以下のログインプロンプトが表示されるか確認してください。
表示された場合はログインプロンプトが表示された場合へ、表示されない場合はログインプロンプトが表示されない場合へ進んでください。
armadillo login:
5-1-1. ログインプロンプトが表示された場合
一度も再起動せずに起動ログが表示され、以下のようにログインプロンプトが表示された場合はお使いのArmadillo-IoT ゲートウェイ G4の起動に関しては問題はないようです。
他に不具合が見られる場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
ログインプロンプトは出ても、その際に自動的に再起動が挟まる場合は、ロールバックが起こった可能性があります。
その場合はハードウェアの故障ではなく、お使いのカーネルイメージかDTBファイルが破損しているか起動できないイメージである可能性が高いです。
「ロールバックからの復旧」を行なってください。
5-1-2. ログインプロンプトが表示されない場合
ログインプロンプトまでたどり着けず、再起動を何度も繰り返す場合は、一度ロールバックしてアップデート前のルートファイルシステムで起動したことに気づかず、起動できない独自のアップデートを再度施してしまい、A/B面どちらのルートファイルシステムにおいても起動できずにロールバックで無限ループとなってしまう状態に陥ることがあります。
その場合はインストールディスクを使用してイメージを書き直す必要がありますので、「インストールディスクを用いて初期化を行なう」に進んでください。
一度も再起動せず、ログインプロンプトにもたどり着けない場合は、お客様がソフトウェアに加えた変更点が原因で起動できない可能性が高いです。
この場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
5-2. ロールバックからの復旧
Armadillo-IoT ゲートウェイ G4では、eMMCに書き込まれているカーネルイメージファイルまたはDTBファイルの問題によってLinuxの起動に失敗した場合、ロールバックが起こりアップデート前の状態のルートファイルシステムで起動します。
ロールバックが発生したかどうかは、ログイン後に以下のコマンドを実行することで確認できます。
[armadillo ~/]# abos-ctrl status
Currently booted on /dev/mmcblk2p1
WARNING: Currently running on non-latest version (expected /dev/mmcblk2p2 installed on Mon Apr 28 15:39:42 JST 2022)
rollback-status: rolled back
rollback-status
がrolled back
となっている場合はロールバック機能が働いて、アップデート前のルートファイルシステムで起動しています。
ロールバックが発生したかどうかは上記コマンド以外にも起動ログやat-logなどからも確認できます。 詳しくは「Armadillo-IoT ゲートウェイ G4 製品マニュアル ロールバック状態の確認」を参照してください。
初めてロールバックした際には上記コマンド実行例のように起動可能なアップデート前のルートファイルシステムで起動しているはずです。
この場合は「起動できなかったルートファイルシステムを修正する」に進んでください。
5-2-1. 起動できなかったルートファイルシステムを修正する
アップデート前のルートファイルシステムから以下のコマンドを実行することで、/target
ディレクトリにアップデート後の起動しなかったルートファイルシステムをマウントすることができます。
[armadillo ~/]# abos-ctrl mount-old && mount -o remount,rw /target
実行後に、/target
ディレクトリ以下のファイルを修正してください。
修正後は以下のコマンドを実行することで、修正した方のルートファイルシステムで起動を試みます。
[armadillo ~/]# abos-ctrl rollback
[armadillo ~/]# reboot
再起動時に修正したルートファイルで正常に起動したならば不具合は修正されました。
正常に起動せず、再度ロールバックが起こってしまった場合は、正しく起動するまで同じ手順を繰り返して修正を行なってください。
「不具合箇所が特定できた場合は?」もあわせて参照してください。
5-3. インストールディスクを用いて初期化を行なう
A/B面共に起動しないイメージを書き込んでしまった場合は、インストールディスクを用いて初期化を行なうことになります。
注意点としまして、インストールディスクを用いた初期化を行なうと、ArmadilloのeMMCに書き込んだデータは全て消去されます。
必要であれば、インストールディスクを使用する前に「各イメージファイルのバックアップ手順」を参照してファイルのバックアップを行なってください。
インストールディスクの作成方法及び使用方法は「Armadillo-IoT ゲートウェイ G4 製品マニュアル Armadilloのソフトウェアの初期化」を参照してください。
初期化後はユーザーアプリケーションや各種イメージを修正し、Armadillo-IoT ゲートウェイ G4に書き込んで再度動作確認をしてください。
「不具合箇所が特定できた場合は?」もあわせて参照してください。
6. 不具合箇所が特定できた場合は?
ここまでの手順で不具合箇所が特定できた場合は、その部分を修正することで正常に動作するようになる可能性が高いです。 修正の際にご不明な点があれば、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
修正したにも関わらず起動しない場合は、再度本FAQの手順をやり直してください。
やり直しても正常に起動しない場合は、「Armadillo フォーラム」にてご質問いただくか、「問題が解決しなかった場合は?」を参照してください。
7. 問題が解決しなかった場合は?
本手順通りに作業を行ない問題が解決しない場合は、「製品保証規定」をご確認の上、「交換のお申込み」を行なってください。
Appendix. 各イメージファイルのバックアップ手順
eMMC上のイメージファイルのバックアップをとりたい場合の手順を紹介します。
バックアップするためにまず「SDブートを行なう」を参照してSDブートし、rootユーザでログインしてください。
以下のコマンドを実行することで、eMMC上のルートファイルシステムをマウントしてアクセスできるようになります。
以下の例ではeMMCの第1パーティション(/dev/mmcblk2p1
)をマウントしていますが、ロールバックの状態によっては第2パーティション(/dev/mmcblk2p2
)にバックアップしたいファイルが保存されている場合もありますので、適宜読み替えてください。
[armadillo ~]# mount /dev/mmcblk2p1 /mnt
[armadillo ~]# ls /mnt/
bin dev home live mnt proc run sys tmp var
boot etc lib lost+found opt root sbin target usr
これらをSDカードのルートファイルシステムや他のUSBメモリなどにコピーしてバックアップしてください。