FAQ

故障かなと思ったら(Armadillo-640) Debian GNU/Linux 9 (stretch) 対応

Armadillo-640で故障かな?と思った時の確認手順を説明します。

本FAQは、Debian/GNU Linux 9 (コードネーム stretch)向けの記事です。

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

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

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

目次

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

1. 準備

1-1. 作業用PCにATDEをインストールする

作業用PCにATDE7をインストールします。
インストールの手順は「Armadillo-640 製品マニュアル 開発/動作確認環境の構築」を参照してください。

Armadillo-640(Debian GNU/Linux 9)に対応したATDEはATDE7です。

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
ac-adapter OP-AC5V4-10 (2.0A)
5V 0.6A以上 外径: 4.0mm
内径: 1.7mm
OP-AC5V4-10 (2.0A)
可能であればテスターなどで、ACアダプタの出力電圧が適切であることを確認してください。

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