Armadilloフォーラム

dumprootfsで作ったルートファイルシステムのイメージファイルの書き換えが上手くいかない

wit_akaiwa

2025年5月28日 15時49分

==========
製品型番:AGX3140-D20Z
Debian/ABOSバージョン:Debian GNU/Linux 12 (bookworm)
カーネルバージョン:Linux armadillo 6.1.126-at13
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

マニュアルにある「22.2.dumprootfs を用いた Debian GNU/Linux ルートファイルシステムアーカイブの構築」にて
アーカイブを作成し、「11.イメージファイルの書き換え方法」の手順に沿って、インストールディスクを作成しました。

「11.1.3. インストールの実行」のboot実行で下記エラーとなり、起動出来ません。

U-Boot SPL 2016.07-at25 (Mar 27 2024 - 10:49:03)
Trying to boot from MMC1
 
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 40C
Reset cause: POR
       Watchdog enabled
I2C:   ready
DRAM:  1 GiB
Boot Source: SD
Board Type: Armadillo-IoT G3 M1(0a000003)
Revision: 0002
S/N: 00BF00580571
DRAM: 00001e05
XTAL: 00
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment
 
Failed (-5)
Loading Environment from MMC... *** Warning - bad CRC, using default environment
 
Failed (-5)
In:    serial
Out:   serial
Err:   serial
Found PFUZE300! deviceid 0x30, revid 0x11
Net:   FEC0
=> boot
switch to partitions #0, OK
mmc0 is current device
switch to partitions #0, OK
mmc0 is current device
reading boot.scr
231 bytes read in 10 ms (22.5 KiB/s)
Running bootscript from mmc ...
## Executing script at 82000000
Wrong image format for "source" command

手動でlinuxを起動しようとしても下記エラーとなります。

=> setenv script notafile
=> boot
switch to partitions #0, OK
mmc0 is current device
switch to partitions #0, OK
mmc0 is current device
reading notafile
** Unable to read file notafile **
** Invalid partition 3 **
reading uImage
11566264 bytes read in 519 ms (21.3 MiB/s)
Booting from mmc ...
reading armadillo_iotg_g3_m1.dtb
** Unable to read file armadillo_iotg_g3_m1.dtb **
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-4.9.133-at3
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    11566200 Bytes = 11 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
FDT and ATAGS support not compiled in - hanging
### ERROR ### Please RESET the board ###

インストールディスクイメージの作成は下記コマンドにて行いました。

sudo ./build.sh iotg3_m1 u-boot-x1-at25.bin uImage-x1-v6.1 armadillo_iotg_g3_m1-v6.1-at17.dtb dump_rootfs.tar.gz

dump_rootfs.tar.gz以外はダウンロードした物です。
また、インストールディスクイメージ作成ツールはv1.4.3です。

何を修正すればいいのか、アドバイスいただけないでしょうか?

コメント

溝渕です。

以下のようにコマンドを実行するとどうなるか教えてください。

=> env default -a
=> boot

特に変わりませんでした。

=> env default -a
## Resetting to default environment
=> boot
switch to partitions #0, OK
mmc0 is current device
switch to partitions #0, OK
mmc0 is current device
reading boot.scr
231 bytes read in 10 ms (22.5 KiB/s)
Running bootscript from mmc ...
## Executing script at 82000000
Wrong image format for "source" command
=>

ちなみに、以下を試したらとりあえず動きました。

1)初期化するイメージディスクは作成出来て、正常に動いたので、
SDカード内にあった、boot.scr、uImage、x1-minimal.dtbをコピー。
2)make_install_disk_image/core/p1にペースト。
3)build.sh内のcreate_bootscrをコメントアウト。
4)イメージファイル作成。SDカード書き込み。

書き換え後、dumprootfsで残したシステムが復元出来ていそうでしたが、
apt installでインストールしたパッケージが入っていませんでした。

上記手順のせいでしょうか?
それともdumprootfsでのアーカイブの作成に問題があったのでしょうか?

溝渕です。

ログより、SDカード内のboot.scrが壊れているようなのですがなぜでしょうか...。

以下のようにsd imageをmountして、boot.scrが正常か確認してみてください。次のように、"legacy uImage"と表示されると正常です。

[atde]$ sudo mount -oloop,offset=$(expr 2048 \* 512) install_disk_sd_20250530_iotg3_m1.img /mnt
[atde]$ file /mnt/boot.scr 
/mnt/boot.scr: u-boot legacy uImage, , Linux/ARM, Script File (Not compressed), 167 bytes, Fri May 30 00:53:24 2025, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0XB5252078, Data CRC: 0X151EDD10

以下の通りです。

atmark@atde10:/media/sf_share/installDisk/make_install_disk_image$ file /mnt/boot.scr 
/mnt/boot.scr: data