Armadilloフォーラム

swupdateでのABOSの更新

tmygt

2023年9月6日 12時22分

しばらく使用していなかったArmadillo IoT G4のABOSの更新を試しています。
該当の機器は本年3-4月ごろ使っていて、initial_setup.swuを使ったSW更新も試していました。

今回、Armadillo IoT G4の利用を再開するにあたり、まずはABOSの更新をしようと下記手順を試したところ、失敗しました。

https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…

エラーメッセージは下記のようになっています。

armadillo:~# swupdate -d '-u https://armadillo.atmark-techno.com/files/downloads
 
/armadillo-iot-g4/image/baseos-x2-3.18.3-at.3.swu'
SWUpdate v
 
Licensed under GPLv2. See source distribution for detailed copyright notices.
 
[INFO ] : SWUPDATE running :  [main] : Running on AGX4500 Revision at1
[INFO ] : SWUPDATE running :  [channel_get_file] : Total download size is 67171 kB.
[INFO ] : SWUPDATE started :  Software Update started !
10FBD78CFFFF0000:error:17000064:CMS routines:cms_signerinfo_verify_cert:certificate verify error:crypto/cms/cms_smime.c:289:Verify error: self-signed certificate
[ERROR] : SWUPDATE failed [0] ERROR : Signature verification failed
[ERROR] : SWUPDATE failed [0] ERROR : Compatible SW not found
[ERROR] : SWUPDATE failed [1] Image invalid or corrupted. Not installing ...
[INFO ] : No SWUPDATE running :  Waiting for requests...
[ERROR] : SWUPDATE failed [0] ERROR : Writing into SWUpdate IPC stream failed.
[ERROR] : SWUPDATE failed [0] ERROR : Channel operation returned error (23): 'Failed writing received data to disk/application'
Child 1966(download) exited, status=1

FAQ( https://armadillo.atmark-techno.com/faq/swupdate-troubleshooting-abos )を見る限り、署名検証に失敗しているようです。
確かに、Armadillo IoT G4の/etc/swupdate.pemを確認したところ、私がATDEで生成した公開鍵しか記載されていませんでした。

質問は2点あります。

1. initial_setup.swu を実行した後は、アットマークテクノ様が公開されているABOSイメージファイルを使った更新はできないのでしょうか?
2. /etc/swupdate.pem にアットマークテクノ様の公開鍵を追加すれば動きそうな気がしているのですが、正しいでしょうか? その場合、公開鍵はどこから取得すればよいでしょうか。また、最近のABOS/swupdateでは /etc/swuptade.pem に自動でアットマークテクノ様の公開鍵が追加されているのでしょうか?

お手数おかけしますが、ご確認よろしくお願いいたします。

コメント

at_dominique.m…

2023年9月6日 13時44分

tmygtさん、

お世話になっています、
アットマークテクノのマルティネです。

> しばらく使用していなかったArmadillo IoT G4のABOSの更新を試しています。
> 該当の機器は本年3-4月ごろ使っていて、initial_setup.swuを使ったSW更新も試していました。

(アップデートを使ってくださってありがとうございます!)

> 今回、Armadillo IoT G4の利用を再開するにあたり、まずはABOSの更新をしようと下記手順を試したところ、失敗しました。
> [...]
> FAQ( https://armadillo.atmark-techno.com/faq/swupdate-troubleshooting-abos )を見る限り、署名検証に失敗しているようです。
> 確かに、Armadillo IoT G4の/etc/swupdate.pemを確認したところ、私がATDEで生成した公開鍵しか記載されていませんでした。
>
> 1. initial_setup.swu を実行した後は、アットマークテクノ様が公開されているABOSイメージファイルを使った更新はできないのでしょうか?

mkswu --init を実行した際に質問のどれかで「アットマークテクノが作成したイメージをインストール可能にしますか? (Y/n) 」の選択があります。
そこで n/no を回答すると、ごらんのとおり swupdate.pem から弊社の鍵が削除されて、こちらで提供しているアップデートをインストールできなくなってしまいます。
(initial_setup を作り直してもすでにインストールした個体で再びインストールできませんが、今後から変更したい場合は ~/mkswu/initial_setup.desc を削除して mkswu --init を再実行するか、 ~/mkswu/initial_setup.desc での「swdesc_command '> /etc/swupdate.pem'」を削除して mkswu ~/mkswu/initial_setup.desc を再実行できます)

> 2. /etc/swupdate.pem にアットマークテクノ様の公開鍵を追加すれば動きそうな気がしているのですが、正しいでしょうか?

はい、ファイルに鍵を追加すればインストール可能になります。
(シリアルコンソールなどで追加する場合は persist_file /etc/swupdate.pem 等でファイルを永続化しないとアップデートの際で鍵がなくなるはずです)

> その場合、公開鍵はどこから取得すればよいでしょうか。

現在使っている鍵の証明証は https://download.atmark-techno.com/baseos/swupdate-atmark-1.pemhttps://github.com/atmark-techno/mkswu/blob/master/certs/atmark-1.pem で取得できます。
ATDE で mkswu パッケージに入れていると思っていましたが、ないですね。今後追加しようと思います。

> また、最近のABOS/swupdateでは /etc/swuptade.pem に自動でアットマークテクノ様の公開鍵が追加されているのでしょうか?

インストール状態(購入状態やインストールディスクで初期化する等)のデフォルトでは /etc/swupdate.pem にアットマークテクノの証明書が記載されていますが、提供しているアップデートで証明書を戻すことはないです(そもそも、証明書がないとインストールできませんけど…)
(いずれ鍵を交代する予定で、その時に弊社のアップデートだけで、すでに弊社の証明書がある場合に新しい証明書を追加することになりますが、なければ何もしない設計です。)

また疑問がございましたらまた聞いてください。
よろしくお願いします。

tmygt

2023年9月6日 14時24分

マルティネさん

ご回答ありがとうございます。

> mkswu --init を実行した際に質問のどれかで「アットマークテクノが作成したイメージをインストール可能にしますか? (Y/n) 」の選択があります。
> そこで n/no を回答すると、ごらんのとおり swupdate.pem から弊社の鍵が削除されて、こちらで提供しているアップデートをインストールできなくなってしまいます。

mkswu実行時の選択肢次第なのですね。ずいぶん前に実行したため失念しておりました。ありがとうございます。

> はい、ファイルに鍵を追加すればインストール可能になります。
> (シリアルコンソールなどで追加する場合は persist_file /etc/swupdate.pem 等でファイルを永続化しないとアップデートの際で鍵がなくなるはずです)

> 現在使っている鍵の証明証は https://download.atmark-techno.com/baseos/swupdate-atmark-1.pemhttps://github.com/atmark-techno/mkswu/blob/master/certs/atmark-1.pem で取得できます。

上記の公開鍵を /etc/swupdate.pem に追記することで更新できました。

以上、ご対応いただきありがとうございました。