Armadilloフォーラム

ゲートウェイコンテナ内でのapkがエラーになります

sai

2022年12月22日 17時39分

ゲートウェイコンテナイメージを改変してプログラムを追加しています。
mosquittoを入れようとしたのですがエラーとなっています。

/ # apk add mosquitto
fetch https://download.atmark-techno.com/alpine/v3.16/atmark/armv7/APKINDEX.tar.gz
ssse-flw: EmbSe_Init(): Entry
App   :INFO :Using PortName='/dev/i2c-1:0x48' (ENV: EX_SSS_BOOT_SSS_PORT=/dev/i2c-1:0x48)
smCom :ERROR:Failed writing data (nrWritten=-1).
 
smCom :ERROR: - Error in I2C Write.....
smCom :ERROR:phNxpEseProto7816_SendRawFrame Error phNxpEse_WriteFrame
smCom :ERROR:TransceiveProcess Transceive send failed, going to recovery!
smCom :ERROR:phNxpEseProto7816_Open failed
smCom :ERROR: Failed to Open session
sss   :ERROR:SM_I2CConnect Failed. Status 7012
App   :ERROR:sss_session_open failed
App   :WARN :nxEnsure:'kStatus_SSS_Success == status' failed. At Line:352 Function:engineSessionOpen
ssse-flw: EmbSe_Init(): Failed to initialize
ssse-flw: Control Command EMBSE_LOG_LEVEL; requested log level = 4
ssse-err: Call to sss_rng_get_random failed
ssse-err: Call to sss_rng_get_random failed
Segmentation fault

apk updateも同様なので、何かが不足しているのでしょうか?

/ # apk update
fetch https://download.atmark-techno.com/alpine/v3.16/atmark/armv7/APKINDEX.tar.gz
ssse-flw: EmbSe_Init(): Entry
App   :INFO :Using PortName='/dev/i2c-1:0x48' (ENV: EX_SSS_BOOT_SSS_PORT=/dev/i2c-1:0x48)
smCom :ERROR:Failed writing data (nrWritten=-1).
 
smCom :ERROR: - Error in I2C Write.....
smCom :ERROR:phNxpEseProto7816_SendRawFrame Error phNxpEse_WriteFrame
smCom :ERROR:TransceiveProcess Transceive send failed, going to recovery!
smCom :ERROR:phNxpEseProto7816_Open failed
smCom :ERROR: Failed to Open session
sss   :ERROR:SM_I2CConnect Failed. Status 7012
App   :ERROR:sss_session_open failed
App   :WARN :nxEnsure:'kStatus_SSS_Success == status' failed. At Line:352 Function:engineSessionOpen
ssse-flw: EmbSe_Init(): Failed to initialize
ssse-flw: Control Command EMBSE_LOG_LEVEL; requested log level = 4
ssse-err: Call to sss_rng_get_random failed
ssse-err: Call to sss_rng_get_random failed
Segmentation fault
コメント

アットマークテクノの都鳥です。

セキュアエレメント SE050 が Enable になっていないことによるエラーです。
本件についてマニュアルの記載が漏れておりました。
ご迷惑をおかけし申し訳ございません。

取り急ぎの対応となり恐れ入りますが、
ゲートウェイコンテナの中で、以下コマンドの実行をお願いいたします。

gpioset gpiochip3 18=1

ただし、Armadillo を reboot すると SE050 は Disable に戻ってしまうため、
Armadillo 起動後は毎回実行する必要があります。
回避方法については、また改めてこちらでお知らせさせていただきたいと思います。

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

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

実行したところ以下のようになりました。
Permission denied が出ています。

/ # gpioset gpiochip3 18=1
/ # apk update
fetch https://download.atmark-techno.com/alpine/v3.16/atmark/armv7/APKINDEX.tar.gz
ssse-flw: EmbSe_Init(): Entry
App   :INFO :Using PortName='/dev/i2c-1:0x48' (ENV: EX_SSS_BOOT_SSS_PORT=/dev/i2c-1:0x48)
sss   :INFO :atr (Len=35)
      00 A0 00 00    03 96 04 03    E8 00 FE 02    0B 03 E8 08
      01 00 00 00    00 64 00 00    0A 4A 43 4F    50 34 20 41
      54 50 4F
sss   :WARN :Communication channel is Plain.
sss   :WARN :!!!Not recommended for production use.!!!
ssse-flw: Version: 1.0.5
ssse-flw: EmbSe_Init(): Exit
ssse-flw: Control Command EMBSE_LOG_LEVEL; requested log level = 4
3069567888:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1919:
ERROR: https://download.atmark-techno.com/alpine/v3.16/atmark: Permission denied
WARNING: Ignoring https://download.atmark-techno.com/alpine/v3.16/atmark: No such file or directory
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/main/armv7/APKINDEX.tar.gz
3069567888:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1919:
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.16/main: Permission denied
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.16/main: No such file or directory
fetch https://dl-cdn.alpinelinux.org/alpine/v3.16/community/armv7/APKINDEX.tar.gz
3069567888:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1919:
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.16/community: Permission denied
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.16/community: No such file or directory
3 errors; 58 distinct packages available
/ #

よろしくお願い致します。

ありがとうございます。
先方を確認しましたが、何をすれば良いのか分かりません。

armadillo:/etc/atmark# date
Sat Jan  1 09:17:48 JST 2000
armadillo:/etc/atmark# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================

NTPが設定されていないということでしょうか?
何処を設定すれば酔うのでしょうか?
コンテナ内ではなくホストOSの方で設定するのでしょうか?
ホストOSで設定したものはどのようにして永続化するのでしょうか?

理解が足りず申し訳ありませんが、よろしくお願い致します。

at_dominique.m…

2022年12月26日 12時51分

saiさん

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

> NTPが設定されていないということでしょうか?

そうですね、デフォルトのコンフィグレーションは以下のはずですが、何かの理由で時間を上手く取得できてないように見えますね。

armadillo:~# cat /etc/chrony/conf.d/servers.conf 
# servers queried for normal operation
pool pool.ntp.org iburst

> 何処を設定すれば酔うのでしょうか?

/etc/atmark/chrony.conf.d/servers.conf に自分のサーバーを設定すれば、そのファイルが優先されて運用しやすいと思います。

Armadillo IoT A6E の方のマニュアルに更新が入ってなかった申し訳ございません、時間の設定のところだけは Armadillo IoT G4 のマニュアルをご参照ください:
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
(お手数ですが、他は今まで通りに A6E のマニュアルを使ってください。この一部もこれから更新します。)

> コンテナ内ではなくホストOSの方で設定するのでしょうか?

はい、ネットワークの接続に変更がある場合にも chronyd との連携が必要ですので、ホスト OS から取得しています。

> ホストOSで設定したものはどのようにして永続化するのでしょうか?

/etc/atmark/chrony.conf.d/servers.conf を編集した後に persist_file /etc/atmark/chrony.conf.d/servers.conf で保存してください。
/etc/atmark にあるファイルはアップデートの際に保存していますので、このファイルのための /etc/swupdate_preserve_files の更新が不要です。

よろしくお願いします

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

マニュアルに従って登録してみましたがうまくいきませんでした。

armadillo:~# vi /etc/atmark/chrony.conf.d/servers.conf
armadillo:~# persist_file /etc/atmark/chrony.conf.d/servers.conf
[  390.469149] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
armadillo:~# rc-service chronyd restart
chronyd                  | * Stopping chronyd ... [ ok ]
chronyd                  | * Starting chronyd ... [ ok ]
armadillo:~# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
armadillo:~#

「自分のサーバー」が分からなかったので「pool.ntp.org」と「ntp.nict.jp」を試してみましたがどちらも上記の結果となりました。

at_dominique.m…

2022年12月26日 13時59分

> 「自分のサーバー」が分からなかったので「pool.ntp.org」と「ntp.nict.jp」を試してみましたがどちらも上記の結果となりました。

「自分のサーバー」がなければ、デフォルトでもいいはずですね… この設定はネットワークのフィルターなどで外部のサーバーを使えないための物だと考えています。
解決した際に、このファイルを消しておいても問題ないと思いますが、このままでもいいです。(ファイル削除は persist_file -d <file> で行えます)

その回答から考えるとこういう問題ではなさそうですので、改めて情報を確認させてください。

まずはコンフィグファイルの確認からです。以下のコマンドで、ファイルがデフォルトの内容と一致することを手短く確認します:

armadillo:~# sha256sum /etc/chrony/chrony.conf  /etc/chrony/conf.d/*
d5057e0acfe5ab8c5c3c73adae75c336448cff9bff6c9948f2175996980f2927  /etc/chrony/chrony.conf
36040fbe2fc868cae577c9fa29c7c0d8a6f1486933d9c782fee923cd046d4f80  /etc/chrony/conf.d/defaults.conf
98105c8ff87c9f450db50c0b14041c9761da75eb4cb0a7a01bcd1f5c5cfd94ea  /etc/chrony/conf.d/initstepslew.conf
66617c7a46f8e4e51b9364a0893b3cbe3849373fc6a946a8cc8dc8d0a57ae5a4  /etc/chrony/conf.d/servers.conf

ハッシュか異なる場合があったら、そのファイルの内容を提供していただけたら幸いです。

その次は DNS の問題の可能性が高いと思います。
ホスト OS で  ping -c 3 www.atmark-techno.com を実行したら、どうなりますか?

こういう問題でしたら、DNS サーバーは自動的に DHCP で取得しているはずですが、ネットワーク設定を手動で行った場合には設定する必要もあります。
( https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…nmcli connection modify [ID] ipv4.dns 192.0.2.1 の例が書いてあります、[ID]の取得は nmcli connection showで表示できるはずです)

それ以外の問題は、とりあえず ping の結果を見てから考えたいと思います。

お手数をお掛けしますが、よろしくお願いします。

コンフィグファイルの確認は以下です。

armadillo:~# sha256sum /etc/chrony/chrony.conf  /etc/chrony/conf.d/*
d5057e0acfe5ab8c5c3c73adae75c336448cff9bff6c9948f2175996980f2927  /etc/chrony/chrony.conf
36040fbe2fc868cae577c9fa29c7c0d8a6f1486933d9c782fee923cd046d4f80  /etc/chrony/conf.d/defaults.conf
98105c8ff87c9f450db50c0b14041c9761da75eb4cb0a7a01bcd1f5c5cfd94ea  /etc/chrony/conf.d/initstepslew.conf
66617c7a46f8e4e51b9364a0893b3cbe3849373fc6a946a8cc8dc8d0a57ae5a4  /etc/chrony/conf.d/servers.conf
armadillo:~# ping -c 3 www.atmark-techno.com
ping: bad address 'www.atmark-techno.com'

IPアドレス固定の設定をしています。DHCPにはしていません。
https://armadillo.atmark-techno.com/forum/armadillo/13902

nmcli connection showの結果はこうなりmした。

NAME                UUID                                  TYPE      DEVICE
Ifupdown (eth0)     681b428f-beaf-8932-dce4-687ed5bae28e  ethernet  eth0
podman0             9775bb69-27e6-403a-bc24-8382964235a1  bridge    podman0
vethbfd718bd        e14d7a1e-bcb0-40a7-b097-ca4bb18b01de  ethernet  vethbfd718bd
Wired connection 1  e4744a68-d19a-3602-baa3-506207a44031  ethernet  --

NAMEが[ID]ということなのでIfupdown (eth0)かと思ったのですが以下のようになりました。

armadillo:~# nmcli connection modify "Ifupdown (eth0)" ipv4.dns 192.168.1.200
Error: Failed to modify connection 'Ifupdown (eth0)': failed to update connection: settings plugin does not support modifying connections

at_dominique.m…

2022年12月27日 9時21分

saiさん

> IPアドレス固定の設定をしています。DHCPにはしていません。
> https://armadillo.atmark-techno.com/forum/armadillo/13902

了解しました。別のスレッドで相談していましたね、把握しきれなくてすみません。

ping から「bad address」のエラーで DNS の設定の問題も確認しましたので、設定してみましょう。
nmcli を使ってなくて、/etc/network/interfaces 経由で設定を行っていますので、設定のところに「dns-nameserver server [server2]」の書き方になります。

以下の内容で ping も通るようになって、NTP もまた使えるようになると思います。

auto eth0
 
iface eth0 inet static
address 192.168.1.190
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 192.168.1.1

設定した後に「nmcli c reload; nmcli con up "Ifupdown (eth0)"」で reload させると思いますが、できなかったら persist_file で保存して再起動してみてください。

同じタイミングで返事してくれましたね。「Failed to modify connection 'Ifupdown (eth0)': failed to update」のエラーは、/etc/network/interfaces の内容を nmcli で編集できないということです。 /etc/network/interfaces を使っていたことが分からなかったので、私の案内が悪かっただけですが、お手数をお掛けしました。申し訳ございませんが、dns-nameserver で試してみてください。

よろしくお願いします。

ありがとうございます。DNSが設定できてNTPも使えるようになりました。

この状態で

gpioset gpiochip3 18=1

を実行後

apk update
apk add mosquitto 

が動作しました。

本当にありがとうございました。