本 Howto では、 Armadillo-IoT ゲートウェイ A6 に搭載されている、
セキュアエレメント SE050 用ミドルウェアをビルドする方法を紹介します。
SE050 の詳細は、 NXP 社のサイト を参照ください。
コマンド操作は全て Armadillo 上で行います。
必要なパッケージのインストール
必要なパッケージをインストールします。
# apt update # apt install unzip python cmake libssl-dev g++
ファイルのダウンロード
- NXP 社のサイト の "TOOL & SOFTWARE" タブをクリックし、
"Embedded Software" → "BSP, Drivers and Middleware" 内
"Plug&Trust MW (03.00.06)" (バージョンは2021年3月22日現在)をクリックし
SE-PLUG-TRUST-MW.zip をダウンロードしてください。
※ 事前にユーザー登録が必要です。 - ダウンロードしたファイルを Armadillo 上で解凍してください。
この Howto では、root ユーザーが /root/ に解凍した前提で説明を記載します。
ビルド
以下に Armadillo 上でのビルド手順を示します。
一部コードを変更
simw-top/scripts/create_cmake_projects.py を一部変更します。
Armadillo 上ですと、 Python の platform.node() の戻り値が "armadillo" になりますので、それに対応します。
284 @classmethod 285 def imx_native_compilation(cls): 286 if 'imx6' in platform.node(): 287 return True 288 if 'imx8' in platform.node(): 289 return True 290 + if 'armadillo' in platform.node(): 291 + return True 292 return False
ビルドの実施
ビルドを実行します。
# cd ~/simw-top root@armadillo:~/simw-top# python scripts/create_cmake_projects.py root@armadillo:~/simw-top# cd ../simw-top_build/imx_native_se050_t1oi2c_openssl_el2go/ root@armadillo:~/simw-top_build/imx_native_se050_t1oi2c_openssl_el2go# cmake --build .
動作確認
SE050 へアクセスするには GPIO 89 を high に設定する必要があります。
以下にスクリプトの例を記載しますのでご利用ください。
#!/bin/bash GPIO_EXPORT="/sys/class/gpio/export" GPIO_NUM="89" GPIO="/sys/class/gpio/gpio"$GPIO_NUM"/direction" if [ ! -e $GPIO ]; then echo $GPIO_NUM > $GPIO_EXPORT fi echo high > $GPIO sleep 0.3 i2cdetect -y 4 if [ $? -ne 0 ]; then echo "not detect slave addr" echo "NG" fi
サンプルの実行
サンプル se05x_Minimal を実行します。
# cd ~/simw-top_build/imx_native_se050_t1oi2c_openssl_el2go root@armadillo:~/simw-top_build/imx_native_se050_t1oi2c_openssl_el2go# bin/se05x_Minimal /dev/i2c-4:0x48
以下のような実行結果が表示されれば成功です。
App :INFO :PlugAndTrust_v03.00.06_20201204 App :INFO :Running bin/se05x_Minimal App :INFO :Using PortName='/dev/i2c-4:0x48' (CLI) 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.!!! App :INFO :mem=32196 App :INFO :se05x_Minimal Example Success !!!... App :INFO :ex_sss Finished
これ以外にも、 ~/simw-top_build/imx_native_se050_t1oi2c_openssl_el2go/bin/
には様々なデモが用意されています。
~/simw-top/doc/demos/index.html に説明がありますので、参考にしてください。