Armadilloフォーラム

Armadillo-IoT G4 コンテナ内からswuアップデート後ネットワーク設定不可

sato.yagi

2025年9月22日 16時41分

==========
製品型番:AGX4500-C00Z(Armadillo-IoT G4)
Debian/ABOSバージョン:3.20.3-at.7
カーネルバージョン:5.10.224-0-at
3G/LTE モジュール情報 (Debianのみ):利用なし
==========
お世話になっております。柳沼と申します。

コンテナ起動中からコンテナ内のREST APIを利用してコンテナswuアップデートを実施後、
コンテナ起動時にREST APIを利用したネットワーク設定を行っていますが、
静的IPアドレス設定を指定しても、dhcp指定によるIPアドレス未設定(169.254.118.56)と
なってしまい困っております。
なお、コンテナ起動中のRebootでも同様にREST APIを利用したネットワーク設定を
行っておりますが、こちらは問題なく静的IPアドレス設定が反映されています。
コンテナswuアップデート時のログを添付させて頂きました。
なぜ、ネットワーク設定が行えないのかログから分かることがありましたら、
ご指導のほどよろしくお願いします。

ネットワーク設定内容
 eth0: 静的IPアドレス = 192.168.1.10
 eth1: dhcp
コンテナ起動時のREST APIコール内容
 curl -k -H "Authorization:Bearer トークン情報" -d ipv4.method=manual -d ipv4.addresses=192.168.1.10/24 -X PATCH https://host.containers.internal:58080/api/connections/Wired%20connecti…

コンテナswu内にabos側のネットワークコンフィングファイル格納あり
 etc\NetworkManager\system-connections\Wired connection 1.nmconnection  ・・・  eth0用
 etc\NetworkManager\system-connections\Wired connection 2.nmconnection  ・・・  eth1用

ファイル ファイルの説明
dmesg.txt
messages.txt
teraterm_log.txt armadilloとシリアルUSB経由でteratermを接続を行い、「tail -f messages」コマンド実行中にコンテナswuアップデート実施したときのteratermに表示されたログ内容になります
コメント

at_dominique.m…

2025年9月25日 12時55分

柳沼さん

お世話になっています、
マルティネです。

今の説明では、 rest API でインタフェースを設定した後に SWU による展開で上書きされて、その SWU の設定が無視されたように見えます。

> コンテナswu内にabos側のネットワークコンフィングファイル格納あり

いくつかを確認していただけますでしょうか:
* NetworkManager の nmconnection ファイルは、NetworkManager の制限としてファイルのモードが 0600 (-rw-------) でないと無視されます。
SWU 構築時に desc ファイル等で chmod 0600 を行わないと、デフォルトでは 0644 (-rw-r--r--) になってしまう可能性がたかいですが、モードは設定されてますでしょうか?
* 無視されたファイルを作った後に rest API で接続を編集すると違うファイル名で保存される可能性がありますので、Armadillo上にログインできる場合(シリアル接続等)に 「ls -l /etc/NetworkManager/system-connections/」等でリストしていただけますか?

よろしくお願いします

マルティネ様 ご返信ありがとうございます。

ご確認事項について、回答させていただきます。
マルティネ様の想定通り、モードがNetworkManager仕様に準拠できていないことが問題であると理解いたしました。
ATDE上に配置しているモードを 0600 (-rw-------) に変更し SWUファイルを再作成して確認してみます。
コメント頂いた desc ファイルを修正すべき等、対応方法について私の認識に誤りがありましたら
ご指導のほどよろしくお願いします。

> * NetworkManager の nmconnection ファイルは、NetworkManager の制限としてファイルのモードが 0600 (-rw-------) でないと無視されます。
> SWU 構築時に desc ファイル等で chmod 0600 を行わないと、デフォルトでは 0644 (-rw-r--r--) になってしまう可能性がたかいですが、
> モードは設定されてますでしょうか?
 →モードを意識しておりませんでした。

> * 無視されたファイルを作った後に rest API で接続を編集すると違うファイル名で保存される可能性がありますので、
> Armadillo上にログインできる場合(シリアル接続等)に 「ls -l /etc/NetworkManager/system-connections/」等でリストしていただけますか?
 →確認した内容は下記となります。

armadillo:/etc/NetworkManager/system-connections# ls -l
total 10
-rw-------    1 root     root           249 Jan  1 09:00 Wired connection 1-9a4c0a35-2358-337e-8419-45a798f565e0.nmconnection
-rw-r--r--    1 root     root           247 Jan  1 09:08 Wired connection 1.nmconnection
-rw-------    1 root     root           220 Jan  1 09:00 Wired connection 2-a98425e9-9d3a-354c-a714-c0fbd5d781ca.nmconnection
-rw-r--r--    1 root     root           220 Jan  1 09:08 Wired connection 2.nmconnection

ATDE9環境のモードも参考までに転記しておきます。

atmark@atde9:~$ ls -l webment_agent/abos/resources/etc/NetworkManager/system-connections
合計 8
-rw-r--r-- 1 atmark atmark 247  7月  4 13:04 'Wired connection 1.nmconnection'
-rw-r--r-- 1 atmark atmark 220  7月  4 13:04 'Wired connection 2.nmconnection'

at_dominique.m…

2025年9月26日 9時46分

マルティネです。

> マルティネ様の想定通り、モードがNetworkManager仕様に準拠できていないことが問題であると理解いたしました。
> ATDE上に配置しているモードを 0600 (-rw-------) に変更し SWUファイルを再作成して確認してみます。
> コメント頂いた desc ファイルを修正すべき等、対応方法について私の認識に誤りがありましたら
> ご指導のほどよろしくお願いします。

ご確認ありがとうございます。

基本的には desc ファイルで chmod を行ってから swdesc_files を記載する形で問題ないと考えています:

chmod 600 webment_agent/abos/resources/etc/NetworkManager/system-connections/*.nmconnection
swdesc_files --extra-os webment_agent/abos/resources

ただし、今の Armadillo に転送しても、一時的に認識されてないファイルを転送したことで NetworkManager が
"Wired connection 1-9a4c0a35-2358-337e-8419-45a798f565e0.nmconnection" 等のファイルも生成しましたので、
この状態で正しいモードのファイルを転送してもどちらかの設定ファイルが優先されるかを予測できません
(試したところ転送したファイルが優先されたみたいですが、たまたまなのか、必ずそうなるかは確認してません)

そのため、初期化されてない Armadillo でも転送し直したい場合は一度設定ファイルを削除してから転送した方が無難です。

例えば以下の通りで削除できます(順番に処理されてますので、swdesc_files 前に削除しないと転送したファイルも削除されます)

swdesc_command --extra-os "rm -f /etc/NetworkManager/system-connection/Wired*nmconnection"
chmod 600 .../*.nmconnection
swdesc_files --extra-os ...resources

よろしくお願いします。

マルティネ様

ご返信ありがとうございます。
armadilloに転送前にarmadillo内ファイルを削除するSWUファイルを再作成して確認してみます。
詳細なご説明ありがとうございました。

> 基本的には desc ファイルで chmod を行ってから swdesc_files を記載する形で問題ないと考えています:
> ただし、今の Armadillo に転送しても、一時的に認識されてないファイルを転送したことで NetworkManager が
> "Wired connection 1-9a4c0a35-2358-337e-8419-45a798f565e0.nmconnection" 等のファイルも生成しましたので、
> この状態で正しいモードのファイルを転送してもどちらかの設定ファイルが優先されるかを予測できません
> そのため、初期化されてない Armadillo でも転送し直したい場合は一度設定ファイルを削除してから転送した方が無難です。

マルティネ様

お世話になっております。
ご提示いただいたdescファイルの記載内容を参考に、添付の通りapp.descを編集いたしました。
しかしながら、SWUビルド後にABOS WebからSWUインストールを実施したところ、添付したabosweb_err.txtの通りエラーが発生しております。

編集したファイルはapp.descのみでございますので、記載方法に誤りがないかご確認いただけますと幸いです。
お手数をおかけしますが、ご教授のほどよろしくお願いします。

ファイル ファイルの説明
app.desc_.txt 編集したapp.descファイル。
abosweb_err.txt SWUインストール時に表示したエラーメッセージ。

at_dominique.m…

2025年9月30日 12時04分

umeshiさん

マルティネです。

> しかしながら、SWUビルド後にABOS WebからSWUインストールを実施したところ、添付したabosweb_err.txtの通りエラーが発生しております。

「Signature verification failed」のエラーは、initial_setup でインストールされたはずの証明書がインストールされていないのは原因です。
複数人で開発する際に、別々で ATDE上に mkswu --init を実行した際に複数の鍵ができてしまいます。
ATDE上の ~/mkswu ディレクトリを共有して鍵を再利用するか、それぞれの証明書を追加するかの対応になると思います。
エラーメッセージにあったリンクですが、こちらを確認していただければ幸いです:
https://armadillo.atmark-techno.com/faq/swupdate-troubleshooting-abos#s…

> 編集したファイルはapp.descのみでございますので、記載方法に誤りがないかご確認いただけますと幸いです。

desc ファイルの内容の問題ではありません。大丈夫だと思います。
関係ないところでこちらの都合ですみませんが、最新の ABOS では /etc/atmark/abos_web/tokens が /var/lib/abos-web/tokens への symbolic link に変更されましたので、アップデートの際にトークンではなくリンクの所有者が対処になります。
「/etc/atmark/abos_web/tokens/」と最後に / を追加すると更新するタイミングにリンクが解決されますので、都合のいい時に更新してください。

よろしくお願いします