Armadilloフォーラム

ABOS Webに新規でページを組み込む場合の環境構築及びビルド手順について

yorikasa

2025年7月18日 14時53分

==========
製品型番:AG6221
ABOSバージョン:3.21.3-at.14
カーネルバージョン:Linux armadillo 5.10.238-0-at #1-Alpine Tue Jun 24 04:34:00 UTC 2025 armv7l Linux
3G/LTE モジュール情報 (Debianのみ):
その他:ABOS Web v1.9.0
==========

いつもお世話になっております。

ABOS Webに新規でページを組み込む場合の環境構築及びビルド手順について教えていただきたく存じます。
ビルドを行い組み込むという方法の他に下記についても検討しましたが、利用面や開発時間を考慮するとABOS Webをビルドした方が早いのではということでご相談させていただきました。
追加したいページの概要としては、各種設定用の入力ボックスを有した画面、ボタンの押下をトリガとした画面等になります。

・ABOS Webとは別にWebアプリケーションコンテナを搭載する
・ABOS Webと同等の機能を持ったWebアプリケーションコンテナを作成

主にお聞きしたいのは下記の内容となります。

1.ビルドする際の推奨環境(OSや必要パッケージ等)
  ※ご提供のATDE環境上で用意できるのであれば、大変助かります。
2.ビルド手順
3.BaseOSへ組み込む方法
4.ビルドしたABOS Webを組み込んだinitial_setup.swuを作成するときの注意事項
5.4.のArmadilloに対してアップデート用のSWUファイルを作成するときの注意事項

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

コメント

佐藤です。
> 主にお聞きしたいのは下記の内容となります。
>
> 1.ビルドする際の推奨環境(OSや必要パッケージ等)
>   ※ご提供のATDE環境上で用意できるのであれば、大変助かります。
rust のビルド環境が動く環境であれば一般的な Linux PC 環境でも良いですが、
mkswu コマンドを使用した swu ファイルの作成は現状 ATDE9 でしかできませんので、ATDE9 を使用してください。

以下の通り rust のビルド環境をインストールしてください。

[atde]$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
[atde]$ cargo install cross

atmark ユーザが sudo なしに docker コマンドを実行できるようにしてください。

[atde]$ sudo usermod -aG docker atmark

このあと ATDE9 を再起動してください。

> 2.ビルド手順
abos-web の "abos-web-1.9.0-r0.tar" を展開し、更にその中に入っている "abos-web-1.9.0.tar.gz" を解凍したディレクトリの中で
以下のビルドコマンドを実行します。

[atde]$ cross build --target=armv7-unknown-linux-musleabihf --release --frozen --features tls-rustls

(もし、Armadillo G4 や A9E など、arm64 アーキテクチャ向けにビルドする場合は
"aarch64-unknown-linux-musl" にしてください。)

> 3.BaseOSへ組み込む方法
swu でインストールするのが良いかと思います。

"abos-web-1.9.0" ディレクトリ直下に以下の内容で "Makefile" を作成してください。

OUTDIR = output
 
install:
	mkdir -p $(OUTDIR)
	install -m755 -D -t $(OUTDIR)/usr/bin/ \
		target/armv7-unknown-linux-musleabihf/release/abos-web # ★ここも arm64 向けの場合は aarch64-unknown-linux-musl にしてください
	install -m755 -D -t $(OUTDIR)/etc/init.d/ \
		etc/init.d/abos-web
	install -m644 -D -t $(OUTDIR)/etc/conf.d/ \
		etc/conf.d/abos-web
	install -m644 -D -t $(OUTDIR)/etc/doas.d/ \
		etc/doas.d/abos_web.conf
	install -m755 -D -t $(OUTDIR)/usr/libexec/abos-web/ \
		scripts/*.sh
	install -m755 -D -t $(OUTDIR)/usr/libexec/abos-web/openvpn/ \
		scripts/openvpn/*.sh
	mkdir -p $(OUTDIR)/usr/share/abos-web/static
	cp -rL static/. $(OUTDIR)/usr/share/abos-web/static/
.PHONY: install

次に "abos-web-1.9.0" ディレクトリ直下に以下の内容で "abos-web.desc" を作成してください。

swdesc_option component=extra_os.abos-web
swdesc_option version=1
 
swdesc_files --dest / output/

make install を実行して、その後 swu ファイルを生成してください。

[atde]$ make install
[atde]$ mkswu abos-web.desc

生成された abos-web.swu を armadillo へインストールしてください。

> 4.ビルドしたABOS Webを組み込んだinitial_setup.swuを作成するときの注意事項
abos-web は initial_setup.swu ではなく、上記の abos-web.swu を使用してください。

> 5.4.のArmadilloに対してアップデート用のSWUファイルを作成するときの注意事項
ソースを更新し、ビルドするたびに "make install" を実行してから swu ファイルを作成してください。
また更新するたびに "swdesc_option version=" 値を上げてください。

佐藤さん

5点についてご教示いただきありがとうございました。
ATDE9 に環境を構築し、確認してみます。

追加で申し訳ございませんが、下記につきましてもご教示いただけますと幸いです。

1. descファイルについて
output 配下のファイルを / に配置という内容があったのですが、こちらは最後に実行することで既に組み込まれているABOS Webを上書きできるということで認識あっておりますでしょうか?
例えば、以下のようにBaseOSを3.21.3-at.14へ上げる内容を記載していた場合、「swdesc_files --dest / output/」を①で実行すると、その次にBaseOSを更新するので期待の状態にならないと想像しているのですが、いかがでしょうか?
②で実行すれば、BaseOSを更新後に上書きするので、ABOS Webが期待通り更新される認識です。

# ABOS Webのアップデート(①)
swdesc_files --dest / output/
 
# BaseOSのアップデート
swdesc_tar --base-os "baseos-6e-3.21.3-at.14.tar.zst"
 
# ABOS Webのアップデート(②)
swdesc_files --dest / output/

2. BaseOSとABOS Webの組み合わせについて
毎月のアップデート情報から、BaseOSのアップデートのみを実施したいということがあった場合、swdesc_tarでBaseOSの更新後、「swdesc_files --dest / output/」を実行すれば、利用中のABOS Webをそのまま利用できるのでしょうか?
それとも、BaseOSのアップデートを行った場合、ABOS Webも最新のものを利用してアップデートを実施した方が良いのでしょうか?
ABOS Webについては、脆弱性に関する修正が無ければ、利用中のバージョンを維持していきたいと考えております。
その場合、BaseOSの内容だけが最新になってしまうので何らかの不都合が出てくる可能性があれば、利用中のバージョンの維持について検討し直したいと考えております。

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

佐藤です。

> 1. descファイルについて
> output 配下のファイルを / に配置という内容があったのですが、こちらは最後に実行することで既に組み込まれているABOS Webを上書きできるということで認識あっておりますでしょうか?
> 例えば、以下のようにBaseOSを3.21.3-at.14へ上げる内容を記載していた場合、「swdesc_files --dest / output/」を①で実行すると、その次にBaseOSを更新するので期待の状態にならないと想像しているのですが、いかがでしょうか?
> ②で実行すれば、BaseOSを更新後に上書きするので、ABOS Webが期待通り更新される認識です。
swdesc_tar に "--base-os" がついていれば書いてある順番に関わらず最初に実行されるので、
この場合ですと①に書いても②に書いても期待通りに更新されます。

> 2. BaseOSとABOS Webの組み合わせについて
> 毎月のアップデート情報から、BaseOSのアップデートのみを実施したいということがあった場合、swdesc_tarでBaseOSの更新後、「swdesc_files --dest / output/」を実行すれば、利用中のABOS Webをそのまま利用できるのでしょうか?
> それとも、BaseOSのアップデートを行った場合、ABOS Webも最新のものを利用してアップデートを実施した方が良いのでしょうか?
> ABOS Webについては、脆弱性に関する修正が無ければ、利用中のバージョンを維持していきたいと考えております。
ABOS Webの更新がなければ、そちらでカスタマイズしたABOS Webを維持しても問題ないと思います。
ABOS Webに更新があれば、最新の ABOS Web のソースに再度カスタマイズを施していただきそれをインストールしたほうが良いかと思います。
(ABOS Webに更新があるかどうかは弊社が月末にリリースしている「Armadillo 製品アップデートのお知らせ」で確認できます。)

佐藤さん

追加のご質問に関する回答ありがとうございました。
毎月のアップデート情報を確認し、判断していきたいと思います。

再度ご質問させていただくかと思いますが、その際もどうぞよろしくお願いいたします。