マイクロコントローラーボードのテストを初めて準備する - 無料RTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マイクロコントローラーボードのテストを初めて準備する

IDT for FreeRTOS を使用して、FreeRTOS ライブラリの実装をテストできます。ボードのデバイスドライバー用に FreeRTOS ライブラリを移植したら、マイクロコントローラーボード上で AWS IoT Device Tester を使用して認定テストを実行します。

ライブラリ移植レイヤーを追加し、FreeRTOS テストリポジトリを実装する

デバイス用に FreeRTOS を移植するには、「FreeRTOS 移植ガイド」を参照してください。FreeRTOS テストリポジトリを実装して FreeRTOS レイヤーを移植する際には、テストリポジトリを含む各ライブラリへのパスを指定した manifest.yml を提供する必要があります。このファイルは、ソースコードのルートディレクトリにあります。詳細については、「マニフェストファイルの手順」を参照してください。

AWS 認証情報を設定する

AWS クラウドと通信するには、AWS IoT Device Tester 用の AWS 認証情報を設定する必要があります。詳細については、開発用の AWS 認証情報とリージョンのセットアップを参照してください。有効な AWS 認証情報は、devicetester_extract_location/devicetester_freertos_[win|mac|linux]/configs/config.json 設定ファイルで指定されます。

"auth": { "method": "environment" } "auth": { "method": "file", "credentials": { "profile": "<your-aws-profile>" } }

config.json ファイルの auth 属性には AWS 認証を制御するメソッドフィールドがあり、file または environment のいずれかとして宣言できます。このフィールドを environment に設定すると、ホストマシンの環境変数から AWS 認証情報がプルされます。このフィールドを file に設定すると、指定されたプロファイルが .aws/credentials 設定ファイルからインポートされます。

IDT for FreeRTOS でデバイスプールを作成する

テストするデバイスは、デバイスプールにまとめられます。各デバイスプールは、1 つ以上の同一デバイスで構成されます。IDT for FreeRTOS を設定して、プール内の 1 つのデバイスまたは複数のデバイスをテストすることもがきます。認定プロセスを迅速化するために、IDT for FreeRTOS は、同じ仕様を持つデバイスを並行してテストできます。その際、ラウンドロビンメソッドを使用し、デバイスプール内の各デバイスで異なるテストグループが実行されます。

device.json ファイルの最上位には配列があります。各配列属性は新しいデバイスプールです。各デバイスプールにはデバイス配列属性があり、複数のデバイスが宣言されています。テンプレートには 1 つのデバイスプールがあり、そのデバイスプールにはデバイスが 1 つしかありません。1 つ以上のデバイスをデバイスプールに追加するには、configs フォルダにある device.json テンプレートの devices セクションを編集します。

注記

同じプール内のすべてのデバイスの技術仕様と SKU は同じでなければなりません。IDT for FreeRTOS は、異なるテストグループに対してソースコードの並列ビルドを可能にするため、ソースコードを IDT for FreeRTOS の抽出されたフォルダにある結果フォルダにコピーします。ビルドコマンドまたはフラッシュコマンドでは、testdata.sourcePath 変数を使用してソースコードパスを参照する必要があります。IDT for FreeRTOS は、この変数を、コピーしたソースコードの一時パスで置き換えます。詳細については、「IDT for FreeRTOS 変数」を参照してください。

次の例では、device.json ファイルを使用して、複数のデバイスが含まれるデバイスプールを作成しました。

[ { "id": "pool-id", "sku": "sku", "features": [ { "name": "Wifi", "value": "Yes | No" }, { "name": "Cellular", "value": "Yes | No" }, { "name": "BLE", "value": "Yes | No" }, { "name": "PKCS11", "value": "RSA | ECC | Both" }, { "name": "OTA", "value": "Yes | No", "configs": [ { "name": "OTADataPlaneProtocol", "value": "MQTT | HTTP | None" } ] }, { "name": "KeyProvisioning", "value": "Onboard | Import | Both | No" } ], "devices": [ { "id": "device-id", "connectivity": { "protocol": "uart", "serialPort": "/dev/tty*" }, "secureElementConfig" : { "publicKeyAsciiHexFilePath": "absolute-path-to/public-key-txt-file: contains-the-hex-bytes-public-key-extracted-from-onboard-private-key", "publiDeviceCertificateArn": "arn:partition:iot:region:account-id:resourcetype:resource:qualifier", "secureElementSerialNumber": "secure-element-serialNo-value", "preProvisioned" : "Yes | No", "pkcs11JITPCodeVerifyRootCertSupport": "Yes | No" }, "identifiers": [ { "name": "serialNo", "value": "serialNo-value" } ] } ] } ]

次の属性は、device.json ファイルで使用されます。

id

デバイスのプールを一意に識別するユーザー定義の英数字の ID。プールに属するデバイスは同じタイプであることが必要です。テストスイートを実行するとき、プールのデバイスを使用してワークロードが並列化されます。

sku

テスト対象であるボードを一意に識別する英数字の値。SKU は、適格性が確認されたボードの追跡に使用されます。

注記

AWS Partner Device Catalog にボードを出品する場合は、ここで指定する SKU と出品プロセスで使用する SKU が一致する必要があります。

features

デバイスでサポートされる機能を含む配列。AWS IoT Device Tester は、この情報を使用して、実行する認定テストを選択します。

サポートされている値は以下のとおりです。

Wifi

ボードが Wi-Fi 機能を備えているかどうかを示します。

Cellular

ボードがセルラー機能を備えているかどうかを示します。

PKCS11

ボードがサポートする公開鍵暗号化アルゴリズムを指定します。資格認定には PKCS11 が必要です。サポートされている値は、ECCRSA、および Both です。Both は、ボードが ECCRSA の両方をサポートしていることを示します。

KeyProvisioning

信頼された X.509 クライアント証明書をボードに書き込む方法を指定します。

有効な値は、ImportOnboardBoth、および No です。認定には、OnboardBoth、または No キープロビジョニングが必要です。Import 単独では認定に有効なオプションではありません。

  • Import は、ボードがプライベートキーのインポートを許可している場合にのみ使用します。Import の選択は認定には有効な構成ではないため、テスト目的、特に PKCS11 テストケースでのみ使用してください。OnboardBoth または No は認定に必須です。

  • ボードがオンボードプライベートキーをサポートしている場合 (例えば、デバイスに安全な要素がある場合、または独自のデバイスのキーペアと証明書を生成する場合) は、Onboard を使用します。各デバイスセクションに secureElementConfig 要素を追加し、publicKeyAsciiHexFilePath フィールドにパブリックキーファイルへの絶対パスを入力していることを確認します。

  • Both は、ボードがキープロビジョニングのためにプライベートキーのインポートとオンボードキーの生成の両方をサポートしている場合に使用します。

  • No は、ボードがキープロビジョニングをサポートしていない場合に使用します。No は、デバイスも事前プロビジョニングされている場合のにみ有効なオプションです。

OTA

ボードが無線 (OTA) による更新機能をサポートしているかどうかを示します。OtaDataPlaneProtocol 属性は、デバイスがサポートする OTA データプレーンプロトコルを示します。認定には、HTTP または MQTT データプレーンプロトコルのいずれかを使用する OTA が必要です。テスト中に OTA テストの実行をスキップするには、OTA 機能を No に、OtaDataPlaneProtocol 属性を None に設定します。これは認定の実行にはなりません。

BLE

ボードが Bluetooth Low Energy (BLE) をサポートしているかどうかを示します。

devices.id

テスト対象のデバイスのユーザー定義の一意の識別子。

devices.connectivity.serialPort

テスト対象であるデバイスへの接続に使用される、ホストコンピュータのシリアルポート。

devices.secureElementConfig.PublicKeyAsciiHexFilePath

ボードが pre-provisioned ではない場合、または PublicDeviceCertificateArn が指定されていない場合は必須です。Onboard はキープロビジョニングの必須タイプであるため、現在 FullTransportInterfaceTLS テストグループでは、このフィールドは必須です。デバイスが pre-provisioned の場合、PublicKeyAsciiHexFilePath はオプションであり、含める必要はありません。

次のブロックは、Onboard プライベートキーから抽出された 16 進バイトのパブリックキーを含むファイルへの絶対パスです。

3059 3013 0607 2a86 48ce 3d02 0106 082a 8648 ce3d 0301 0703 4200 04cd 6569 ceb8 1bb9 1e72 339f e8cf 60ef 0f9f b473 33ac 6f19 1813 6999 3fa0 c293 5fae 08f1 1ad0 41b7 345c e746 1046 228e 5a5f d787 d571 dcb2 4e8d 75b3 2586 e2cc 0c

パブリックキーが .der 形式の場合は、パブリックキーを直接 16 進エンコードして 16 進ファイルを生成できます。

.der パブリックキーから 16 進ファイルを生成するには、次の xxd コマンドを入力します。

xxd -p pubkey.der > outFile

パブリックキーが.pem 形式の場合、base64 でエンコードされたヘッダーとフッターを抽出し、それをバイナリ形式にデコードできます。その後、バイナリ文字列を 16 進エンコードして 16 進ファイルを生成します。

.pem パブリックキーの 16 進ファイルを生成するには、以下を行います。

  1. 次の base64 コマンドを実行して、パブリックキーから base64 ヘッダーとフッターを削除します。その後、base64key という名前のデコードされたキーが、ファイル pubkey.der に出力されます。

    base64 —decode base64key > pubkey.der
  2. 次の xxd コマンドを実行して、pubkey.der を 16 進形式に変換します。結果として生成されたキーは、outFile として保存されます。

    xxd -p pubkey.der > outFile
devices.secureElementConfig.PublicDeviceCertificateArn

AWS IoT Core にアップロードされたセキュアエレメントからの証明書の ARN。証明書を AWS IoT Core にアップロードする方法については、「AWS IoT デベロッパーガイド」の「X.509 クライアント証明書」を参照してください。

devices.secureElementConfig.SecureElementSerialNumber

(オプション) 安全なエレメントのシリアル番号。シリアル番号は、オプションで JITR キープロビジョニング用のデバイス証明書を作成するために使用されます。

devices.secureElementConfig.preProvisioned

(オプション) デバイスにロックダウンされた認証情報を持つ事前プロビジョニングされたセキュア要素があり、オブジェクトをインポート、作成、または破棄できない場合は、「Yes」に設定します。この属性が Yes に設定されている場合は、対応する pkcs11 ラベルを指定する必要があります。

devices.secureElementConfig.pkcs11JITPCodeVerifyRootCertSupport

(オプション) デバイスの corePKCS11 実装が JITP 用のストレージをサポートしている場合は Yes に設定します。これにより、コア PKCS 11 をテストするときに JITP codeverify テストが可能になり、コード検証キー、JITP 証明書、およびルート証明書 PKCS 11 ラベルを指定する必要があります。

identifiers

(オプション) 任意の名前と値のペアの配列。これらの値は、次のセクションで説明されているビルドコマンドやフラッシュコマンドで使用できます。

ビルド、フラッシュ、テスト設定を設定する

IDT for FreeRTOS は、自動的にテストをビルドしてボードにフラッシュします。これを有効にするには、ハードウェアに対してビルドコマンドとフラッシュコマンドを実行するように IDT を設定する必要があります。ビルドとフラッシュのコマンド設定は、config フォルダにある userdata.json テンプレートファイルで設定されています。

デバイスをテストするための設定

ビルド、フラッシュ、およびテストの設定は、configs/userdata.json ファイルで行います。次の JSON の例は、複数のデバイスをテストするために IDT for FreeRTOS を設定する方法を示します。

{ "sourcePath": "</path/to/freertos>", "retainModifiedSourceDirectories": true | false, "freeRTOSVersion": "<freertos-version>", "freeRTOSTestParamConfigPath": "{{testData.sourcePath}}/path/from/source/path/to/test_param_config.h", "freeRTOSTestExecutionConfigPath": "{{testData.sourcePath}}/path/from/source/path/to/test_execution_config.h", "buildTool": { "name": "your-build-tool-name", "version": "your-build-tool-version", "command": [ "<build command> -any-additional-flags {{testData.sourcePath}}" ] }, "flashTool": { "name": "your-flash-tool-name", "version": "your-flash-tool-version", "command": [ "<flash command> -any-additional-flags {{testData.sourcePath}} -any-additional-flags" ] }, "testStartDelayms": 0, "echoServerConfiguration": { "keyGenerationMethod": "EC | RSA", "serverPort": 9000 }, "otaConfiguration": { "otaE2EFirmwarePath": "{{testData.sourcePath}}/relative-path-to/ota-image-generated-in-build-process", "otaPALCertificatePath": "/path/to/ota/pal/certificate/on/device", "deviceFirmwarePath" : "/path/to/firmware/image/name/on/device", "codeSigningConfiguration": { "signingMethod": "AWS | Custom", "signerHashingAlgorithm": "SHA1 | SHA256", "signerSigningAlgorithm": "RSA | ECDSA", "signerCertificate": "arn:partition:service:region:account-id:resource:qualifier | /absolute-path-to/signer-certificate-file", "untrustedSignerCertificate": "arn:partition:service:region:account-id:resourcetype:resource:qualifier", "signerCertificateFileName": "signerCertificate-file-name", "compileSignerCertificate": true | false, // ***********Use signerPlatform if you choose AWS for signingMethod*************** "signerPlatform": "AmazonFreeRTOS-Default | AmazonFreeRTOS-TI-CC3220SF" ] } }, ********** This section is used for PKCS #11 labels of private key, public key, device certificate, code verification key, JITP certificate, and root certificate. When configuring PKCS11, you set up labels and you must provide the labels of the device certificate, public key, and private key for the key generation type (EC or RSA) it was created with. If your device supports PKCS11 storage of JITP certificate, code verification key, and root certificate, set 'pkcs11JITPCodeVerifyRootCertSupport' to 'Yes' in device.json and provide the corresponding labels. ********** "pkcs11LabelConfiguration":{ "pkcs11LabelDevicePrivateKeyForTLS": "<device-private-key-label>", "pkcs11LabelDevicePublicKeyForTLS": "<device-public-key-label>", "pkcs11LabelDeviceCertificateForTLS": "<device-certificate-label>", "pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS": "<preprovisioned-ec-device-private-key-label>", "pkcs11LabelPreProvisionedECDevicePublicKeyForTLS": "<preprovisioned-ec-device-public-key-label>", "pkcs11LabelPreProvisionedECDeviceCertificateForTLS": "<preprovisioned-ec-device-certificate-label>", "pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS": "<preprovisioned-rsa-device-private-key-label>", "pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS": "<preprovisioned-rsa-device-public-key-label>", "pkcs11LabelPreProvisionedRSADeviceCertificateForTLS": "<preprovisioned-rsa-device-certificate-label>", "pkcs11LabelCodeVerifyKey": "<code-verification-key-label>", "pkcs11LabelJITPCertificate": "<JITP-certificate-label>", "pkcs11LabelRootCertificate": "<root-certificate-label>" } }

次のリストは、userdata.json で使用される属性です。

sourcePath

移植された FreeRTOS ソースコードのルートへのパス。

retainModifiedSourceDirectories

(オプション) ビルド時やフラッシュ時に使用した変更後のソースディレクトリをデバッグ用に保持するかどうかをチェックします。true に設定すると、変更されたソースディレクトリは retainedSrc という名前になり、実行された各テストグループの結果ログフォルダに保存されます。含まれない場合、このフィールドはデフォルトで false になります。

freeRTOSTestParamConfigPath

FreeRTOS-Libraries-Integration-Tests 統合用の test_param_config.h ファイルへのパス。このファイルでは、{{testData.sourcePath}} プレースホルダー変数を使用してソースコードルートを基準にする必要があります。AWS IoT Device Tester は、このファイル内のパラメータを使用してテストを設定します。

freeRTOSTestExecutionConfigPath

FreeRTOS-Libraries-Integration-Tests 統合用の test_execution_config.h ファイルへのパス。このファイルでは、{{testData.sourcePath}} プレースホルダー変数を使用してリポジトリルートを基準にする必要があります。AWS IoT Device Tester は、このファイルを使用して、どのテストを実行する必要があるかを制御します。

freeRTOSVersion

実装で使用されているパッチバージョンを含む FreeRTOS のバージョン。AWS IoT Device Tester for FreeRTOS と互換性のある FreeRTOS バージョンについては、「Supported versions of AWS IoT Device Tester for FreeRTOS」を参照してください。

buildTool

ソースコードをビルドするコマンド。ビルドコマンドでのソースコードパスへの参照はすべて、AWS IoT Device Tester 変数の {{testData.sourcePath}} で置き換える必要があります。AWS IoT Device Tester ルートパスに対する相対パスでビルドスクリプトを参照するには、{{config.idtRootPath}} プレースホルダーを使用します。

flashTool

イメージをデバイスにフラッシュするコマンド。フラッシュコマンドでのソースコードパスへの参照はすべて、AWS IoT Device Tester 変数の {{testData.sourcePath}} で置き換える必要があります。AWS IoT Device Tester ルートパスに対する相対パスでフラッシュスクリプトを参照するには、{{config.idtRootPath}} プレースホルダーを使用します。

注記

FRQ 2.0 を使用した新しい統合テスト構造では、{{enableTests}}{{buildImageName}} などのパス変数は必要ありません。OTA エンドツーエンドテストは、FreeRTOS-Libraries-Integration-Tests GitHub リポジトリで提供されている設定テンプレートを使用して実行されます。GitHub リポジトリ内のファイルが親ソースプロジェクトに存在する場合、ソースコードはテスト間で変更されません。OTA エンドツーエンド用に別のビルドイメージが必要な場合は、このイメージをビルドスクリプトでビルドし、otaConfiguration で指定した userdata.json ファイルでそのイメージを指定する必要があります。

testStartDelayms

FreeRTOS test runner がテストの実行を開始する前に待機するミリ秒数を指定します。これは、ネットワークやその他の遅延が原因で、IDT が接続してロギングを開始する前にテスト対象のデバイスが重要なテスト情報の出力を開始した場合に役立ちます。この値は FreeRTOS テストグループにのみ適用され、FreeRTOS test runner を使用しない他のテストグループ (OTA テストなど) には適用されません。[expected 10 but received 5] のようなエラーが表示された場合は、このフィールドを 5000 に設定する必要があります。

echoServerConfiguration

TLS テスト用のエコーサーバーをセットアップするための設定。このフィールドは必須です。

keyGenerationMethod

エコーサーバーはこのオプションで設定されます。オプションは EC または RSA です。

serverPort

エコーサーバーが稼働するポート番号。

otaConfiguration

OTA PAL テストと OTA E2E テストの設定。このフィールドは必須です。

otaE2EFirmwarePath

IDT が OTA エンドツーエンドテストに使用する OTA バイナリイメージへのパス。

otaPALCertificatePath

デバイス上の OTA PAL テストの証明書へのパス。これは署名の検証に使用されます。例えば、ecdsa-sha256-signer.crt.pem などです。

deviceFirmwarePath

起動するファームウェアイメージのハードコード名へのパス。デバイスがファームウェアの起動にファイルシステムを使用しない場合は、このフィールドを 'NA' として指定します。デバイスがファームウェアブートにファイルシステムを使用する場合は、ファームウェアブートイメージのパスまたは名前を指定します。

codeSigningConfiguration
signingMethod

コード署名の方法。指定できる値は、AWS または Custom です。

注記

北京および寧夏リージョンでは、Custom を使用します。これらのリージョンでは、AWS コード署名はサポートされていません。

signerHashingAlgorithm

デバイスでサポートされているハッシュアルゴリズム。想定される値は、SHA1 または SHA256 です。

signerSigningAlgorithm

デバイスでサポートされている署名アルゴリズム。想定される値は、RSA または ECDSA です。

signerCertificate

OTA 用の信頼された証明書。AWS コード署名方法では、AWS Certificate Manager にアップロードされた、信頼された証明書の Amazon リソースネーム (ARN) を使用します。カスタムコード署名方法では、署名者の証明書ファイルへの絶対パスを使用します。信頼された証明書を作成する方法については、「コード署名証明書の作成」を参照してください。

untrustedSignerCertificate

一部の OTA テストで信頼できない証明書として使用される 2 番目の証明書の ARN またはファイルパス。証明書を作成する方法については、「コード署名証明書の作成」を参照してください。

signerCertificateFileName

デバイスのコード署名証明書のファイル名。この値は、aws acm import-certificate コマンド実行時に指定したファイル名と一致する必要があります。

compileSignerCertificate

署名検証証明書のステータスを決定するブール値。有効な値は、true および false です。

コード署名者の署名検証証明書がプロビジョニングまたはフラッシュされていない場合は、この値を true に設定します。プロジェクトにコンパイルする必要があります。AWS IoT Device Tester は信頼された証明書を取得し、それを aws_codesigner_certificate.h にコンパイルします。

signerPlatform

AWS Code Signer が OTA 更新ジョブの作成時に使用する署名およびハッシュアルゴリズム。現在、このフィールドで可能な値は、AmazonFreeRTOS-TI-CC3220SFAmazonFreeRTOS-Default です。

  • SHA1 および RSA の場合は、AmazonFreeRTOS-TI-CC3220SF を選択します。

  • SHA256 および ECDSA の場合は、AmazonFreeRTOS-Default を選択します。

  • 設定に SHA256 | RSA または SHA1 | ECDSA が必要な場合は、当社に追加のサポートを依頼してください。

  • signingMethod として Custom を選択した場合は、signCommand を設定します。

signCommand

このコマンドには {{inputImageFilePath}}{{outputSignatureFilePath}} の 2 つのプレースホルダーが必要です。{{inputImageFilePath}} は、IDT によって構築される署名対象のイメージのファイルパスです。{{outputSignatureFilePath}} は、スクリプトによって生成される署名のファイルパスです。

pkcs11LabelConfiguration

PKCS11 ラベル設定には、PKCS11 テストグループを実行するために、デバイス証明書ラベル、公開鍵ラベル、秘密鍵ラベルのラベルセットが少なくとも 1 セット必要です。必要な PKCS11 ラベルは、device.json ファイル内のデバイス設定に基づきます。事前プロビジョニングが device.jsonYes に設定されている場合、必要なラベルは PKCS11 機能に対して選択された内容に応じて、以下のいずれかになります。

  • PreProvisionedEC

  • PreProvisionedRSA

事前プロビジョニングが device.jsonNo に設定されている場合、必要なラベルは以下のとおりです。

  • pkcs11LabelDevicePrivateKeyForTLS

  • pkcs11LabelDevicePublicKeyForTLS

  • pkcs11LabelDeviceCertificateForTLS

次の 3 つのラベルは、device.json ファイルで pkcs11JITPCodeVerifyRootCertSupport に対して Yes を選択した場合にのみ必要です。

  • pkcs11LabelCodeVerifyKey

  • pkcs11LabelRootCertificate

  • pkcs11LabelJITPCertificate

これらのフィールドの値は、「FreeRTOS 移植ガイド」で定義されている値と一致する必要があります。

pkcs11LabelDevicePrivateKeyForTLS

(オプション) このラベルはプライベートキーの PKCS #11 ラベルに使用されます。キープロビジョニングのオンボードサポートとインポートサポートがあるデバイスの場合、このラベルがテストに使用されます。このラベルは、事前プロビジョニングされたケースで定義されたラベルとは異なる場合があります。device.json でキープロビジョニングを No に設定し、事前プロビジョニングを Yes に設定した場合、これは未定義になります。

pkcs11LabelDevicePublicKeyForTLS

(オプション) このラベルはパブリックキーの PKCS #11 ラベルに使用されます。キープロビジョニングのオンボードサポートとインポートサポートがあるデバイスの場合、このラベルがテストに使用されます。このラベルは、事前プロビジョニングされたケースで定義されたラベルとは異なる場合があります。device.json でキープロビジョニングを No に設定し、事前プロビジョニングを Yes に設定した場合、これは未定義になります。

pkcs11LabelDeviceCertificateForTLS

(オプション) このラベルはデバイス証明書の PKCS #11 ラベルに使用されます。キープロビジョニングのオンボードサポートとインポートサポートがあるデバイスの場合、このラベルがテストに使用されます。このラベルは、事前プロビジョニングされたケースで定義されたラベルとは異なる場合があります。device.json でキープロビジョニングを No に設定し、事前プロビジョニングを Yes に設定した場合、これは未定義になります。

pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS

(オプション) このラベルはプライベートキーの PKCS #11 ラベルに使用されます。セキュアエレメントまたはハードウェアの制限があるデバイスの場合、AWS IoT 認証情報を保存するために別のラベルが付けられます。デバイスが EC キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。device.json で事前プロビジョニングが Yes に設定されている場合は、このラベルまたは pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS、あるいはその両方を指定する必要があります。このラベルは、オンボードおよびインポートのケースで定義されたラベルとは異なる場合があります。

pkcs11LabelPreProvisionedECDevicePublicKeyForTLS

(オプション) このラベルはパブリックキーの PKCS #11 ラベルに使用されます。セキュアエレメントまたはハードウェアの制限があるデバイスの場合、AWS IoT 認証情報を保存するために別のラベルが付けられます。デバイスが EC キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。device.json で事前プロビジョニングが Yes に設定されている場合は、このラベルまたは pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS、あるいはその両方を指定する必要があります。このラベルは、オンボードおよびインポートのケースで定義されたラベルとは異なる場合があります。

pkcs11LabelPreProvisionedECDeviceCertificateForTLS

(オプション) このラベルはデバイス証明書の PKCS #11 ラベルに使用されます。セキュアエレメントまたはハードウェアの制限があるデバイスの場合、AWS IoT 認証情報を保存するために別のラベルが付けられます。デバイスが EC キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。device.json で事前プロビジョニングが Yes に設定されている場合は、このラベルまたは pkcs11LabelPreProvisionedRSADeviceCertificateForTLS、あるいはその両方を指定する必要があります。このラベルは、オンボードおよびインポートのケースで定義されたラベルとは異なる場合があります。

pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS

(オプション) このラベルはプライベートキーの PKCS #11 ラベルに使用されます。セキュアエレメントまたはハードウェアの制限があるデバイスの場合、AWS IoT 認証情報を保存するために別のラベルが付けられます。デバイスが RSA キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。device.json で事前プロビジョニングが Yes に設定されている場合は、このラベルまたは pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS、あるいはその両方を指定する必要があります。

pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS

(オプション) このラベルはパブリックキーの PKCS #11 ラベルに使用されます。セキュアエレメントまたはハードウェアの制限があるデバイスの場合、AWS IoT 認証情報を保存するために別のラベルが付けられます。デバイスが RSA キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。device.json で事前プロビジョニングが Yes に設定されている場合は、このラベルまたは pkcs11LabelPreProvisionedECDevicePublicKeyForTLS、あるいはその両方を指定する必要があります。

pkcs11LabelPreProvisionedRSADeviceCertificateForTLS

(オプション) このラベルはデバイス証明書の PKCS #11 ラベルに使用されます。セキュアエレメントまたはハードウェアの制限があるデバイスの場合、AWS IoT 認証情報を保存するために別のラベルが付けられます。デバイスが RSA キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。device.json で事前プロビジョニングが Yes に設定されている場合は、このラベルまたは pkcs11LabelPreProvisionedECDeviceCertificateForTLS、あるいはその両方を指定する必要があります。

pkcs11LabelCodeVerifyKey

(オプション) このラベルはコード検証キーの PKCS #11 ラベルに使用されます。デバイスが JITP 証明書、コード検証キー、ルート証明書の PKCS #11 ストレージをサポートしている場合は、このラベルを指定します。device.jsonpkcs11JITPCodeVerifyRootCertSupportYes に設定されている場合は、このラベルを指定する必要があります。

pkcs11LabelJITPCertificate

(オプション) このラベルは JITP 証明書の PKCS #11 ラベルに使用されます。デバイスが JITP 証明書、コード検証キー、ルート証明書の PKCS #11 ストレージをサポートしている場合は、このラベルを指定します。device.jsonpkcs11JITPCodeVerifyRootCertSupportYes に設定されている場合は、このラベルを指定する必要があります。

IDT for FreeRTOS 変数

コードを構築し、デバイスをフラッシュするコマンドは、デバイスに関する接続情報やその他の情報がないと正しく実行できない場合があります。AWS IoT Device Tester を使用すると、JsonPath を使用してフラッシュおよびビルドコマンドでデバイス情報を参照できます。単純な JsonPath 式を使用して、device.json ファイルで指定されている情報を取得することができます。

パス変数

IDT for FreeRTOS は、コマンドラインと設定ファイルで使用できる次のようなパス変数を定義します。

{{testData.sourcePath}}

ソースコードパスに拡張されます。この変数を使用する場合は、フラッシュコマンドとビルドコマンドの両方で使用する必要があります。

{{device.connectivity.serialPort}}

シリアルポートに拡張されます。

{{device.identifiers[?(@.name == 'serialNo')].value[0]}}

デバイスのシリアル番号に拡張されます。

{{config.idtRootPath}}

AWS IoT Device Tester ルートパスに拡張されます。