27. HW TPM で接続した IoT Edge の接続障害トラブルシューティング

前回の記事                        次回の記事

はじめに

今回は、前回の記事で解決できなかった、netenvutil の Reported Properties 更新できない問題、Simulated Temperature Sensor のテレメトリデータ送信できない問題の解決を試みます。

障害調査

前回の記事は、以下の文面で寸止めしています。

netenvutil にしろ、Simulated Temperature Sensor にしろ、IoT Hub との通信は、edgeHub を介して行います。この二つのモジュールと edgeHub の間の通信は、二つのモジュールのログから察するに、問題なく実行できているようです。 edgeHub も、この二つと同様、Docker Container で、
IoT Hub との接続に失敗しているのはこの Docker Container という事になります。
前の方の記事で、I2C で接続されたセンサーへのアクセスの際、ホスト側のデバイスのバインドやディレクトリのバインドを行いました。TPM も HW なので、何らかの設定が必要なのでは?ということで、こちらを調べていきます。

https://note.com/kae_made/n/nc60abb33fbb1

先ず、ここから調べていきます。

Docker Container からの HW TPM へのアクセス

ネット上でこのトピックを検索してみましたが、ほとんど有用な情報は得られませんでした。唯一見つけられたのは、

you can mount /var/run/dbus/system_bus_socket from host to docker container . just as -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket

https://forums.docker.com/t/access-tpm-chip-from-container/40190

という記述のみ。う~ん…
TPMに関わるデバイスは、Ubuntu 上で

$ sudo ls -la /dev/tpm*
crw-rw---- 1 aziottpm root  10,   224  111 09:09 /dev/tpm0
crw-rw---- 1 aziottpm tss  253, 65536  111 09:09 /dev/tpmrm0

この二つです。

edgeHub の生成オプションに TPM アクセスに必要と思われる設定を追加してみる

前の方の記事で、I2C のセンサーにアクセスした時の設定の類推から、この二つのデバイスのバインド指定と、上のdbus のマウント指定をすれば良いのでは?という事で、edgeHub の Docker Container 生成オプションにその設定を加えてみます。この設定は、Azure Portal で以下の手順で行います。

ここから先は

10,698字 / 2画像

2022年3月にマイクロソフトの中の人から外の人になった Embedded D. George が、現時点で持っている知識に加えて、頻繁に…

この記事が気に入ったらサポートをしてみませんか?