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はインストール不可など))
コメント
masa.yamaguchi
at_satoshi.ohta
太田です。
説明が不足していたので追記します。
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
太田 様
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
太田 様
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
太田です。
> ・更新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
太田様
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 |
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 アーカイブ
> その場合、上記SWUは、RESTAPI(POST "/api/swu/install/url")を使用して、インストールできますでしょうか。
(インストールにあたっての制限も併せてご教示ください(大きいSWUはインストール不可など))
少なくとも Armadillo にインストール出来る範囲内の大きさの SWU イメージであればインストールできるはずです。
どうぞよろしくお願いいたします。