Armadilloフォーラム

複数コンテナとカーネルビルドしたABOSを同時にアップデートするSWUパッケージの作成方法

okochi

2025年9月11日 17時16分

お世話になります。

Armadillo X2において複数コンテナとこちらでカーネルビルドしたABOSを同時にアップデートできるswuファイルを作成したいと考えております。
1つのSWUファイルで可能でしょうか?

可能な場合、プロジェクトのフォルダの構成例、descファイルの記述例など教えていただけないでしょうか?

よろしくお願いいたします。

==========
製品型番:Armadillo X2
カーネルバージョン: 5.10.240
==========

コメント

at_satoshi.ohta

2025年9月11日 17時35分

太田です。

確認ですが、でカーネルビルドしたABOSは build_rootfs.sh を使用して作成した *.tar.zst のファイルという認識でよろしいでしょうか?

どうぞよろしくお願いいたします。

太田様
コメントありがとうございます。

> 確認ですが、でカーネルビルドしたABOSは build_rootfs.sh を使用して作成した *.tar.zst のファイルという認識でよろしいでしょうか?
ABOSのカーネルビルドは下記リンクを参考に行いました。(menuconfigでUSB Touchscreen Driverを有効にしてます)

■Armadillo-IoT(G4)/X2:Linuxカーネルのビルド~Armadilloへの書き込み(一連の手順)
https://armadillo.atmark-techno.com/blog/615/21708

ATDE上で下記コマンドでカーネルビルドしてます。

[ATDE ~]$ wget https://armadillo.atmark-techno.com/files/downloads/alpine/v3.21/atmark/src/linux-at-x2-5.10.238-r0.tar
[ATDE ~]$ tar xf linux-at-x2-5.10.238-r0.tar
[ATDE ~]$ tar xf linux-at-x2-5.10.238-r0/linux-5.10.238-r0.tar.gz
[ATDE ~]$ cd ../linux-5.10-5.10.238-r0/
[ATDE ~]$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- x2_defconfig
[ATDE ~]$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
[ATDE ~]$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j5

こちらの成果物のフォルダには*.tar.zstファイルがなかったため、太田さんが言われる方法と違うかと思います。
ただし、こちらまだ検討段階のため、build_rootfs.shを使ってカーネルビルドをしたほうが良い場合はそちらで対応可能です。

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

at_satoshi.ohta

2025年9月12日 14時49分

太田です。

ブログの手順をご参照とのことで了解しました。
ブログでも示しておりますが、以下のコマンドを実行して kernel.desc を作成して頂けますでしょうか?

[ATDE ~/linux-[VERSION]]$ /usr/share/mkswu/examples/kernel_update_plain.install.sh ~/mkswu/kernel.desc

mkswu は複数の desc ファイルを一つの SWU イメージにすることができます。

[ATDE ~]$ mkswu ~/mkswu/kernel.desc ~/my_project1/my_project1.desc ~/my_project2/my_project2.desc  -o project.swu

例えば、複数のコンテナ毎に my_project1.desc、my_project2.dec と管理して、上記のコマンドで 3つの desc ファイルを1つの SWU イメージにできます。

desc ファイルですが、例えばコンテナイメージを Armadillo にインストールするのであれば、tar アーカイブとして保存したコンテナイメージ my_project1.tar は以下のように記述することで SWU イメージに組み込めます。
~/my_project1/my_project1.descの場合、~/my_project1/my_project1.tar があるとすると、

swdesc_embed_container  --version extra_os.my_project1 1 my_project1.tar

ファイルであれば、以下のような記述になります。
~/my_project1/src があるとすると、

swdesc_files --version my_project1 1 --dest "/var/app/rollback/volumes/my_project1" "src"

この場合、ATDE 上の src ディレクトリ内のファイルが Armadillo 上の /var/app/rollback/volumes/my_project1 ディレクトリ以下に配置されます。
desc ファイルの書き方は以下のマニュアルの節をご参照ください。

https://manual.atmark-techno.com/armadillo-x2/armadillo-x2_product_manu…

どうぞよろしくお願いいたします。

太田様

知りたかったことがわかりました。
(mkswuで複数のdescファイルを指定してあげればよかったのですね。1SWUファイル1descファイルと勝手に勘違いしておりました。。。)
descファイルの書式説明など、誠にありがとうございます。

また来週確認してみます。迅速な回答、ありがとうございました。