Armadillo-640で故障かな?と思った時の確認手順を説明します。
- Debian GNU/Linux 10 (buster) をお使いの方は「故障かなと思ったら(Armadillo-640) Debian GNU/Linux 10 (buster) 対応」をご参照ください。
- Armadillo Base OS をお使いの方は「故障かなと思ったら(Armadillo-640) Armadillo Base OS 対応」をご参照ください。
確認は下の図のような流れで行います。
目次
1. 準備
1-1. 作業用PCにATDEをインストールする
作業用PCにATDE7をインストールします。
インストールの手順は「Armadillo-640 製品マニュアル 開発/動作確認環境の構築」を参照してください。
1-2. SDブート用のmicroSDカードを作成する
本FAQでは、標準イメージが書き込まれたmicroSDからSDブートすることで問題の切り分けを行なっていくため、予めSDブート用のmicroSDを作成します。
「Armadillo-640 製品マニュアル SDブートの活用 」の"ブートディスクの作成"から"LinuxカーネルイメージとDTBの配置"を参照し、最新の標準イメージを用いてSDブート用のmicroSDを作成してください。
1-3. Armadillo-640と作業用PCを開発用USBシリアル変換アダプタで接続する
以下の接続例を参考に、Armadillo-640のCON9と作業用PCを開発用USBシリアル変換アダプタで接続します。 また、「SDブート用のmicroSDカードを作成する」で作成したmicroSDカードをmicroSDスロット(CON1)に挿入します。
開発用USBシリアル変換アダプタのスライドスイッチは、以下の図の①のように設定した状態としてください。
1-4. ATDEでシリアル通信ソフトウェアを起動する
Armadillo-640とシリアル通信を行なうために、ATDEでminicom
を起動します。minicom
は端末内で動作するシリアル通信ソフトウェアです。
minicom
の起動方法と設定については「Armadillo-640 製品マニュアル シリアル通信ソフトウェア(minicom)の使用」を参照してください。
もしATDEでシリアルポートが使用できない場合は、「FAQ : ATDEでシリアルポートが使用できません」を参照してください。
2. ACアダプタの確認
Armadillo-640の電源投入前に、ACアダプタがArmadillo-640で使用できるものか確認します。
Armadillo-640 付属のACアダプタを使用している場合は問題ありません。
そうでない場合は以下の表を参照してACアダプタが適切であるか確認してください。
出力電圧 | 出力電流 | プラグ形状 | 極性マーク | 対応ACアダプタ |
---|---|---|---|---|
5V | 0.6A以上 | 外径: 4.0mm 内径: 1.7mm |
OP-AC5V4-10 (2.0A) | |
5V | 0.6A以上 | 外径: 4.0mm 内径: 1.7mm |
OP-AC5V4-10 (2.0A) |
3. ハードウェアの確認
起動出来ない原因がハードウェアかソフトウェアかを判断するために、Armadillo-640のブートローダーであるU-BootをmicroSDカードから起動させます。
3-1. SDブートを行なう
まず、JP1とJP2をそれぞれショートに設定します。
次に、最初に作成したmicroSDカードがmicroSDスロット(CON1)に挿入されていることを確認し、Armadillo-640にACアダプタを接続します。
3-2. SDブートの起動確認
SDブートが成功すると以下のように起動メッセージが表示されます。
U-Boot 2018.03-at8 (Feb 17 2020 - 19:19:11 +0900) CPU: Freescale i.MX6ULL rev1.1 at 396 MHz Reset cause: POR I2C: ready DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... *** Warning - bad CRC, using default environment Failed (-5) In: serial Out: serial Err: serial PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11 Net: FEC
起動メッセージの後にU-Bootのプロンプトが表示されます。
=>
正しく起動メッセージとプロンプトが表示された場合、eMMC上のソフトウェアの不具合である可能性があります。 ACアダプタを外し、JP1とJP2をそれぞれオープンに設定して「U-Bootイメージの確認」に進んでください。
プロンプトが表示されない場合はハードウェアの不具合である可能性があります。 「問題が解決しなかった場合は?」を参照してください。
4. U-Bootイメージの確認
eMMCに書き込まれているU-Bootを起動できるか確認します。
JP1とJP2がそれぞれオープンに設定されていることを確認し、ACアダプタを接続してください。 正しく起動すると以下のようにU-Bootの起動メッセージとプロンプトが表示されます。
U-Boot 2018.03-at8 (Feb 17 2020 - 19:19:11 +0900) CPU: Freescale i.MX6ULL rev1.1 at 396 MHz Reset cause: POR I2C: ready DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... *** Warning - bad CRC, using default environment Failed (-5) In: serial Out: serial Err: serial PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11 Net: FEC =>
起動メッセージとプロンプトが正しく表示された場合、eMMC上のU-Bootイメージに問題はありません。「Linuxイメージの確認」へ進んでください。
プロンプトが表示されない場合はeMMCに書き込まれているU-Bootに問題がある可能性があります。 「不具合箇所が特定できた場合は?」を参照してください。
5. Linuxイメージの確認
Linuxの起動を確認します。
5-1. Linuxシステムの起動確認
U-Bootのプロンプトでboot
コマンドを実行しLinuxシステムを起動してください。
=> boot
起動ログが表示され、以下のようにログインプロンプトが表示された場合は問題ありませんので「Linuxへのログイン確認」に進んでください。
armadillo login:
ログインプロンプトが表示されない場合は「ブートローダーの環境変数を初期化する」へ進んでください。
5-2. ブートローダーの環境変数を初期化する
ブートローダーの環境変数が適切に設定されていない場合はArmadillo-640を起動することができません。
電源を再投入し、U-Bootのプロンプトに以下のコマンドを入力して環境変数を初期化してから起動してください。
=> env default -a => setenv fdt_file a640.dtb => boot
起動ログが表示され、以下のようにログインプロンプトが表示された場合は設定しているU-Bootの環境変数が正しくない可能性があります。 「不具合箇所が特定できた場合は?」を参照してください。
armadillo login:
ブートローダーの環境変数を初期化してもログインプロンプトが表示されない場合は「カーネルイメージファイルとDTBの確認」を行ってください。
5-3. カーネルイメージファイルとDTBの確認
eMMCに書き込まれているファイルに問題がある場合はLinuxを起動することができません。
問題の切り分けのために、カーネルイメージファイル及びDTBはeMMCに書き込まれているものを使用し、ユーザーランドはmicroSDに書き込まれているものを使用します。
5-3-1. eMMC上のカーネルイメージファイルとDTBの確認
ACアダプタを外し、「SDブートを行なう」を参照してSDブートしてください。
U-Bootのプロンプト上で以下のコマンドを実行し、Linuxシステムを起動してください。
=> setenv setup_mmcargs setenv bootargs root=/dev/mmcblk1p2 rootwait \${optargs}\; => boot
起動ログが表示され、以下のようにログインプロンプトが表示された場合はユーザーランドに問題がある可能性があるため、「ログインと終了」に進んでください。
armadillo login:
ログインプロンプトが表示されない場合は、eMMCに書き込まれているカーネルイメージファイルとDTBに問題がある可能性があります。 「不具合箇所が特定できた場合は?」を参照してください。
5-3-2. ログインと終了
起動が完了するとログインプロンプトが表示されます。 rootユーザでログインしてください。
ユーザ名 | パスワード |
---|---|
root | root |
その後、Armadillo-640を終了させるため、halt
コマンドを実行してください。
[armadillo ~]# halt
以下のメッセージが表示されたら、ACアダプタを外し、「ユーザーランドの確認」に進んでください。
reboot: System halted
5-4. ユーザーランドの確認
eMMCに書き込まれているユーザーランドに問題がある場合にLinuxが起動できないことがあります。 この手順ではユーザーランドのみeMMCに書き込まれているものを使用し、それ以外はmicroSDに書き込まれているものを使用します。
5-4-1. eMMC上のユーザーランドの確認
まず「SDブートを行なう」を参照してSDブートしてください。
U-Bootのプロンプト上で以下のコマンドを実行し、Linuxシステムを起動してください。
=> setenv bootcmd run setup_mmcargs\; ext4load mmc 1:2 \${loadaddr} /boot/uImage\; ext4load mmc 1:2 0x83000000 /boot/\${fdt_file}\; bootm \${loadaddr} - 0x83000000\; => boot
以下のようにログインプロンプトが表示されるかを確認してください。
armadillo login:
ログインプロンプトが表示されない場合は、eMMCに書き込まれているユーザーランドに問題がある可能性があります。 「不具合箇所が特定できた場合は?」を参照してください。
ログインプロンプトが表示された場合は、eMMCに書き込まれているカーネルイメージファイルとユーザーランドの組み合わせの問題で起動しない可能性があります。 「不具合箇所が特定できた場合は?」を参照してください。
6. Linuxへのログイン確認
ここでは、rootユーザでログインします。
パスワードの入力時には画面に何も表示されませんが、root
と入力してEnterキーを押下してください。
以下のようにLinuxのプロンプトが表示された場合は問題ありません。
armadillo login: root Password: [armadillo ~]#
もしLinuxのプロンプトが表示されない場合は「ユーザ名およびパスワードを確認」してください。
6-1. ユーザ名およびパスワードの確認
ユーザ名またはパスワードに誤りがないか確認します。
標準イメージファイルを使用している場合のユーザ名およびパスワードは以下の表を参照してください。
標準イメージファイルを使用していない場合は、「ルートファイルシステムの書き換え」を参照し、標準イメージファイルをeMMCに書き込んでください。 eMMCに書き込まれているイメージのバックアップを取りたい場合は、「各イメージファイルのバックアップ手順」を参照してバックアップを取ってから行なってください。
ユーザ名 | パスワード |
---|---|
root | root |
atmark | atmark |
ユーザ名およびパスワードは、それぞれ小文字で入力する必要があります。
CapsLockがオフになっていることを確認してください。
7. 不具合箇所が特定できた場合は?
ここまでの手順で不具合箇所が特定できた場合は、その部分を修正することで正常に動作するようになる可能性が高いです。 修正の際にご不明な点があれば、「フォーラムの利用方法」を必ずご確認の上、「Armadillo フォーラム」にてご質問ください。
修正したにも関わらず起動しない場合は、再度本FAQの手順をやり直してください。
8. 問題が解決しなかった場合は?
本手順は、動作モードの設定や使用するイメージファイルにより結果が変わってしまいます。
問題が解決しない場合は、手順に注意し再度確認してください。
手順通りに作業を行い問題が解決しない場合は、「製品保証規定」をご確認の上、「交換のお申込み」を行ってください。
Appendix. 各イメージファイルのバックアップ手順
eMMC上のイメージファイルのバックアップをとりたい場合の手順を紹介します。
バックアップするためにまず「SDブートを行なう」を参照してSDブートしてください。
U-Bootのプロンプト上で以下のコマンドを実行し、Linuxシステムを起動してください。
=> setenv bootcmd run setup_mmcargs\; ext4load mmc 1:2 \${loadaddr} /boot/uImage\; ext4load mmc 1:2 0x83000000 /boot/\${fdt_file}\; bootm \${loadaddr} - 0x83000000\; => setenv setup_mmcargs setenv bootargs root=/dev/mmcblk1p2 rootwait \${optargs}\; => boot
「Linuxへのログイン確認」を参考に、rootユーザでログインしてください。
以下のコマンドを実行することで、eMMC上のルートファイルシステムをmicroSDにバックアップします。
[armadillo ~]# mount /dev/mmcblk0p2 /mnt [armadillo ~]# cd /mnt [armadillo /mnt]# tar zcvf ~/debian-backup-$(date +%Y%m%d).tar.gz ./* [armadillo /mnt]# cd [armadillo ~]# umount /mnt