Armadilloフォーラム

development.swuのアップデートに失敗する。

t_matsuyama

2024年10月17日 19時51分

大変お世話になっております。

Armadillo-IoT A6E Di8+Ai4を新たに購入し、開発したソフトウェアをdevelop.swuとして
Armadilloへインストールしようとしましたが、失敗しました。
解決策を教えて頂けるとありがたいです。

・発生したエラー
他のArmadilloにアップデートして動かした実績のあるソフトをdevelopment.swuにして
ABOSwebからArmadilloへインストール実行すると、証明書に関するエラーが発生。
(エラー内容)
development.swu をインストールします。
SWU アップロード中に接続が切断されました。
SWUpdate v2024.05.2_git20240718-r0
Licensed under GPLv2. See source distribution for detailed copyright notices.
[INFO ] : SWUPDATE running : [print_registered_handlers] : no handler registered.
[INFO ] : SWUPDATE running : [main] : Running on iot-a6e Revision at1
[INFO ] : SWUPDATE started : Software Update started !
7CFD74B6:error:17000064:CMS routines:cms_signerinfo_verify_cert:certificate verify error:crypto/cms/cms_smime.c:290:Verify error: self-signed certificate
[ERROR] : SWUPDATE failed [0] ERROR : Signature verification failed
[ERROR] : SWUPDATE failed [0] ERROR : Compatible SW not found
swupdate_image_write failed: Broken pipe
swupdate exited
インストールが失敗しました。

調査した内容
1.証明書の確認
armadillo:~# abos-ctrl certificates list
- swupdate.pem: xxxxxx
- atmark-1
- atmark-2

また、
atmark@atde9:~$ mkswu --show ~/mkswu/initial_setup.swu | grep "'> /etc/swupdate.pem'"
atmark@atde9:~$

2..pemの内容の確認
cat /etc/swupdate.pem
記載はしませんが、BEGIN CERTIFICATEーEND CERTIFICATE内に200~300字程度の暗号を3セット確認。

3.正しい.pemと.keyを利用しているか確認
数人で開発を進めているため、
mkswuフォルダ内に適切なswupdate.key、swupdate.pemを配置
clear_container.swu、ABOSダウングレードは実行可能でした。
(development.swuのみ失敗。)

4.ATDEやArmadilloの再起動
関係ありませんでした。

5.コンテナの状態を確認
関係ないかと思いますが
armadillo:~# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
armadillo:~#

コメント

太田です。

お世話になっております。

> [ERROR] : SWUPDATE failed [0] ERROR : Signature verification failed

エラー内容の上記からATDE9でSWUイメージ作成に使用された署名用の秘密鍵(swupdate.key)とArmadilloに置かれている公開鍵(swupdate.pem)のペアが違うため、インストールに失敗しているようです。

Armadilloに配置された署名用公開鍵(swupdate.pem)に対応する秘密鍵でdevelop.swuを作成し直すか、
もしくは、Armadillo上にある署名用公開鍵を一度リセットして良ければ、以下のコマンドをArmadilloのターミナルで実行した後、initial_setup.swuをArmadilloにインストールした後、もう一度develop.swuをインストールするのも手かと思います。

armadillo:~# abos-ctrl certificate reset

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

太田様

ご回答ありがとうございます。
ご回答の手順で無事解決致しました。

秘密鍵と公開鍵のペアが異なっていたということですが、
開発者の人数分.keyや.pemがある場合、
mkswuフォルダ内にある.keyや.pemを変更すると
ペアが異なってしまうという理解でいいでしょうか。

太田です。

解決して何よりです。

> 開発者の人数分.keyや.pemがある場合、
> mkswuフォルダ内にある.keyや.pemを変更すると
> ペアが異なってしまうという理解でいいでしょうか。

はい。その理解で問題ないです。
複数人で開発する場合は、Armadilloに署名した鍵を含むmkswuのフォルダを開発者内で共有すればよいかと思います。
ただし、この方法は実際に運用するArmadilloに対してはセキュリティ上、鍵が流出するリスクが高まりますので推奨いたしません。

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

太田様

承知しました。開発時に留めるようにします。

ご回答いただきありがとうございました。
今後ともよろしくお願いいたします。