Armadilloフォーラム

base_os 3.19.2-at.5の更新

uen2825

2024年7月11日 8時59分

お世話になっております。
base_os 3.19.1-at.4からbase_os 3.19.2-at.5にアップデートしました。
SLEEPモードで動かしたところ、2回目のスリープでエラーが発生する事が多くなりました。
前のバージョンではエラーは発生しておりません。
エラーログを見ると「/dev/ttyMux2」が開けないとのメッセージがありました。
エラーログと使用しているプログラムを見て頂けますでしょうか。
何か設定が足りない等ございましたらご教授願います。

Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/serial/serialposix.py", line 322, in open
    self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 19] No such device: '/dev/ttyMux2'
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "/root/gw_container/customize/main.py", line 1285, in rcv
    if Uketuke(x) == 0:
       ^^^^^^^^^^
  File "/root/gw_container/customize/main.py", line 100, in Uketuke
    if Lte_Chk() == 0:
       ^^^^^^^^^
  File "/root/gw_container/customize/main.py", line 1561, in Lte_Chk
    _mux2 = serial.Serial('/dev/ttyMux2', baudrate=460800, timeout=1)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/serial/serialutil.py", line 244, in __init__
    self.open()
  File "/usr/lib/python3.11/site-packages/serial/serialposix.py", line 325, in open
    raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 19] could not open port /dev/ttyMux2: [Errno 19] No such device: '/dev/ttyMux2'
def Lte_Chk():
    global Condition
    Lflg = 1
    _mux2 = serial.Serial('/dev/ttyMux2', baudrate=460800, timeout=1)
    _mux2.write(str.encode('AT+CSQ\r\n'))
    line = _mux2.readline()
    line = _mux2.readline()
    moji = line.find(b',99')
    Condition = int(line[6:moji])
    _mux2.close()
    if Condition <= 98 and Condition > 1:
        Lflg = 0
    else:
        time.sleep(1)
    return Lflg
ファイル ファイルの説明
a6e-gw-container.conf
コメント

uen2825

2024年7月12日 18時13分

2台アップデートして2台とも同じ症状となります。SLEEP状態からの起床が出来ません。
1台を初期状態にしてbase_os 3.19.1-at.4にアップデートしたところ、SLEEP状態からの起床は出来るようになりました。
設定漏れ等があると思うのですが、原因がつかめません。
確認する場所等教えて頂きたいです。

at_dominique.m…

2024年7月12日 18時24分

uen2825さん

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

> 2台アップデートして2台とも同じ症状となります。SLEEP状態からの起床が出来ません。
> 1台を初期状態にしてbase_os 3.19.1-at.4にアップデートしたところ、SLEEP状態からの起床は出来るようになりました。
> 設定漏れ等があると思うのですが、原因がつかめません。

報告が遅くなって申し訳ございません。
こちらもこの不具合を確認できたので、対応しているところです。

お手数ですが少しお待ちください。
必要であれば /etc/sw-versions ファイルから base_os のバージョンを削除して古い swu をインストールすればダウングレードもできますので、今のところはそのバージョンで実行してください。

よろしくお願いします。

uen2825

2024年7月17日 18時36分

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

> 必要であれば /etc/sw-versions ファイルから base_os のバージョンを削除して古い swu をインストールすればダウングレードもできますので、今のところはそのバージョンで実行してください。
古いバージョンにしようとしました。
/etc/sw-versionsです。
base_osの行を消したりしましたが同じ結果となってしまいます

base_os
boot 2020.4-at24
extra_os.a6e-gw-container 2.5.3

下記の様にエラーが出てしまいます。

armadillo:~# swupdate -d '-u https://armadillo.atmark-techno.com/files/downloads
/armadillo-iot-a6e/image/baseos-6e-3.19.1-at.4.swu'
[ERROR] : SWUPDATE failed [0] ERROR : Error loading certificate chain from /etc/swupdate.pem
Error: Crypto cannot be initialized.

暗号化されている /etc/swupdate.pem こちらのファイルにも手を加えないといけないでしょうか?

at_dominique.m…

2024年7月18日 10時02分

uen2825さん

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

> > 必要であれば /etc/sw-versions ファイルから base_os のバージョンを削除して古い swu をインストールすればダウングレードもできますので、今のところはそのバージョンで実行してください。

> 古いバージョンにしようとしました。
> /etc/sw-versionsです。
> base_osの行を消したりしましたが同じ結果となってしまいます
>

> base_os
> boot 2020.4-at24
> extra_os.a6e-gw-container 2.5.3
> 

この内容では「Malformed sw-versions file, skipped」というエラーメッセージが表示されますので、行を完全に削除した方がいいですが、確認したところこのままでも大丈夫そうです。

> 下記の様にエラーが出てしまいます。
>

> armadillo:~# swupdate -d '-u https://armadillo.atmark-techno.com/files/downloads
> /armadillo-iot-a6e/image/baseos-6e-3.19.1-at.4.swu'
> [ERROR] : SWUPDATE failed [0] ERROR : Error loading certificate chain from /etc/swupdate.pem
> Error: Crypto cannot be initialized.
> 

> 暗号化されている /etc/swupdate.pem こちらのファイルにも手を加えないといけないでしょうか?

アップデートできたので /etc/swupdate.pem ファイルにアットマークテクノの証明書が記載されていると思っていましたが、このエラーではファイルが空に見えますね。
abos-ctrl certificates list」の出力が空(か何かのエラーだけ)で間違いないでしょうか?

それでしたら「abos-ctrl certificates restore-atmark」で戻してswupdate のインストールが通るようになりますが、お客さんの証明書が記載されてないとご自分で生成した SWU ファイルによるアップデートもできない状態ですので、あえてそうしましたか?
- 設計どおりであればインストール後に「abos-ctrl certificates remove-atmark」で再び削除できます。
- 自分の swu をインストールしたい場合は「abos-ctrl certificates reset」で許可される証明書を出荷状態に戻して、initial_setup.swu を再びインストールしてください。

> こちらもこの不具合を確認できたので、対応しているところです。

本件についても報告です。
サスペンド後にLTEの復帰をはやくするための変更が /dev/ttyMux2 にも影響あったそうですので、今月のアップデート(来週予定)でとりあえず前の状態に戻すそうです。
確認不足でお手数をおかけしまって申し訳ございません。問題の報告、大変感謝します。

引き続きよろしくお願いします。

uen2825

2024年7月18日 11時18分

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

> > 下記の様にエラーが出てしまいます。
> >

> > armadillo:~# swupdate -d '-u https://armadillo.atmark-techno.com/files/downloads
> > /armadillo-iot-a6e/image/baseos-6e-3.19.1-at.4.swu'
> > [ERROR] : SWUPDATE failed [0] ERROR : Error loading certificate chain from /etc/swupdate.pem
> > Error: Crypto cannot be initialized.
> > 

> > 暗号化されている /etc/swupdate.pem こちらのファイルにも手を加えないといけないでしょうか?
>
> アップデートできたので /etc/swupdate.pem ファイルにアットマークテクノの証明書が記載されていると思っていましたが、このエラーではファイルが空に見えますね。
/etc/swupdate.pemは空ではないです。
以下の内容が入っております。

# swupdate-onetime-public.pem
-----BEGIN CERTIFICATE-----
MIIB2jCCAYCgAwIBAgIUJq1g2JPwnHdeezaY4myfJCj1SJgwCgYIKoZIzj0EAwIw
RDERMA8GA1UECgwIU1dVcGRhdGUxLzAtBgNVBAMMJkFybWFkaWxsbyBzd3VwZGF0
ZSBwdWJsaWMgb25lLXRpbWUga2V5MB4XDTIxMTAwODAyMDEzM1oXDTI2MTAwNzAy
・・・・・・・・・・・・・・・・・・・・・・・・・・・・

> 「abos-ctrl certificates list」の出力が空(か何かのエラーだけ)で間違いないでしょうか?

armadillo:~# abos-ctrl certificates list
Could not read certificate from /tmp/abos_ctrl_certificates.CmnFhe/cert.1
241FF5B6:error:1608010C:STORE routines:ossl_store_handle_load_result:unsupported:crypto/store/store_result.c:151:
- swupdate-onetime-public.pem
- atmark-1
- atmark-2

> 本件についても報告です。
> サスペンド後にLTEの復帰をはやくするための変更が /dev/ttyMux2 にも影響あったそうですので、今月のアップデート(来週予定)でとりあえず前の状態に戻すそうです。
> 確認不足でお手数をおかけしまって申し訳ございません。問題の報告、大変感謝します。

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

不足情報等ございましたらお知らせください。

at_dominique.m…

2024年7月18日 11時57分

uen2825さん

マルティネです。

> armadillo:~# abos-ctrl certificates list
> Could not read certificate from /tmp/abos_ctrl_certificates.CmnFhe/cert.1
> 241FF5B6:error:1608010C:STORE routines:ossl_store_handle_load_result:unsupported:crypto/store/store_result.c:151:

こちらのエラーは何かによってファイルが化けている可能性があります。
そのファイルに秘密な情報がないので、コピーして添付していただけますでしょうか?
このフォーラムでは .pem ファイルを添付できませんので、.txt にリネームするか zip で圧縮していただければと思います。

(手動に編集した場合は深く考えなくていいと思いますが、手を加えた記憶がなければ原因が気になりますので、ファイルの内容を確認して心当たりがないかを確かめたいです)

> - swupdate-onetime-public.pem
> - atmark-1
> - atmark-2

こちらの内容であれば、ファイルが化けても「abos-ctrl certificates reset」で復帰されます。
その後にダウングレードが成功するようになるはずです。

追記:「swupdate-onetime-public.pem」がある状態では誰でもがこの armadillo に initial_setup をインストールできますので、運用前に自分の initial_setup か「abos-ctrl certificates remove-onetime」で削除した方がいいです。

よろしくお願いします。

uen2825

2024年7月18日 12時42分

マルティネ様
ありがとうございます。
swupdateファイルを添付いたします。
宜しくお願いいたします。

ファイル ファイルの説明
swupdate.txt

at_dominique.m…

2024年7月18日 13時01分

> swupdateファイルを添付いたします。

ありがとうございます。
swupdate-onetime-public.pemの部分に最後の行がなぜか抜けたようです:

$ diff -u swupdate-onetime-public.pem onetime-on-armadillo.pem 
--- swupdate-onetime-public.pem	2023-04-24 13:00:18.000000000 +0900
+++ onetime-on-armadillo.pem	2024-07-18 12:59:45.349462417 +0900
@@ -9,5 +9,4 @@
 kA6lWI0N/pD5p6eUGcwrQvRts6NTMFEwHQYDVR0OBBYEFJH/mOi6ZmaQn/o1qIuI
 U/937NB2MB8GA1UdIwQYMBaAFJH/mOi6ZmaQn/o1qIuIU/937NB2MA8GA1UdEwEB
 /wQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAOLfV5A4z5LGmN3wDpeCYkhPck2t
-nK0fTAq/GXsI1Um1AiB0TkLYr/aNh1fkdjLbmZSV9YYzB1OQPF4R957CMBxusA==
 -----END CERTIFICATE-----

おそらくファイルを vi で開けてみて何かの手違いで保存してしまうことになっただけだと思いますので、
「abos-ctrl certificates reset」で進んでも問題ありません。

よろしくおねがいします。

uen2825

2024年7月18日 14時32分

マルティネ様
上手くいきました。
ありがとうございました。