製品アップデート

[重要] ソフトウェア更新のお願い (Armadillo-IoT G3/G3L、Armadillo-X1対象) 動作中に DRAMのデータ化け・再起動がごくまれに起こる

2024年3月28日16時54分

Armadillo-IoT ゲートウェイ G3/G3L、Armadillo-X1で、動作中にDRAMのデータ化けと、それによって動作中の再起動がごくまれに発生しています 。
この事象は個体に依存して発生し、対策ソフトウェアにアップデートすることで回避することができます。

以下をご確認の上、対策ソフトウェアへの更新を強く推奨します。

発生する事象

搭載SoC(i.MX7D)の個体差によって、ごくまれにDRAMからReadするデータが化ける個体があります。 状況によっては、ウォッチドックタイマーによるリセットが発生し再起動に至ります。

再起動の発生には個体依存性があり、ほとんどの個体では発生せず、経年劣化によるものではありません。
発生頻度も個体によって違いがあります。

対象製品

  • Armadillo-IoTゲートウェイ G3
  • Armadillo-IoTゲートウェイ G3L
  • Armadillo-X1

事象が発生するソフトウェア

  • U-Boot v2016.07-at24以前 (2024年2月のリリース以前)

回避方法

個体差を吸収できるように、DRAMコントローラーの設定値を変更した対策ソフトウェア「 U-Boot v2016.07-at25以降」へ更新することで事象を回避することができます。また、更新することによる、現在動作中の製品への影響はありません。

最新版へのアップデートを強く推奨します。

対策ソフトウェアは製品アップデートでリリース済みです。

出荷品への対策ソフトウェア適用時期について

2024年4月以降の出荷品より、順次対策ソフトウェアを適用致します。

U-Bootのバージョン確認方法(Linuxを起動せずに確認)

電源投入直後に出力されるログを確認してください。

U-Boot 2016.07-at25 (Mar 27 2024 - 10:49:03 +0900)

CPU:   Freescale i.MX7D rev1.3 at 996MHz
CPU:   Extended Commercial temperature grade (-20C to 105C) at 46C
Reset cause: POR
       Watchdog enabled
I2C:   ready
DRAM:  1 GiB
Boot Source: eMMC
Board Type: Armadillo-IoT G3 M1(0a000003)
Revision: 0001
S/N: 00A000050041
DRAM: 00001e05
XTAL: 00
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Found PFUZE300! deviceid 0x30, revid 0x11
Net:   FEC0

または、保守モードで起動してからversionコマンドを実行してください。

=> version

U-Boot 2016.07-at25 (Mar 27 2024 - 10:49:03 +0900)
arm-linux-gnueabihf-gcc (Debian 6.3.0-18) 6.3.0 20170516
GNU ld (GNU Binutils for Debian) 2.28

U-Bootのバージョン確認方法(Linuxを起動後に確認)

Armadillo-IoTゲートウェイG3 型番: AGX314x-、AGX3101-の場合

次のようにコマンドを実行してください。

root@armadillo:~# strings /dev/mmcblk2boot0 | grep "U-Boot" | grep "x1"
U-Boot 2016.07-at25 for x1 board

それ以外のArmadillo-IoTゲートウェイ G3、Armadillo-IoTゲートウェイG3L、Armadillo-X1の場合

次のようにコマンドを実行してください。

root@armadillo:~# strings /dev/mtdblock0 | grep "U-Boot" | grep "x1"
U-Boot 2016.07-at25 for x1 board

対策ソフトウェアへのアップデート方法

以下に、対策ソフトウェアにアップデートする方法を記載します。
遠隔地に設置している個体をアップデートする場合、事前に同ソフトウェア構成のテスト環境を構築して、アップデート手順含めた評価を十分に行ってください。

Armadilloに対策ソフトウェアのイメージファイルをを配置

ダウンロードした「 U-Boot v2016.07-at25以降」のイメージファイルをArmadillo上に配置してください。

USBメモリやネットワーク経由での転送等、手段は運用中の装置に合わせて選択してください。

[armadillo ~]# ls
u-boot-x1-[version].bin

尚、運用中ではなく開発前の場合は、この手順ではなく最新のインストールディスクでOSを含めた全てのソフトウェアリソースを初期化することが最も簡単です。

U-Bootイメージファイルの書き込み

次のコマンドを実行し、U-Bootイメージファイルの書き込みを行ってください。 書き込み中(コマンド実行中)に電源断を行なうと、次回以降起動できなくなる可能性があります。

[armadillo ~]# x1-bootloader-install u-boot-x1-[version].bin

ご利用のDebian GNU/Linuxのバージョンが古いと、 x1-bootloader-installが存在しなことがあります。その際は次のコマンドを実行してください。

Armadillo-IoTゲートウェイG3 型番: AGX314x-、AGX3101-の場合
[armadillo ~]# echo 0 > /sys/block/mmcblk2boot0/force_ro
[armadillo ~]# dd if=u-boot-x1-[version].bin of=/dev/mmcblk2boot0 bs=1k skip=1 seek=1
[armadillo ~]# sync
[armadillo ~]# echo 1 > /sys/block/mmcblk2boot0/force_ro
それ以外のArmadillo-IoTゲートウェイ G3、Armadillo-IoTゲートウェイG3L、Armadillo-X1の場合
[armadillo ~]# dd if=u-boot-x1-[version].bin of=/dev/mtdblock0
[armadillo ~]# sync

再起動

Armadilloを再起動します。 再起動することで対策が有効になります。

[armadillo ~]# reboot

バージョン確認

先述したバージョン確認方法で「 U-Boot v2016.07-at25以降」になっていることを確認してください。