Armadillo-X2で故障かな?と思った時の確認手順を説明します。
確認は下の図のような流れで行います。
目次
1. 準備
1-1.Armadillo-X2と作業用PCのシリアルポート同士を接続する
以下の接続例を参考に、Armadillo-X2と作業用PCを接続します。
- Armadillo-X2 本体
- 作業用PC
- シリアル通信用 USB ケーブル(A-microB)
1-2. 作業用PCがUSBシリアル変換ICを認識していることを確認する
作業用PCがWindowsの場合
「[G4/A6E/X2] USBコンソール向けデバイスドライバをWindowsにインストールする方法」を参照してUSBシリアル変換ICのドライバを作業用PCにインストールし、シリアルポートとして認識されていることを確認した上で「作業用PCにATDEをインストールする」以降の手順を実施してください。
Armadillo-X2に搭載されているUSBシリアル変換ICのドライバがインストールされていない場合、Armadillo-X2と作業用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をインストールします。
インストールの手順は「製品マニュアル 開発環境のセットアップ」を参照してください。
1-4. SDブート用のmicroSDカードを作成する
本FAQでは、標準イメージが書き込まれたmicroSDからSDブートすることで問題の切り分けを行っていくため、予めSDブート用のmicroSDを作成します。
「製品マニュアル ブートディスクの作成」を参照し、最新の標準イメージを用いてSDブート用のmicroSDを作成してください。作成には1GB以上のmicroSDカードが必要になります。
1-5. ATDEでシリアル通信ソフトウェアを起動する
Armadillo-X2とシリアル通信を行うために、ATDEでminicom
を起動します。minicom
は端末内で動作するシリアル通信ソフトウェアです。
minicom
の起動方法と設定については「製品マニュアル シリアル通信ソフトウェア(minicom)の使用」を参照してください。
もしATDEでシリアルポートが使用できない場合は、「FAQ : ATDEでシリアルポートが使用できません」を参照してください。
2. ACアダプタの確認
Armadillo-X2の電源投入前に、お手元のACアダプタが使用可能であるか確認します。
Armadillo-X2付属のACアダプタを使用している場合は問題ありません。
そうでない場合は以下の表を参照してACアダプタが適切であるか確認してください。
出力電圧 | 出力電流 | プラグ形状 | 極性マーク | 対応ACアダプタ |
---|---|---|---|---|
12V | 3.0A以上 | 外径: 5.5mm 内径: 2.1mm |
OP-AC12V6-00 (3.0A) |
3. ハードウェアの確認
起動出来ない原因がハードウェアかソフトウェアかを判断するために、Armadillo-X2のブートローダーであるU-BootをmicroSDカードから起動させます。
3-1. SDブートを行う
これから示す手順にしたがって以下の接続例のとおりにケーブル・部品を取り付けてください。
- Armadillo-X2 本体
- AC アダプタ
- 作業用PC
- シリアル通信用 USB ケーブル(A-microB)
- microSD カード
- ジャンパーソケット
- LED4
まず、AC アダプタが接続されている場合は、これを取り外してください。
JP1をジャンパーソケットでショートさせます。 USBシリアル変換アダプタのスライドスイッチを図のように切り替えます。
次に、最初に作成したmicroSDカードをmicroSDスロット(CON1)に挿入します。
Armadillo-X2と作業用PCをUSB ケーブルで接続します。
最後にACアダプタを接続します。
3-2. LEDの点灯確認
電源投入後にLED4が点灯することを確認してください。LED4の位置は上図を参照してください。
電源を投入してもLED4が点灯しない場合は、Armadillo-X2のハードウェア的な不具合である可能性と、microSDカードのハードウェア的な不具合である可能性があります。別のmicroSDカードを使用しても同様の現象が発生する際は、「問題が解決しなかった場合は?」を参照してください。
3-3. SDブートの起動確認
SDブートが成功すると以下のように起動メッセージが表示されます。
起動メッセージの途中で「Hit any key to stop autoboot:
」のカウントダウンが0になる前に何かキーを押下して、U-Bootのプロンプト(以下の起動メッセージの末尾にあるu-boot=>
)が表示されるかどうかを確認してください。
U-Boot SPL 2020.04-at24 (Jun 25 2024 - 05:23:49 +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 0x8000, pagesize 0x200, ivt offset 0x0 NOTICE: BL31: v2.4(release):2020.04-at19 NOTICE: BL31: Built : 08:29:47, Dec 14 2023 U-Boot 2020.04-at24 (Jun 25 2024 - 05:23:49 +0000) CPU: i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz) CPU: Industrial temperature grade (-40C to 105C) at 30C 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 2020.04 - U-Boot 2020.04-at24 reset cause: first boot since power on switch to partitions #0, OK mmc1 is current device serial# changed: Clearing MAC addresses in env flash target is MMC:1 Net: eth0: ethernet@30be0000 [PRIME] Fastboot: Normal Normal Boot Hit any key to stop autoboot: 0 u-boot=>
正しく起動メッセージとプロンプトが表示された場合、発生している不具合の原因がeMMC上のソフトウェアである可能性があります。 続いて、「U-Bootイメージの確認」に進んでください。
プロンプトが表示されない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。
4. U-Bootイメージの確認
eMMCに書き込まれているU-Bootを起動できるか確認します。
以下の接続例になるように、ケーブルを取り付けます。 最初にACアダプタを外してから、 ジャンパーソケットとmicroSDカードを取り外してください。
ACアダプタを再度接続する際は、先ほど同様、起動メッセージの途中で「Hit any key to stop autoboot:
」のカウントダウンが0になる前に何かキーを押下して、U-Bootのプロンプト(以下の起動メッセージの末尾にあるu-boot=>
)が表示されるかどうかを確認してください。
- Armadillo-X2 本体
- AC アダプタ
- 作業用PC
- シリアル通信用 USB ケーブル(A-microB)
正しく起動すると以下のようにU-Bootの起動メッセージとプロンプトが表示されます。
U-Boot SPL 2020.04-at24 (Jun 25 2024 - 05:23:49 +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):2020.04-at19 NOTICE: BL31: Built : 08:29:47, Dec 14 2023 U-Boot 2020.04-at24 (Jun 25 2024 - 05:23:49 +0000) 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 2020.04 - U-Boot 2020.04-at24 reset cause: first boot since power on switch to partitions #0, OK mmc2(part 0) is current device flash target is MMC:2 Net: eth0: ethernet@30be0000 [PRIME] Fastboot: Normal 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-X2の起動に関しては問題はないようです。
他に不具合が見られる場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
ログインプロンプトは出ても、その際に自動的に再起動が挟まる場合は、ロールバックが起こった可能性があります。
その場合はハードウェアの故障ではなく、お使いのカーネルイメージかDTBファイルが破損しているか起動できないイメージである可能性が高いです。
「ロールバックからの復旧」を行ってください。
5-1-2. ログインプロンプトが表示されない場合
ログインプロンプトまでたどり着けず、再起動を何度も繰り返す場合は、一度ロールバックしてアップデート前のルートファイルシステムで起動したことに気づかず、起動できない独自のアップデートを再度施してしまい、A/B面どちらのルートファイルシステムにおいても起動できずにロールバックで無限ループとなってしまう状態に陥ることがあります。
その場合はインストールディスクを使用してイメージを書き直す必要がありますので、「インストールディスクを用いて初期化を行う」に進んでください。
一度も再起動せず、ログインプロンプトにもたどり着けない場合は、お客様がソフトウェアに加えた変更点が原因で起動できない可能性が高いです。
この場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
5-2. ロールバックからの復旧
Armadillo-X2では、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などからも確認できます。 詳しくは「製品マニュアル ロールバック状態を確認する」を参照してください。
初めてロールバックした際には上記コマンド実行例のように起動可能なアップデート前のルートファイルシステムで起動しているはずです。
この場合は「起動できなかったルートファイルシステムを修正する」に進んでください。
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 Base OS インストールディスクイメージで作成したインストールディスクを用いて初期化を行うことになります。
注意点としまして、インストールディスクを用いた初期化を行うと、ArmadilloのeMMCに書き込んだデータは全て消去されます。
必要であれば、インストールディスクを使用する前に「各イメージファイルのバックアップ手順」を参照してファイルのバックアップを行ってください。
インストールディスクの作成方法及び使用方法は「製品マニュアル 初期化インストールディスクの作成」を参照してください。
初期化後はユーザーアプリケーションや各種イメージを修正し、Armadillo-X2に書き込んで再度動作確認をしてください。
「不具合箇所が特定できた場合は?」もあわせて参照してください。
6. 不具合箇所が特定できた場合は?
ここまでの手順で不具合箇所が特定できた場合は、その部分を修正することで正常に動作するようになる可能性が高いです。 修正の際にご不明な点があれば、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
修正したにも関わらず起動しない場合は、再度本FAQの手順をやり直してください。
やり直しても正常に起動しない場合は、「Armadillo フォーラム」にてご質問いただくか、「問題が解決しなかった場合は?」を参照してください。
7. 問題が解決しなかった場合は?
本手順通りに作業を行い問題が解決しない場合は、「製品保証規定」をご確認の上、「交換のお申込み」を行ってください。
Appendix. 各イメージファイルのバックアップ手順
eMMC上のイメージファイルのバックアップをとりたい場合の手順を紹介します。
バックアップするためにまず「ハードウェアの確認」を参照して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メモリなどにコピーしてバックアップしてください。