Armadilloフォーラム

USBメモリアップデート後の再起動が出来ない

kyas-t5

2021年10月12日 19時58分

ご担当者様

お世話になります。

USBメモリでアップデートを行ったところ、再起動後に以下のメッセージが表示されて起動できない状況の為、
ご助力頂きたく。
U-Boot 2016.07-at20 (Sep 01 2021 - 17:22:23 +0900)

CPU: Freescale i.MX7D rev1.3 at 996MHz
CPU: Extended Commercial temperature grade (-20C to 105C) at 53C
Reset cause: POR
Watchdog enabled
I2C: ready
DRAM: 2 GiB
Boot Source: QSPI Flash
Board Type: Armadillo-X1(0a100000)
Revision: 0003
S/N: 3104
DRAM: 00001f05
XTAL: 00
force_idle_bus: sda=0 scl=0 sda.gp=0x6d scl.gp=0x6c
force_idle_bus: failed to clear bus, sda=0 scl=0
MMC: FSL_SDHC: 0
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
switch to partitions #0, OK
mmc0(part 0) is current device
switch to partitions #0, OK
mmc0(part 0) is current device
** Unrecognized filesystem type **
** Unrecognized filesystem type **
** Unrecognized filesystem type **
Booting from net ...
FEC0 Waiting for PHY auto negotiation to complete..... done
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17

Retry time exceeded; starting again
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17

Retry time exceeded; starting again
Wrong Image Format for bootm command
ERROR: can't get kernel image!
=>

以下のファイルをArmadillo-x1に実装します。
u-boot-x1.bin/uImage/armadillo-x1.dtb/ルートファイル/boot.scr

状況は以下になります。
・上記の同じファイルをSDカードによるアップデートを用意してアップデートを行うと
 正常にアップデート及び再起動が出来ます。
・USBメモリのアップデートは正常に終了していそうですがその後の再起動で上記ログが出て進まなくなります。
・USBメモリでアップデート後、電源OFF前に/dev/mmcblk2p1を確認すると、uImage/armadillo-x1.dtb/boot.scrは
 コピーされています。(サイズもコピー前と同じです)
・ルートファイルもtar 解凍前のサイズは問題なさそうです。

何か原因となりそうな箇所がありましたらご助力頂けないでしょうか?

コメント

入江です。

当方でもUSBメモリからのアップデートを試してみましたが、お客様の方で起
こっている現象を再現することは出来ませんでした。

つきましては、以下の情報をいただけますでしょうか。

- USBアップデート時のログ
- USB内に配置した/images/install.sh

また、USBアップデートで書き込むイメージを標準イメージにした場合にも同
様の現象は発生しますでしょうか。

以上、ご確認よろしくお願いいたします。

入江様

お世話になります。

terminalのログとinstall.shを添付させて頂きます。
terminalのログはSDカードによる書き換え後、USBメモリで書き換えをしたログになります。
また、追加情報として以前はUSBメモリでアップデート出来ていました。
その後、こちらで作成したプロセスの実行をrootから一般ユーザー権限に変えています。
標準イメージにした場合は、改めて試します。
こちらの単純ミスかもしれません。申し訳ありませんがご助力頂きたく。

> 入江です。
>
> 当方でもUSBメモリからのアップデートを試してみましたが、お客様の方で起
> こっている現象を再現することは出来ませんでした。
>
> つきましては、以下の情報をいただけますでしょうか。
>
> - USBアップデート時のログ
> - USB内に配置した/images/install.sh
>
> また、USBアップデートで書き込むイメージを標準イメージにした場合にも同
> 様の現象は発生しますでしょうか。
>
> 以上、ご確認よろしくお願いいたします。
>

ファイル ファイルの説明
terminalのログ.txt
install.sh

入江です。

ログを見ると、eMMCのfdisk終了時に以下が出力されています。

rc.local[1301]: Re-reading the partition table failed.: Device or resource busy
rc.local[1301]: The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

この状態で各パーティションにファイルシステムを作成しても、ファイルシス
テムが壊れてしまい、次回起動時にu-bootでeMMCの中身が読めない状態になっ
ていると考えられます。

対処方法としましては、出力メッセージのとおりそのタイミングで再起動する
か、partprobeかkpartxを実行する必要があります。

再起動は、USBからの1回目の起動と再起動後である2回目の起動で実行内容が
変わるなど、処理のシーケンスを考える必要があります。

partprobeとkpartxの方が単純ではありますが、標準イメージではインストー
ルされていませんので、USBメモリ内のユーザーランドに予めインストールし
ておく必要があります。
ご検討ください。