Armadillo-640で故障かな?と思った時の確認手順を説明します。
- Debian GNU/Linux 9 (stretch) をお使いの方は「故障かなと思ったら(Armadillo-640) Debian GNU/Linux 9 (stretch) 対応」をご参照ください。
- Debian GNU/Linux 10 (buster) をお使いの方は「故障かなと思ったら(Armadillo-640) Debian GNU/Linux 10 (buster) 対応」をご参照ください。
確認は下の図のような流れで行います。
目次
1. 準備
1-1.Armadillo-640と作業用PCのシリアルポート同士を接続する
以下の接続例を参考に、Armadillo-640と作業用PCを接続します。
- Armadillo-640 本体
- USB シリアル変換アダプタ
- 作業用PC
- USB(A オス-miniB)ケーブル
1-2. 作業用PCがUSBシリアル変換ICを認識していることを確認する
作業用PCがWindowsの場合
デバイスマネージャーからシリアルポートとして認識されていることを確認した上で「作業用PCにATDEをインストールする」以降の手順を実施してください。
作業用PCがLinuxの場合
接続後に以下のコマンドを実行して正しく認識されていることを確認し、「作業用PCにATDEをインストールする」に進んでください。
[PC ~/]$ lsusb | grep FT232
Bus 001 Device 017: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
上記の手順を行ったにも関わらず、作業用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-640とシリアル通信を行うために、ATDEでminicom
を起動します。minicom
は端末内で動作するシリアル通信ソフトウェアです。
minicom
の起動方法と設定については「製品マニュアル シリアル通信ソフトウェア(minicom)の使用」を参照してください。
もしATDEでシリアルポートが使用できない場合は、「FAQ : ATDEでシリアルポートが使用できません」を参照してください。
2. ACアダプタの確認
Armadillo-640の電源投入前に、お手元のACアダプタが使用可能であるか確認します。
Armadillo-640付属のACアダプタを使用している場合は問題ありません。
そうでない場合は以下の表を参照してACアダプタが適切であるか確認してください。
出力電圧 | 出力電流 | プラグ形状 | 極性マーク | 対応ACアダプタ |
---|---|---|---|---|
5V | 0.6A以上 | 外径: 4.0mm 内径: 1.7mm |
OP-AC5V4-10 (2.0A) |
3. ハードウェアの確認
起動出来ない原因がハードウェアかソフトウェアかを判断するために、Armadillo-640のブートローダーであるU-BootをmicroSDカードから起動させます。
3-1. SDブートを行う
これから示す手順にしたがって以下の接続例のとおりにケーブル・部品を取り付けてください。
- Armadillo-640 本体
- AC アダプタ
- 作業用PC
- USB(A オス-miniB)ケーブル
- USB シリアル変換アダプタ
- ジャンパーソケット(JP1・JP2)
- スライドスイッチ
- microSD カード
まず、AC アダプタが接続されている場合は、これを取り外してください。
JP1・JP2を2個のジャンパーソケットでショートさせます。 USBシリアル変換アダプタのスライドスイッチを図のように切り替えます。
次に、最初に作成したmicroSDカードをmicroSDスロット(CON1)に挿入します。
Armadillo-640と作業用PCをUSB ケーブルで接続します。
最後にACアダプタを接続します。
3-3. SDブートの起動確認
SDブートが成功すると以下のように起動メッセージが表示されます。
U-Bootのプロンプト(以下の起動メッセージの末尾にある=>
)が表示されているかどうかを確認してください。
U-Boot 2020.04-at24 (Jun 25 2024 - 05:19:56 +0000) CPU: i.MX6ULL rev1.0 at 396 MHz Model: Atmark Techno Armadillo-600 Series DRAM: 512 MiB setup_rtc_disarm_alarm: Can't find bus WDT: Started with servicing (10s timeout) PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11 MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... OK In: mxc_serial Out: mxc_serial Err: mxc_serial switch to partitions #0, OK mmc1 is current device serial# changed: Clearing MAC addresses in env flash target is MMC:1 Net: eth0: ethernet@2188000 Fastboot: Normal Normal Boot =>
正しく起動メッセージとプロンプトが表示された場合、発生している不具合の原因がeMMC上のソフトウェアである可能性があります。 続いて、「U-Bootイメージの確認」に進んでください。
プロンプトが表示されない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。
4. U-Bootイメージの確認
eMMCに書き込まれているU-Bootを起動できるか確認します。
以下の接続例になるように、ケーブルを取り付けます。 最初にACアダプタを外してから、 JP1のジャンパーソケットとmicroSDカードを取り外してください。
- Armadillo-640 本体
- AC アダプタ
- 作業用PC
- USB(A オス-miniB)ケーブル
- USB シリアル変換アダプタ
- ジャンパーソケット(JP2)
- スライドスイッチ
※JP1のジャンパーソケットは取り外してください
正しく起動すると以下のようにU-Bootの起動メッセージとプロンプトが表示されます。
U-Boot 2020.04-at24 (Jun 25 2024 - 05:19:56 +0000) CPU: i.MX6ULL rev1.0 at 396 MHz Model: Atmark Techno Armadillo-600 Series DRAM: 512 MiB setup_rtc_disarm_alarm: Can't find bus WDT: Started with servicing (10s timeout) PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11 MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... OK In: mxc_serial Out: mxc_serial Err: mxc_serial switch to partitions #0, OK mmc0(part 0) is current device flash target is MMC:0 Net: eth0: ethernet@2188000 Fastboot: Normal Normal 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-640の起動に関しては問題はないようです。
他に不具合が見られる場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
ログインプロンプトは出ても、その際に自動的に再起動が挟まる場合は、ロールバックが起こった可能性があります。
その場合はハードウェアの故障ではなく、お使いのカーネルイメージかDTBファイルが破損しているか起動できないイメージである可能性が高いです。
「ロールバックからの復旧」を行ってください。
5-1-2. ログインプロンプトが表示されない場合
ログインプロンプトまでたどり着けず、再起動を何度も繰り返す場合は、一度ロールバックしてアップデート前のルートファイルシステムで起動したことに気づかず、起動できない独自のアップデートを再度施してしまい、A/B面どちらのルートファイルシステムにおいても起動できずにロールバックで無限ループとなってしまう状態に陥ることがあります。
その場合はインストールディスクを使用してイメージを書き直す必要がありますので、「インストールディスクを用いて初期化を行う」に進んでください。
一度も再起動せず、ログインプロンプトにもたどり着けない場合は、お客様がソフトウェアに加えた変更点が原因で起動できない可能性が高いです。
この場合は、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
5-2. ロールバックからの復旧
Armadillo-640では、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-640に書き込んで再度動作確認をしてください。
「不具合箇所が特定できた場合は?」もあわせて参照してください。
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メモリなどにコピーしてバックアップしてください。