FAQ

故障かなと思ったら(Armadillo-IoT ゲートウェイ A6E)

Armadillo-IoT ゲートウェイ A6E で故障かな?と思った時の確認手順を説明します。

確認は下の図のような流れで行ないます。

本FAQは、電源、UART3(USBコンソールインターフェース)、uSDHC2(microSD)、uSDHC1(eMMC)のハードウェアの不具合、またはeMMC上のイメージファイルが原因でArmadilloが正しく起動しない方に向けて、起動するイメージファイルをSDブートを用いて切り替えながら問題の切り分けを行なっていく手順を紹介しています。 これに該当しない方は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。

本FAQではmicroSDカードを使用します。microSDカードを用意してください。

目次

  1. 準備
  2. ACアダプタの確認
  3. ハードウェアの確認
  4. U-Bootイメージの確認
  5. Linuxイメージの確認
  6. 不具合箇所が特定できた場合は?
  7. 問題が解決しなかった場合は?

1. 準備

1-1. Armadillo-IoT ゲートウェイ A6Eと作業用PCをシリアル通信用USBケーブル(A-microB)で接続する

以下の接続例を参考に、Armadillo-IoT ゲートウェイ A6EのCON7と作業用PCをシリアル通信用USBケーブル(A-microB)で接続します。 また、「SDブート用のmicroSDカードを作成する」で作成したmicroSDカードをmicroSDスロット(CON1)に挿入します。

microSDカードをmicroSDスロット(CON1)に挿入するためには、ケースを分解する必要があります。分解方法については「Armadillo-IoT A6E SDカード着脱方法」をご確認ください。

1-2. 作業用PCがUSBシリアル変換ICを認識していることを確認する

作業用PCがWindowsの場合、「Armadillo-IoT ゲートウェイ G4/A6EのUSBコンソール向けデバイスドライバをWindowsにインストールする方法」を参照してUSBシリアル変換ICのドライバを作業用PCにインストールし、シリアルポートとして認識されていることを確認した上で「作業用PCにATDEをインストールする」以降の手順を実行してください。
Armadillo-IoT ゲートウェイ A6Eに搭載されているUSBシリアル変換ICのドライバがインストールされていない場合、Armadillo-IoT ゲートウェイ A6Eと作業用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 ゲートウェイ A6E 製品マニュアル 開発/動作確認環境の構築」を参照してください。

Armadillo-IoT ゲートウェイ A6Eに対応したATDEはATDE9です。

1-4. SDブート用のmicroSDカードを作成する

本FAQでは、標準イメージが書き込まれたmicroSDからSDブートすることで問題の切り分けを行なっていくため、予めSDブート用のmicroSDを作成します。

Armadillo-IoT ゲートウェイ A6E 製品マニュアル SDブートの活用」の"ブートディスクの作成"を参照し、最新の標準イメージを用いてSDブート用のmicroSDを作成してください。

1-5. ATDEでシリアル通信ソフトウェアを起動する

Armadillo-IoT ゲートウェイ A6Eとシリアル通信を行なうために、ATDEでminicomを起動します。minicomは端末内で動作するシリアル通信ソフトウェアです。 minicomの起動方法と設定については「Armadillo-IoT ゲートウェイ A6E 製品マニュアル シリアル通信ソフトウェア(minicom)の使用」を参照してください。

もしATDEでシリアルポートが使用できない場合は、「FAQ : ATDEでシリアルポートが使用できません」を参照してください。

2. ACアダプタの確認

Armadillo-IoT ゲートウェイ A6Eの電源投入前に、ACアダプタがArmadillo-IoT ゲートウェイ A6Eで使用できるものか確認します。
Armadillo-IoT ゲートウェイ A6E 付属のACアダプタを使用している場合は問題ありません。
そうでない場合は以下の表を参照してACアダプタが適切であるか確認してください。

出力電圧 出力電流 プラグ形状 極性マーク 対応ACアダプタ
12V 2.0A以上 外径: 5.5mm
内径: 2.1mm
ac-adapter OP-AC12V4-00 (2.0A)
可能であればテスターなどで、ACアダプタの出力電圧が適切であることを確認してください。

3. ハードウェアの確認

起動出来ない原因がハードウェアかソフトウェアかを判断するために、Armadillo-IoT ゲートウェイ A6EのブートローダーであるU-BootをmicroSDカードから起動させます。

3-1. SDブートを行なう

起動デバイス設定スイッチ(SW2)を以下の図②のように設定した状態としてください。

最初に作成したmicroSDカードをmicroSDスロット(CON1)に挿入されていることを確認し、Armadillo-IoTゲートウェイ A6EにACアダプタを接続します。

3-2. システムLED の点灯確認

電源投入直後にシステムLEDが点灯することを確認してください。 システムLEDの位置は「Armadillo-IoT ゲートウェイ A6E 製品マニュアル インターフェースレイアウト」を参照してください。

電源を投入してもシステムLEDが点灯しない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。

3-3. SDブートの起動確認

SDブートが成功すると起動メッセージが表示されます。 SDブートが成功すると以下のように起動メッセージが表示されます。

U-Boot 2020.04 (Oct 25 2022 - 10:37:29 +0900)
CPU: i.MX6ULL rev1.1 at 396 MHz
Model: Atmark Techno Armadillo-IoT Gateway A6E Board
DRAM: 512 MiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Saving Environment to MMC... Writing to redundant MMC(1)... OK
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Net:
Warning: ethernet@2188000 using MAC address from ROM
eth0: ethernet@2188000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
11660400 bytes read in 524 ms (21.2 MiB/s)
Booting from mmc ...
38603 bytes read in 22 ms (1.7 MiB/s)
Loading fdt boot/armadillo.dtb
## Booting kernel from Legacy Image at 80800000 ...
...中略...

正しく起動メッセージとプロンプトが表示された場合、eMMC上のソフトウェアの不具合である可能性があります。 ACアダプタを外し、「U-Bootイメージの確認」に進んでください。

プロンプトが表示されない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。

4. U-Bootイメージの確認

eMMCに書き込まれているU-Bootを起動できるか確認します。

起動デバイス設定スイッチ(SW2)を以下図①のように設定した状態としてください。

その後、ACアダプタを接続してください。 正しく起動すると以下のようにU-Bootの起動メッセージとプロンプトが表示されます。

U-Boot 2020.04-at10(Oct 04 2022 - 11:22:32 +0900)
CPU: i.MX6ULL rev1.1 at 396 MHz
Model: Atmark Techno Armadillo-IoT Gateway A6E
DRAM: 512 MiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Saving Environment to MMC... Writing to MMC(1)... OK
switch to partitions #0, OK
mmc1 is current device
Net:
Warning: ethernet@2188000 using MAC address from ROM
eth0: ethernet@2188000
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
11659840 bytes read in 518 ms (21.5 MiB/s)
Booting from mmc ...
38603 bytes read in 21 ms (1.8 MiB/s)
Loading fdt boot/armadillo.dtb
43 bytes read in 14 ms (2.9 KiB/s)
1789 bytes read in 18 ms (96.7 KiB/s)
Applying fdt overlay: armadillo-iotg-a6e-ems31.dtbo
## Booting kernel from Legacy Image at 80800000 ...
...中略...

起動メッセージとプロンプトが正しく表示された場合、eMMC上のU-Bootイメージに問題はありません。「Linuxイメージの確認」へ進んでください。

プロンプトが表示されない場合はeMMCに書き込まれているU-Bootに問題がある可能性があります。 「不具合箇所が特定できた場合は?」を参照してください。

5. Linuxイメージの確認

Linuxの起動を確認します。

5-1. Linuxシステムの起動確認

ACアダプタ接続後、以下のログインプロンプトが表示されるか確認してください。
表示された場合はログインプロンプトが表示された場合へ、表示されない場合はログインプロンプトが表示されない場合へ進んでください。

armadillo login:

5-1-1. ログインプロンプトが表示された場合

一度も再起動せずに起動ログが表示され、以下のようにログインプロンプトが表示された場合はお使いのArmadillo-IoT ゲートウェイ A6Eの起動に関しては問題はないようです。
他に不具合が見られる場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。

ログインプロンプトは出ても、その際に自動的に再起動が挟まる場合は、ロールバックが起こった可能性があります。
その場合はハードウェアの故障ではなく、お使いのカーネルイメージかDTBファイルが破損しているか起動できないイメージである可能性が高いです。
ロールバックからの復旧」を行なってください。

5-1-2. ログインプロンプトが表示されない場合

ログインプロンプトまでたどり着けず、再起動を何度も繰り返す場合は、一度ロールバックしてアップデート前のルートファイルシステムで起動したことに気づかず、起動できない独自のアップデートを再度施してしまい、A/B面どちらのルートファイルシステムにおいても起動できずにロールバックで無限ループとなってしまう状態に陥ることがあります。
その場合はインストールディスクを使用してイメージを書き直す必要がありますので、「インストールディスクを用いて初期化を行なう」に進んでください。

一度も再起動せず、ログインプロンプトにもたどり着けない場合は、お客様がソフトウェアに加えた変更点が原因で起動できない可能性が高いです。
この場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。

5-2. ロールバックからの復旧

Armadillo-IoT ゲートウェイ A6Eでは、eMMCに書き込まれているカーネルイメージファイルまたはDTBファイルの問題によってLinuxの起動に失敗した場合、ロールバックが起こりアップデート前の状態のルートファイルシステムで起動します。

ロールバックが発生したかどうかは、ログイン後に以下のコマンドを実行することで確認できます。

[armadillo ~/]# abos-ctrl status
Currently booted on /dev/mmcblk0p1
WARNING: Currently running on non-latest version (expected /dev/mmcblk0p2 installed on Mon Apr 28 15:39:42 JST 2022)
rollback-status: rolled back

rollback-statusrolled backとなっている場合はロールバック機能が働いて、アップデート前のルートファイルシステムで起動しています。

ロールバックが発生したかどうかは上記コマンド以外にも起動ログやat-logなどからも確認できます。 詳しくは「Armadillo-IoT ゲートウェイ A6E 製品マニュアル ロールバック状態の確認」を参照してください。

初めてロールバックした際には上記コマンド実行例のように起動可能なアップデート前のルートファイルシステムで起動しているはずです。
この場合は「起動できなかったルートファイルシステムを修正する」に進んでください。

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 ゲートウェイ A6E 製品マニュアル Armadilloのソフトウェアの初期化」を参照してください。

初期化後はユーザーアプリケーションや各種イメージを修正し、Armadillo-IoT ゲートウェイ A6Eに書き込んで再度動作確認をしてください。

不具合箇所が特定できた場合は?」もあわせて参照してください。

6. 不具合箇所が特定できた場合は?

ここまでの手順で不具合箇所が特定できた場合は、その部分を修正することで正常に動作するようになる可能性が高いです。 修正の際にご不明な点があれば、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。

修正したにも関わらず起動しない場合は、再度本FAQの手順をやり直してください。

やり直しても正常に起動しない場合は、「Armadillo フォーラム」にてご質問いただくか、「問題が解決しなかった場合は?」を参照してください。

7. 問題が解決しなかった場合は?

本手順通りに作業を行ない問題が解決しない場合は、「製品保証規定」をご確認の上、「交換のお申込み」を行なってください。

Appendix. 各イメージファイルのバックアップ手順

eMMC上のイメージファイルのバックアップをとりたい場合の手順を紹介します。

バックアップするためにまず「SDブートを行なう」を参照してSDブートし、rootユーザでログインしてください。

以下のコマンドを実行することで、eMMC上のルートファイルシステムをマウントしてアクセスできるようになります。
以下の例ではeMMCの第1パーティション(/dev/mmcblk2p1)をマウントしていますが、ロールバックの状態によっては第2パーティション(/dev/mmcblk2p2)にバックアップしたいファイルが保存されている場合もありますので、適宜読み替えてください。

[armadillo ~]# mount /dev/mmcblk0p1 /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メモリなどにコピーしてバックアップしてください。