Armadilloフォーラム

ルートファイルシステムイメージのビルド  で作成したイメージの書き込みについて

masa.yamaguchi

2025年7月16日 13時05分

==========
製品型番:Aramadillo-610
ABOSバージョン:3.20.3-at.8
カーネルバージョン: 5.10.233
その他:ATDE9を使用
==========

<参考URL>
https://manual.atmark-techno.com/armadillo-610/armadillo-610_product_manual_ja/ch06.html#sct.build-alpine-rootfs

上記では、Armadillo-610 インストールディスクイメージ + ABOSの独自修正 + コンテナアプリ 
一式が入ったSWUイメージが作成できるという認識で宜しいでしょうか。

その場合、上記SWUは、RESTAPI(POST "/api/swu/install/url")を使用して、インストールできますでしょうか。
(インストールにあたっての制限も併せてご教示ください(大きいSWUはインストール不可など))

コメント

at_satoshi.ohta

2025年7月16日 14時46分

太田です。

> 上記では、Armadillo-610 インストールディスクイメージ + ABOSの独自修正 + コンテナアプリ 
一式が入ったSWUイメージが作成できるという認識で宜しいでしょうか。

いえ、baseos-600-[VERSION].tar.zst はあくまでルートファイルシステムである ABOS を含むアーカイブファイルであるため、「5. インストール」の swupdate による方法の例では ABOS のみが更新されます。

製品マニュアルの例の desc ファイルのコマンドの末尾にコンテナイメージの tar アーカイブを SWU イメージに含めるコマンドを追記すれば、同じ SWU イメージに独自修正した ABOS + コンテナアプリを含めることは可能です。
例:my_project.tarはコンテナイメージの tar アーカイブ

[ATDE ~/build-rootfs-[VERSION]]$ vi OS_update.desc
swdesc_tar --version base_os [VERSION] --preserve-attributes baseos-600-[VERSION].tar.zst
swdesc_embed_container --version my_project 1 my_project.tar

> その場合、上記SWUは、RESTAPI(POST "/api/swu/install/url")を使用して、インストールできますでしょうか。
(インストールにあたっての制限も併せてご教示ください(大きいSWUはインストール不可など))

少なくとも Armadillo にインストール出来る範囲内の大きさの SWU イメージであればインストールできるはずです。

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

太田 様

masa.yamaguchiです。

ご回答ありがとうございます。
ご提示いただいた内容で検討いたします。

at_satoshi.ohta

2025年7月17日 7時48分

太田です。

説明が不足していたので追記します。
swdesc_embed_container <コンテナイメージの tar アーカイブ> はあくまでコンテナイメージのみですので、swdesc_files コマンドでコンテナにマウントするファイルも SWU ファイルに含める必要があります。

例えば、ABOSDE で作成したプロジェクトの desc ファイルが参考になるかもしれません。
以下は python プロジェクトの例です。

atmark@atde9:~/my_project$ cat swu/app.desc
swdesc_option component=my_project
swdesc_option version=1
:(省略)
 
swdesc_files --extra-os swu/app
swdesc_command "rm -rf /var/app/rollback/volumes/my_project"
swdesc_files --dest "my_project" "swu/dest"
swdesc_embed_container "swu/my_project.tar"

分かりづらいですが、swudesc_files に --extra-os をつけた場合は rootfs の / にコピーされます。

swdesc_files --extra-os swu/app

この場合は、ATDE 上に swu/app/etc/atmark/example.conf があった場合は、 Armadillo の ABOS 上の /etc/atmark/example.conf にコピーされます。

swdesc_files --dest "my_project" "swu/dest"

こちらは --extra-os がついていないので、Armadillo の ABOS 上のユーザーデータディレクトリ /var/app/rollback/volumes に my_project ディレクトリが作成されて、/var/app/rollback/volumes/my_project に ATDE 上の swu/dest 以下のファイルがコピーされます。

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

太田 様

masa.yamaguchiです。ご連絡が遅くなり、大変申し訳ございません。
以下試してみたところ、期待通りの動作をしないため、2点ほどお伺いしたいことがございます。

■以下 太田様 ご提示処理
[ATDE ~/build-rootfs-[VERSION]]$ vi OS_update.desc
swdesc_tar --version base_os [VERSION] --preserve-attributes baseos-600-[VERSION].tar.zst
swdesc_embed_container --version my_project 1 my_project.tar

上記を参考に、OS_update.descを以下の通り作成しました

■以下こちらで作成したOS_update.desc記載
-------------------------------
swdesc_tar --version base_os 3.20.7-t \
    --preserve-attributes baseos-600-3.20.7-at.8.20250813.tar.zst
 
swdesc_option component=04sht
swdesc_option version=1
swdesc_option BUILD_SBOM=auto
swdesc_option sbom_config_yaml=/home/atmark/prj/04sht/swu/sbom_config.yaml
 
swdesc_files --extra-os /home/atmark/prj/04sht/swu/app
swdesc_command "rm -rf /var/app/rollback/volumes/04sht"
swdesc_files --dest "04sht" "/home/atmark/prj/04sht/swu/dest"
swdesc_embed_container "/home/atmark/prj/04sht/swu/04sht.tar"
-------------------------------
■補足
・ROOTFS単独でSWU作成時は、インストール後に期待通り動作しております。(baseos-600-3.20.7-at.8.20250813.tar.zst のみのケース)
・04shtは起動時にログを出力するだけのシェルスクリプトのアプリです。
 これを OS_update.desc に追加しました。
 →パスの必要な個所は絶対パスで記載しています。

■お伺いしたい事
①最後の4行だけではバージョン情報が無いため、エラーとなりましたので、アプリのdescをそのまま転記しました。
 インストールはされましたが、app.confがコピーされないため、起動できませんでした。
 こちらの記載した「OS_update.desc」に問題点がございましたら、ご教示頂けますと幸いです。

②上記は1つのコンテナアプリのSWUのみの追加となりますが、複数のコンテナアプリのSWUを記載するときは
 どのような書き方になるかご教示頂きたいです。

太田 様

masa.yamaguchiです。
その後試行錯誤してROOTFS+複数コンテナの更新ができるようになりました。
ROOTFS( baseos-600-3.20.7-at.8.20250813.tar.zst)と複数のコンテナを更新する際の、OS_update.descの記載について、
こちらの操作手順に齟齬があればコメント頂けますと幸いです。
・更新SWU(OS_update.swu) については、もともとすでに更新対象が存在していることが前提であり、例えば 04sht コンテナが存在しないのに
 04shtについての更新用のOS_update.swuをインストールしても、04shtは起動しない
(前もって 04sht コンテナのインストールが必要であり、それを更新する形となる)
・OS_update.desc でROOTFSのファイル( baseos-600-3.20.7-at.8.yyyymmdd.tar.zst)とは別に、複数のアプリコンテナを記載する場合、
 各コンテナの app.descを順番に列挙して記載する。(但し★の修正が必要)

■OS_update.desc 記載内容
-----
swdesc_tar --version base_os 3.20.7-t \
    --preserve-attributes baseos-600-3.20.7-at.8.20250814.tar.zst
 
swdesc_option component=11sh
swdesc_option version=2
swdesc_option sbom_config_yaml=/home/atmark/prj/11sh/swu/sbom_config.yaml
 
swdesc_files --extra-os /home/atmark/prj/11sh/swu/app
swdesc_command "rm -rf /var/app/rollback/volumes/11sh"
swdesc_files --dest "11sh" "/home/atmark/prj/11sh/swu/dest"
swdesc_embed_container "/home/atmark/prj/11sh/swu/11sh.tar"
 
swdesc_option component=12sh
swdesc_option version=2
swdesc_option sbom_config_yaml=/home/atmark/prj/12sh/swu/sbom_config.yaml
 
swdesc_files --extra-os /home/atmark/prj/12sh/swu/app
swdesc_command "rm -rf /var/app/rollback/volumes/12sh"
swdesc_files --dest "12sh" "/home/atmark/prj/12sh/swu/dest"
swdesc_embed_container "/home/atmark/prj/12sh/swu/12sh.tar"

★上記アプリコンテナの記載を追加するにあたり、以下修正を実施
・swdesc_option BUILD_SBOM=auto の行は削除
・各ファイルについては絶対パス(mkswu OS_update.desc をする箇所から一が特定できるパス)で記載する

at_satoshi.ohta

2025年8月18日 10時05分

太田です。

> ・更新SWU(OS_update.swu) については、もともとすでに更新対象が存在していることが前提であり、例えば 04sht コンテナが存在しないのに
> 04shtについての更新用のOS_update.swuをインストールしても、04shtは起動しない
>(前もって 04sht コンテナのインストールが必要であり、それを更新する形となる)

こちら、ATDE 上に 04sht コンテナの tar アーカイブが存在する状態であり、mkswu コマンドでエラーなく SWU イメージを生成できたとします。
その SWU イメージを Amadillo にインストールすると、Armadillo に 04sht コンテナイメージが存在するかしないかに関係なく、最新の 04sht コンテナイメージが Armadillo にインストールされるはずです。

その上で、/etc/atmark/containers/04sht.conf も SWU イメージに含めれば、Aramdillo 起動時に 04sht コンテナを自動起動できるようになります。
例えば、/home/atmark/prj/04sht/swu/app/etc/atmark/containers/04sht.conf を作成して、desc ファイルでは

swdesc_files --extra-os /home/atmark/prj/04sht/swu/app

のように書けば良いかと思います。

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

太田様

masa.yamaguchiです。ご回答ありがとうございます。

こちら、ATDE 上に 04sht コンテナの tar アーカイブが存在する状態であり、mkswu コマンドでエラーなく SWU イメージを生成できたとします。
その SWU イメージを Amadillo にインストールすると、Armadillo に 04sht コンテナイメージが存在するかしないかに関係なく、最新の 04sht コンテナイメージが Armadillo にインストールされるはずです。
 
その上で、/etc/atmark/containers/04sht.conf も SWU イメージに含めれば、Aramdillo 起動時に 04sht コンテナを自動起動できるようになります。
例えば、/home/atmark/prj/04sht/swu/app/etc/atmark/containers/04sht.conf を作成して、desc ファイルでは
 
swdesc_files --extra-os /home/atmark/prj/04sht/swu/app
のように書けば良いかと思います。

上記対応を実施しました。
しかしながら、インストール時に失敗いたします。
(添付資料:インストール失敗ログ.txt をご確認ください。その際の OS_update.desc も添付します(OS_update.desc.txt))
■状況
04sht コンテナについて、一度インストールできたことを確認したうえで、初期のインストールディスクイメージの書きこみからやり直して、
上記OS_update.descで作成したイメージファイルを書き込んでおります。
又、「/home/atmark/prj/04sht/swu/app/etc/atmark/containers/04sht.conf を作成して、desc ファイルでは
   swdesc_files --extra-os /home/atmark/prj/04sht/swu/app のように書く」
という操作も実施しております。
インストール失敗時のログから、こちらの手順不備等ございましたら、ご指摘いただけますと幸いです。

ファイル ファイルの説明
04sht.confのパス.png
OS_update.desc_.txt
インストール失敗ログ.txt