Armadilloフォーラム

Armadillo G3起動時に** Bad device mmc 1 **エラー

s.kurachi

2021年10月1日 16時26分

いつもお世話になっております。
Armadillo-iot G3(量産用)が連続稼働中に前触れなく再起動し、それ以来表題のエラーでカーネルがブートしなくなってしまったため、その原因・解決策をご教示いただきたく投稿いたしました。
Armadilloでは、USBシリアルやUDP等で別の装置から受信したデータの分析・SDカードへの保存を行い、半年程度遠隔で連続動作させていました。
そのArmadilloが先日前触れなく再起動、それ以来疎通できなくなり、コンソールから調べてみたところ下記のログが出てカーネルがブートできていませんでした。

U-Boot SPL 2016.07-at20 (Oct 02 2019 - 18:17:52)
Trying to boot from SPI
 
U-Boot 2016.07-at20 (Oct 02 2019 - 18:17:52 +0900)
 
CPU:   Freescale i.MX7D rev1.3 at 996MHz
CPU:   Extended Commercial temperature grade (-20C to 105C) at 39C
Reset cause: POR
       Watchdog enabled
I2C:   ready
DRAM:  1 GiB
Boot Source: QSPI Flash
Board Type: Armadillo-IoT G3(0a000000)
Revision: 0002
S/N: 3811
DRAM: 00001e05
XTAL: 00
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from SPI Flash... SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
 
Failed (-5)
Loading Environment from SPI Flash... SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
 
Failed (-5)
In:    serial
Out:   serial
Err:   serial
Found PFUZE300! deviceid 0x30, revid 0x11
Net:   FEC0
 
** Bad device mmc 1 **
** Bad device mmc 1 **
** Bad device mmc 1 **
Booting from net ...
FEC0 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY FEC0
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
 
Retry time exceeded; starting again
FEC0 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY FEC0
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
 
Retry time exceeded; starting again
Wrong Image Format for bootm command
ERROR: can't get kernel image!
=>

カーネルのブートはArmadillo上のeMMCから行っています。
最初にSPIフラッシュからの情報の読み取りで"bad CRC"と出ており、それと関係しているかは分かりませんが、"Bad device mmc 1 "でブートに失敗しています。
なお、他にも数十台のArmadilloを同様の条件で半年以上動作させていますがこういった症状は初めてです。
eMMCへの書き込みはほとんど行っていないため、eMMCの劣化は考えづらいです。

これに関して、原因として考えられることはありますでしょうか。
また、修理・復旧を行うことは可能でしょうか。
SDカードからのブートを試そうとも思いましたが、それによる故障のリスクを考えて先に投稿させていただきました。

ご教示いただけますと幸いです。

コメント

アットマークテクノの古賀です。

s.kurachiさん(2021年10月1日 16時26分):
>Armadillo-iot G3(量産用)が連続稼働中に前触れなく再起動し、それ以来表題のエラーでカーネルがブートしなくなってしまったため、その原因・解決策をご教示いただきたく投稿いたしました。
>Armadilloでは、USBシリアルやUDP等で別の装置から受信したデータの分析・SDカードへの保存を行い、半年程度遠隔で連続動作させていました。
>そのArmadilloが先日前触れなく再起動、それ以来疎通できなくなり、コンソールから調べてみたところ下記のログが出てカーネルがブートできていませんでした。

>カーネルのブートはArmadillo上のeMMCから行っています。
>最初にSPIフラッシュからの情報の読み取りで"bad CRC"と出ており、それと関係しているかは分かりませんが、"Bad device mmc 1 "でブートに失敗しています。
>なお、他にも数十台のArmadilloを同様の条件で半年以上動作させていますがこういった症状は初めてです。
>eMMCへの書き込みはほとんど行っていないため、eMMCの劣化は考えづらいです。
>
>これに関して、原因として考えられることはありますでしょうか。

eMMC を全く認識できていない状況なのかどうかを切り分けさせてくださいませ。

U-Boot SPL 2016.07-at20 (Oct 02 2019 - 18:17:52)
Trying to boot from SPI
 
U-Boot 2016.07-at20 (Oct 02 2019 - 18:17:52 +0900)
 
CPU:   Freescale i.MX7D rev1.3 at 996MHz
CPU:   Extended Commercial temperature grade (-20C to 105C) at 39C
Reset cause: POR
       Watchdog enabled
I2C:   ready
DRAM:  1 GiB
Boot Source: QSPI Flash
Board Type: Armadillo-IoT G3(0a000000)
Revision: 0002
S/N: 3811
...
Retry time exceeded; starting again
Wrong Image Format for bootm command
ERROR: can't get kernel image!
=>

u-boot のプロンプト('=>')が出た状態で、mmc コマンドを使って eMMC を認識できているかどうか、試してみて頂けますか。
 https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
 https://u-boot.readthedocs.io/en/latest/usage/mmc.html

=> mmc list
=> mmc dev 1
=> mmc info

eMMC を認識できる場合、'mmc list' コマンドの出力に 'FSL_SDHC: 1' が出現しますので、出現する場合は、'mmc dev 1' で eMMC を選択した後、'mmc info' コマンドを実行してみて頂けますか。

>また、修理・復旧を行うことは可能でしょうか。
>SDカードからのブートを試そうとも思いましたが、それによる故障のリスクを考えて先に投稿させていただきました。

eMMC を認識できており、ブートローダーやカーネルのパーティションの内容が破損していて起動できない状態であれば、SD ブートしてイメージを書き直すことで復旧できる可能性があります。eMMC が認識できない場合は、eMMC が故障している可能性がありますので、お手数ですが、購入された代理店に問い合わせて頂けますか。故障品として対応したいと思います。

アットマークテクノ 古賀様
ご回答ありがとうございます。

> u-boot のプロンプト('=>')が出た状態で、mmc コマンドを使って eMMC を認識できているかどうか、試してみて頂けますか。
> eMMC を認識できる場合、'mmc list' コマンドの出力に 'FSL_SDHC: 1' が出現しますので、出現する場合は、'mmc dev 1' で eMMC を選択した後、'mmc info' コマンドを実行してみて頂けますか。

試したところ以下の様になりました。

=> mmc list
FSL_SDHC: 0
FSL_SDHC: 1
=> mmc dev 1
=> mmc info
MMC: no card present
=>

eMMCの認識はされているようですが、no cardとなっておりました。

アットマークテクノの古賀です。

s.kurachiさん:
>>u-boot のプロンプト('=>')が出た状態で、mmc コマンドを使って eMMC を認識できているかどうか、試してみて頂けますか。
>>eMMC を認識できる場合、'mmc list' コマンドの出力に 'FSL_SDHC: 1' が出現しますので、出現する場合は、'mmc dev 1' で eMMC を選択した後、'mmc info' コマンドを実行してみて頂けますか。
>
>試したところ以下の様になりました。

=>mmc list
FSL_SDHC: 0
FSL_SDHC: 1
=>mmc dev 1
=>mmc info
MMC: no card present
=>

>eMMCの認識はされているようですが、no cardとなっておりました。

u-boot のソースを眺めてみたところ、ボード搭載の SD スロットがハードコードされていて、スロットに接続されている MMC デバイスの認識有無に関わらず mmc list でリストアップされるようです。ごめんなさい。

mmc info で 'no card present' と出力されますので、eMMC を認識できていないようです。

古賀(2021年10月4日 13時14分):
>>また、修理・復旧を行うことは可能でしょうか。
>>SDカードからのブートを試そうとも思いましたが、それによる故障のリスクを考えて先に投稿させていただきました。
>
>eMMC を認識できており、ブートローダーやカーネルのパーティションの内容が破損していて起動できない状態であれば、SD ブートしてイメージを書き直すことで復旧できる可能性があります。eMMC が認識できない場合は、eMMC が故障している可能性がありますので、お手数ですが、購入された代理店に問い合わせて頂けますか。故障品として対応したいと思います。

ということで、eMMC が故障している可能性がありますので、購入された代理店に問い合わせて頂けますか。
 https://armadillo.atmark-techno.com/faq/troubleshooting-aiotg3-buster#e…
 https://armadillo.atmark-techno.com/support/warranty#c-1

お手数をかけまして申し訳ありませんが、どうぞ宜しくお願いします。

> ということで、eMMC が故障している可能性がありますので、購入された代理店に問い合わせて頂けますか。
>  https://armadillo.atmark-techno.com/faq/troubleshooting-aiotg3-buster#e…
>  https://armadillo.atmark-techno.com/support/warranty#c-1
>
> お手数をかけまして申し訳ありませんが、どうぞ宜しくお願いします。

代理店の方に問い合わせます。
回答ありがとうございました。