Armadilloフォーラム

作成したswuでブートローダーが更新できない

e1234

2025年10月3日 14時13分

==========
製品型番:AG9130-C03Z
Debian/ABOSバージョン:3.22.1-at.5
カーネルバージョン:5.10.243-0-at
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

下記のような内容でdescファイルを作成し、swuイメージを作成してインストールしたところ、
ArmadilloBaseOSや、ファイル更新はできたのですが、ブートローダーだけ更新できませんでした。

mkswu バージョン は、「7.8」で作成しました。

descファイルの記述内容に、何か問題ありますでしょうか?
-------------------------------------------------------
<swuイメージ作成時の、descファイル中身>
swdesc_option version=1.0.1
swdesc_tar "baseos-900-3.22.1-at.5.tar.zst" --version base_os 3.22.1-at.5
swdesc_boot "imx-boot_armadillo-900_2023.04-at8"
swdesc_embed_container "release_image.tar"
swdesc_files --extra-os "container_start"
-------------------------------------------------------

swuインストール前

# ブートバージョン
U-Boot SPL 2023.04-at2 (Apr 10 2025 - 05:14:58 +0000)
 
armadillo:~# cat /etc/atmark-release
3.21.3-at.5
 
armadillo:~# cat /etc/sw-versions
base_os 3.21.3-at.5
boot 2023.4-at2
extra_os.initial_setup 4

swuインストール後

# ブートのバージョン
U-Boot SPL 2023.04-at2 (Apr 10 2025 - 05:14:58 +0000)
 
armadillo:~# cat /etc/atmark-release
3.22.1-at.5
 
armadillo:~# cat /etc/sw-versions
base_os 3.22.1-at.5
boot 2023.4-at.2
extra_os.initial_setup 4
extra_os.release_image_update 1.0.1
release_image_update 1.0.1
コメント

at_dominique.m…

2025年10月3日 15時49分

マルティネです。

> descファイルの記述内容に、何か問題ありますでしょうか?

この SWU に問題ありません。
起動中の sw-versions の問題です:
> boot 2023.4-at2

これも A9E リリース直後に修正した問題ですが、swupdate で「at2」という文字列をバージョンとして比較するとalpha順として比較されますので、at2 > at10 という残念な結果になります。
そのため sw-versions 等には at.2 として記載するはずですが、初期のインストーラーでは at2 として記載されていました。
(3.21-at.6 以降のインストーラーでは問題なくなりました)

また、 バージョンの比較として at2 > at.2 になっていますのでアップデートをインストールする際に bootloader がインストールされてません。
その場合は、SWU に bootloader しかない場合はバージョンを修正してからアップデートを失敗させます(2回目成功)が、他の内容があれば他の内容をインストールするとともにバージョンだけを修正して、以下の警告が表示されます:

'boot' version format was updated (2023.4-at2 -> 2023.4-at.2),
but 2023.4-at.8 has NOT been installed!
Please install this SWU again to update boot image.

大変お手数ですがメッセージの通りに同じ SWU を再びインストールしてください。

よろしくお願いします。

マルティネ様

お世話になっております。

同じSWUをインストール(インストール2回目)を行うと、ターミナル上に下記のメッセージが表示され、
ブートローダーは更新されませんでした。

armadillo:~# swupdate -i /mnt/swu/release_update.swu
SWUpdate v2024.12.0-git20250421-r0
 
Licensed under GPLv2. See source distribution for detailed copyright notices.
 
[INFO ] : SWUPDATE running :  [print_registered_handlers] :     no handler registered.
[INFO ] : SWUPDATE running :  [main] : Running on iot-a9e Revision at1
[INFO ] : SWUPDATE started :  Software Update started !
[INFO ] : SWUPDATE running :  [install_single_image] : Installing pre_script
[INFO ] : SWUPDATE running :  [read_lines_notify] : Skipping install of component base_os 3.22.1-at.5 (has 3.22.1-at.5)
[INFO ] : SWUPDATE running :  [read_lines_notify] : Skipping install of component boot 1.0.1 (has 2023.4-at.2)
[INFO ] : SWUPDATE running :  [read_lines_notify] : Skipping install of component extra_os.release_image_update 1.0.1 (has 1.0.1)
[INFO ] : SWUPDATE running :  [read_lines_notify] : Skipping install of component release_image_update 1.0.1 (has 1.0.1)
[ERROR] : SWUPDATE failed [0] ERROR : ----------------------------------------------
[ERROR] : SWUPDATE failed [0] ERROR : /!\ Nothing to do -- failing on purpose to save bandwidth
[ERROR] : SWUPDATE failed [0] ERROR : ----------------------------------------------
[ERROR] : SWUPDATE failed [0] ERROR : Command failed: sh $1 /var/tmp/scripts_pre.sh
[ERROR] : SWUPDATE failed [0] ERROR : Error streaming enc.zst.scripts_pre.sh
[ERROR] : SWUPDATE failed [1] Image invalid or corrupted. Not installing ...
swupdate_image_write failed: Connection reset by peer
[ERROR] : SWUPDATE failed [0] ERROR : SWUpdate *failed* !

更新できなかった原因は分かりますでしょうか?
Skipping install of component boot 1.0.1 (has 2023.4-at.2)
と出ているので、descファイルの1行目に
swdesc_option version=1.0.1
でバージョン指定を記述したことによるもの(descファイルの記述がよくない)でしょうか?

at_dominique.m…

2025年10月3日 16時24分

マルティネです

> 更新できなかった原因は分かりますでしょうか?
> Skipping install of component boot 1.0.1 (has 2023.4-at.2)

あれ…すみません、これは mkswu のバグです。この desc ファイルでも boot バージョンは 2023.4-at.X になるはずでした。
swdesc_boot だけは特別で、swdesc_option で設定した component/version を無視してるはずですが、
どこかのタイミングで無視しなくなったようです。

今後のバージョンで修正してテストを追加しますが、ひとまず .desc ファイルで workaround してください。
swdesc_boot 命令を swdesc_option version= より前に移動すれば一番シンプルだと思います。
mkswu 生成後に「mkswu --show release_update.swu」で確認していただければ swdesc_boot --version boot 2023.4... として記載されるようになるはずです。

よろしくお願いします

マルティネ様

お世話になっております。

> swdesc_boot 命令を swdesc_option version= より前に移動すれば一番シンプルだと思います。
>mkswu 生成後に「mkswu --show release_update.swu」で確認していただければ swdesc_boot --version boot 2023.4... として記載されるようになるはずです。

「mkswu --show release_update.swu」で確認すると、

swdesc_boot imx-boot_armadillo-900_2023.04-at8
#  (encrypted)

というような形で、バージョンは表示されませんでしたが、
ご教授いただいた通り、descファイルの記載を変更し、swuイメージを2回インストールすることで、
無事にブートローダーを更新することができました。
ありがとうございました。