

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

# IDT と FreeRTOS 認定スイート 2.0 (FRQ 2.0)
<a name="lts-idt-freertos-qualification"></a>

FreeRTOS 認定スイート 2.0 は FreeRTOS 認定スイートの更新バージョンです。開発者は FRQ 2.0 を使用することをお勧めします。FRQ 2.0 は、FreeRTOS 長期サポート (LTS) ライブラリを実行するデバイスを認定するための関連テストケースで構成されているためです。

IDT for FreeRTOS は、マイクロコントローラー上の FreeRTOS のポートと、それが効果的に通信するかどうかを検証します AWS IoT。具体的には、移植レイヤーインターフェイスが FreeRTOS ライブラリと連動していることを検証し、FreeRTOS テストリポジトリが正しく実装されているかを検証します。また、 を使用してend-to-endテストも実行します AWS IoT Core。IDT for FreeRTOS で実行されるテストは、[FreeRTOS GitHub リポジトリ](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests)で定義されています。

IDT for FreeRTOS は、テスト対象のマイクロコントローラーデバイス上でフラッシュする組み込みアプリケーションとしてテストを実行します。アプリケーションのバイナリイメージには、FreeRTOS、移植される FreeRTOS インターフェイス、およびボードデバイスドライバーが含まれています。テストの目的は、移植された FreeRTOS インターフェイスがデバイスドライバー上で正しく機能するかどうかを検証することです。

IDT for FreeRTOS はテストレポートを生成し、 に送信 AWS IoT して AWS Partner Device Catalog にハードウェアを一覧表示できます。詳細については、[AWS デバイス認定プログラム](https://aws.amazon.com/partners/dqp/)を参照してください。

IDT for FreeRTOS は、テスト対象のデバイスに接続されているホストコンピュータ (Windows、macOS、または Linux) 上で動作します。IDT はテストケースの設定とオーケストレーションを行い、結果を集計します。また、テストの実行を管理するためのコマンドラインインターフェイスも用意されています。

デバイスをテストするために、IDT for FreeRTOS は AWS IoT things、FreeRTOS グループ、Lambda 関数などのリソースを作成します。これらのリソースを作成するために、IDT for FreeRTOS は で設定された AWS 認証情報`config.json`を使用してユーザーに代わって API コールを行います。これらのリソースは、テスト中にさまざまなタイミングでプロビジョニングされます。

IDT for FreeRTOS をホストコンピュータで実行すると、次のステップが実行されます。

1. デバイスおよび認証情報の設定をロードして検証します。

1. 必要なローカルリソースとクラウドリソースを使用して選択したテストを実行します。

1. ローカルリソースとクラウドリソースをクリーンアップします。

1. ボードが資格に必要なテストに合格したかどうかを示すテストレポートを生成します。

# LTS 認定の前提条件を設定する
<a name="lts-idt-dev-tester-prereqs"></a>

このセクションでは、 でマイクロコントローラーをテストするための前提条件について説明します AWS IoT Device Tester。

## FreeRTOS 認定の準備をする
<a name="idt-preparing-qualification"></a>

**注記**  
AWS IoT Device Tester for FreeRTOS では、最新の FreeRTOS-LTS バージョンの最新のパッチリリースを使用することを強くお勧めします。

IDT for FRQ 2.0 は FreeRTOS の認定です。IDT FRQ 2.0 を実行して認定を行う前に、「*FreeRTOS 認定ガイド*」の「[ボードを資格認定する](https://docs.aws.amazon.com/freertos/latest/qualificationguide/freertos-qualification.html)」を完了する必要があります。ライブラリの移植、テスト、および `manifest.yml` のセットアップについては、「*FreeRTOS 移植ガイド*」の「[FreeRTOS ライブラリの移植](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting.html)」を参照してください。FRQ 2.0 には、認定のためのさまざまなプロセスが含まれています。詳細については、「FreeRTOS 認定ガイド」で[認定に関する最新の変更内容](https://docs.aws.amazon.com/freertos/latest/qualificationguide/latest-changes.html)を参照してください。

IDT を実行するには、[FreeRTOS-Libraries-Integration-Tests](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests) リポジトリが存在している必要があります。このリポジトリを複製してソースプロジェクトに移植する方法については、「[README.md](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests/blob/main/README.md)」を参照してください。FreeRTOS-Libraries-Integration-Tests には、IDT を実行するために、プロジェクトのルートに `manifest.yml` が含まれている必要があります。

**注記**  
IDT は、テストリポジトリでの `UNITY_OUTPUT_CHAR` の実装に依存しています。テスト出力ログとデバイスログは、相互にインターリーブしないようにする必要があります。詳細については、「*FreeRTOS 移植ガイド*」の「[ライブラリロギングマクロの実装](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-library-logging-macros.html)」セクションを参照してください。

## IDT for FreeRTOS のダウンロード
<a name="idt-download-dev-tester-afr"></a>

どのバージョンの FreeRTOS にも、認定テストの実行に対応する IDT for FreeRTOS のバージョンがあります。IDT for FreeRTOS の適切なバージョンを [AWS IoT Device Tester for FreeRTOS のサポートされているバージョンからダウンロードします](https://docs.aws.amazon.com/freertos/latest/userguide/dev-test-versions-afr.html)。

IDT for FreeRTOS を、ファイルシステム上で読み取りおよび書き込みアクセス許可を持っている場所に抽出します。Microsoft Windows ではパスの長さに文字数の制限があるため、IDT for FreeRTOS は、`C:\` や `D:\` などのルートディレクトリに抽出してください。

**注記**  
NFS ディレクトリや Windows ネットワーク共有フォルダなどの共有場所から複数のユーザーが IDT を実行しないようにする必要があります。そうしないと、クラッシュやデータ破損が発生します。IDT パッケージをローカルドライブに抽出することをお勧めします。

## Git のダウンロード
<a name="idt-download-git"></a>

IDT では、ソースコードの整合性を確保するための前提条件として、Git がインストールされている必要があります。

Git をインストールするには、[GitHub](https://github.com/git-guides/install-git) ガイドの手順を実行します。現在インストールされている Git のバージョンを確認するには、ターミナルで `git --version` コマンドを入力します。

**警告**  
IDT は Git を使用して、ディレクトリのステータスがクリーンであるかダーティであるかに沿って動作します。Git がインストールされていない場合、`FreeRTOSIntegrity` テストグループは失敗するか、正常に実行されません。IDT が `git executable not found` や `git command not found` などのエラーを返す場合は、Git をインストールまたは再インストールしてから再試行してください。

**Topics**
+ [FreeRTOS 認定の準備をする](#idt-preparing-qualification)
+ [IDT for FreeRTOS のダウンロード](#idt-download-dev-tester-afr)
+ [Git のダウンロード](#idt-download-git)
+ [AWS アカウントを作成する](#lts-config-aws-account)
+ [AWS IoT Device Tester マネージドポリシー](#managed-policy)
+ [(オプション) をインストールする AWS Command Line Interface](#install-cli)

## AWS アカウントを作成する
<a name="lts-config-aws-account"></a>

**注記**  
IDT 認定スイートは、以下でのみサポートされています。 AWS リージョン   
米国東部 (バージニア北部)
 米国西部 (オレゴン) 
アジアパシフィック (東京) 
欧州 (アイルランド) 

デバイスをテストするために、IDT for FreeRTOS は AWS IoT モノ、FreeRTOS グループ、Lambda 関数などのリソースを作成します。これらのリソースを作成するには、IDT for FreeRTOS では、 AWS アカウントと、テストの実行中にユーザーに代わってリソースにアクセスするアクセス許可を IDT for FreeRTOS に付与する IAM ポリシーを作成して設定する必要があります。

次の手順では、 AWS アカウントを作成して設定します。

1.  AWS アカウントが既にある場合は、次のステップに進みます。それ以外の場合は、[AWS アカウント](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/)を作成します。

1. 「[IAM ロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」のステップを実行します。この時点では、アクセス許可やポリシーを追加しないでください。

1. OTA 認定テストを実行するには、ステップ 4 に進みます。それ以外の場合は、ステップ 5 に進みます。

1.  OTA IAM アクセス許可インラインポリシーを IAM ロールにアタッチします。

   1. 
**重要**  
 次のポリシーテンプレートは、ロールの作成、ポリシーの作成、およびロールへのポリシーのアタッチを行うアクセス許可を IDT に付与します。IDT for FreeRTOS は、ロールを作成するテストに、これらのアクセス許可を使用します。ポリシーテンプレートはユーザーに管理者権限を提供しませんが、アクセス権限を使用して AWS アカウントへの管理者アクセスを取得できます。

   1.  以下のステップを実行して、必要なアクセス許可を IAM ロールにアタッチします。

      1. **[アクセス許可]** ページで、**[アクセス許可の追加]** を選択します。

      1. **[インラインポリシーを作成]** を選択します。

      1. [**JSON**] タブを選択し、次のアクセス許可を [**JSON**] テキストボックスにコピーします。中国リージョン以外の場合は、**[ほとんどのリージョン]** のテンプレートを使用します。中国リージョンの場合は、**[北京および寧夏リージョン]** のテンプレートを使用します。

------
#### [ Most Regions ]

------
#### [ JSON ]

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Effect": "Allow",
                     "Action": "iotdeviceadvisor:*",
                     "Resource": [
                         "arn:aws:iotdeviceadvisor:*:*:suiterun/*/*",
                         "arn:aws:iotdeviceadvisor:*:*:suitedefinition/*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": "iam:PassRole",
                     "Resource": "arn:aws:iam::*:role/idt*",
                     "Condition": {
                         "StringEquals": {
                             "iam:PassedToService": "iotdeviceadvisor.amazonaws.com"
                         }
                     }
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "execute-api:Invoke*",
                         "iam:ListRoles",
                         "iot:Connect",  
                         "iot:CreateJob",
                         "iot:DeleteJob",
                         "iot:DescribeCertificate", 
                         "iot:DescribeEndpoint",
                         "iot:DescribeJobExecution",
                         "iot:DescribeJob",                                 
                         "iot:DescribeThing",
                         "iot:GetPolicy",
                         "iot:ListAttachedPolicies",
                         "iot:ListCertificates",
                         "iot:ListPrincipalPolicies",
                         "iot:ListThingPrincipals",
                         "iot:ListThings",
                         "iot:Publish",    
                         "iot:UpdateThingShadow",                
                         "logs:CreateLogGroup",
                         "logs:CreateLogStream",
                         "logs:DescribeLogGroups",
                         "logs:DescribeLogStreams",
                         "logs:PutLogEvents",
                         "logs:PutRetentionPolicy"
                     ],
                     "Resource": "*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": "iotdeviceadvisor:*",
                     "Resource": "*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": "logs:DeleteLogGroup",
                     "Resource": "arn:aws:logs:*:*:log-group:/aws/iot/deviceadvisor/*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": "logs:GetLogEvents",
                     "Resource": "arn:aws:logs:*:*:log-group:/aws/iot/deviceadvisor/*:log-stream:*"
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "iam:CreatePolicy",
                         "iam:DetachRolePolicy",
                         "iam:DeleteRolePolicy",
                         "iam:DeletePolicy",
                         "iam:CreateRole",
                         "iam:DeleteRole",
                         "iam:AttachRolePolicy"
                     ],
                     "Resource": [
                         "arn:aws:iam::*:policy/idt*",
                         "arn:aws:iam::*:role/idt*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "ssm:GetParameters"
                     ],
                     "Resource": [
                         "arn:aws:ssm:*::parameter/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "ec2:DescribeInstances",
                         "ec2:RunInstances",
                         "ec2:CreateSecurityGroup",
                         "ec2:CreateTags",
                         "ec2:DeleteTags"
                     ],
                     "Resource": [
                         "*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "ec2:CreateKeyPair",
                         "ec2:DeleteKeyPair"
                     ],
                     "Resource": [
                         "arn:aws:ec2:*:*:key-pair/idt-ec2-ssh-key-*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Condition": {
                         "StringEqualsIgnoreCase": {
                             "aws:ResourceTag/Owner": "IoTDeviceTester"
                         }
                     },
                     "Action": [
                         "ec2:TerminateInstances",
                         "ec2:DeleteSecurityGroup",
                         "ec2:AuthorizeSecurityGroupIngress",
                         "ec2:RevokeSecurityGroupIngress"
                     ],
                     "Resource": [
                         "*"
                     ]
                 }
             ]
         }
         ```

------

------
#### [ Beijing and Ningxia Regions ]

         次のポリシーテンプレートは、北京および寧夏リージョンで使用できます。

------

      1. 完了したら、[**ポリシーの確認**] を選択します。

      1. ポリシー名として **IDTFreeRTOSIAMPermissions** と入力します。

      1. [**Create policy**] (ポリシーの作成) を選択します。

1.  **AWSIoTDeviceTesterForFreeRTOSFullAccess** を IAM ロールにアタッチします。

   1. 必要なアクセス許可を IAM ロールにアタッチするには、次の手順を実行します。

      1. **[アクセス許可]** ページで、**[アクセス許可の追加]** を選択します。

      1. **ポリシーのアタッチ** を選択します。

      1. **AWSIoTDeviceTesterForFreeRTOSFullAccess** ポリシーを見つけます。チェックボックスをオンにします。

   1. [**Add permissions (許可の追加)**] を選択します。

1. IDT の認証情報をエクスポートします。詳細については、「[Getting IAM role credentials for CLI access](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html)」を参照してください。

## AWS IoT Device Tester マネージドポリシー
<a name="managed-policy"></a>

`AWSIoTDeviceTesterForFreeRTOSFullAccess` 管理ポリシーには、バージョンチェック、自動更新機能、メトリクスの収集に関する以下の AWS IoT Device Tester アクセス許可が含まれています。
+ `iot-device-tester:SupportedVersion`

  サポートされている製品、テストスイート、IDT バージョンのリストを取得する AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:LatestIdt`

  ダウンロード可能な最新の IDT バージョンを取得する AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:CheckVersion`

  IDT、テストスイート、製品のバージョンの互換性をチェックする AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:DownloadTestSuite`

  テストスイートの更新をダウンロードする AWS IoT Device Tester アクセス許可を付与します。
+ `iot-device-tester:SendMetrics`

   AWS IoT Device Tester 内部使用状況に関するメトリクスを収集する AWS アクセス許可を付与します。

## (オプション) をインストールする AWS Command Line Interface
<a name="install-cli"></a>

一部のオペレーションを実行する AWS CLI には、 を使用することをお勧めします。 AWS CLI がインストールされていない場合は、「[AWS CLIのインストール](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)」の手順を実行します。

コマンドライン**aws configure**から を実行して、使用する AWS CLI AWS リージョンの を設定します。IDT for FreeRTOS をサポートする AWS リージョンについては、[AWS 「リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#amazon-freertos-ota-control)」を参照してください。**aws configure** の詳細については、[**aws configure** を使用したクイック設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)を参照してください。

# マイクロコントローラーボードの最初のテスト
<a name="lts-qual-steps"></a>

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

## ライブラリ移植レイヤーを追加する
<a name="lts-add-port-layer"></a>

デバイス用に FreeRTOS を移植するには、「[FreeRTOS 移植ガイド](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-guide.html)」を参照してください。FreeRTOS テストリポジトリを実装して FreeRTOS レイヤーを移植する際には、テストリポジトリを含む各ライブラリへのパスを指定した `manifest.yml` を提供する必要があります。このファイルは、ソースコードのルートディレクトリにあります。詳細については、「[マニフェストファイルの手順](https://docs.aws.amazon.com/freertos/latest/qualificationguide/afq-checklist-manifest-instr.html)」を参照してください。

## AWS クラウドと通信 AWS IoT Device Tester するように の AWS 認証情報を設定する
<a name="lts-cfg-aws-afr"></a>

クラウドと AWS 通信 AWS IoT Device Tester するには、 の AWS 認証情報を設定する必要があります。詳細については、[開発用の AWS 認証情報とリージョンのセットアップ](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html)を参照してください。有効な 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 認証を制御するメソッドフィールドがあり、ファイルまたは環境として宣言できます。フィールドを環境に設定すると、ホストマシンの環境変数から AWS 認証情報が取得されます。このフィールドを file に設定すると、指定されたプロファイルが `.aws/credentials` 設定ファイルからインポートされます。

**Topics**
+ [ライブラリ移植レイヤーを追加する](#lts-add-port-layer)
+ [AWS クラウドと通信 AWS IoT Device Tester するように の AWS 認証情報を設定する](#lts-cfg-aws-afr)
+ [IDT for FreeRTOS でデバイスプールを作成する](lts-cfg-dt-dp.md)
+ [ビルド、フラッシュ、テスト設定を設定する](lts-cfg-dt-ud.md)

# IDT for FreeRTOS でデバイスプールを作成する
<a name="lts-cfg-dt-dp"></a>

テストするデバイスは、デバイスプールにまとめられます。各デバイスプールは、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 変数](lts-dt-vars.md)」を参照してください。

次の例では、`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 が必要です。サポートされている値は、`ECC`、`RSA`、および `Both` です。`Both` は、ボードが `ECC` と `RSA` の両方をサポートしていることを示します。  
** `KeyProvisioning` **  
信頼された X.509 クライアント証明書をボードに書き込む方法を指定します。  

有効な値は、`Import`、`Onboard`、`Both`、および `No` です。認定には、`Onboard`、`Both`、または `No` キープロビジョニングが必要です。`Import` 単独では認定に有効なオプションではありません。
+ `Import` は、ボードがプライベートキーのインポートを許可している場合にのみ使用します。`Import` の選択は認定には有効な構成ではないため、テスト目的、特に PKCS11 テストケースでのみ使用してください。`Onboard`、`Both` または `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
   ```

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

   ```
   xxd -p pubkey.der > outFile
   ```

** `devices.secureElementConfig.PublicDeviceCertificateArn` **  
アップロード先のセキュア要素からの証明書の ARN AWS IoT Core。証明書を にアップロードする方法については AWS IoT Core、「 *AWS IoT デベロッパーガイド*」の[「X.509 クライアント証明書](https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html)」を参照してください。

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

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

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

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

# ビルド、フラッシュ、テスト設定を設定する
<a name="lts-cfg-dt-ud"></a>

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

# デバイスをテストするための設定
<a name="lts-config-settings-device"></a>

ビルド、フラッシュ、およびテストの設定は、`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}}`ホルダー変数を使用してソースコード root を基準にする必要があります。 は、このファイルのパラメータ AWS IoT Device Tester を使用してテストを設定します。

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

**  `freeRTOSVersion` **  
実装で使用されているパッチバージョンを含む FreeRTOS のバージョン。[AWS IoT Device Tester for FreeRTOS と互換性のある FreeRTOS バージョンについては、「サポートされている](https://docs.aws.amazon.com/freertos/latest/userguide/dev-test-versions-afr.html)バージョンの AWS IoT Device Tester for FreeRTOS」を参照してください。 FreeRTOS 

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

**  `flashTool` **  
イメージをデバイスにフラッシュするコマンド。フラッシュコマンドのソースコードパスへのすべての参照は、 AWS IoT Device Tester 変数 に置き換える必要があります`{{testData.sourcePath}}`。`{{config.idtRootPath}}` プレースホルダーを使用して、 AWS IoT Device Tester ルートパスを基準にしてフラッシュスクリプトを参照します。  
FRQ 2.0 を使用した新しい統合テスト構造では、`{{enableTests}}` や `{{buildImageName}}` などのパス変数は必要ありません。OTA エンドツーエンドテストは、[FreeRTOS-Libraries-Integration-Tests](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests/blob/main/config_template/) 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 code 署名の使用はそのリージョンではサポートされていません。  
** `signerHashingAlgorithm` **  
デバイスでサポートされているハッシュアルゴリズム。想定される値は、`SHA1` または `SHA256` です。  
** `signerSigningAlgorithm` **  
デバイスでサポートされている署名アルゴリズム。想定される値は、`RSA` または `ECDSA` です。  
** `signerCertificate` **  
OTA 用の信頼された証明書。 AWS コード署名方法では、 AWS Certificate Manager にアップロードされた信頼された証明書の Amazon リソースネーム (ARN) を使用します。カスタムコード署名方法では、署名者の証明書ファイルへの絶対パスを使用します。信頼された証明書を作成する方法については、「[コード署名証明書の作成](https://docs.aws.amazon.com/freertos/latest/userguide/ota-code-sign-cert.html)」を参照してください。  
** `untrustedSignerCertificate` **  
一部の OTA テストで信頼できない証明書として使用される 2 番目の証明書の ARN またはファイルパス。証明書を作成する方法については、「[コード署名証明書の作成](https://docs.aws.amazon.com//freertos/latest/userguide/ota-code-sign-cert.html)」を参照してください。  
** `signerCertificateFileName` **  
デバイスのコード署名証明書のファイル名。この値は、`aws acm import-certificate` コマンド実行時に指定したファイル名と一致する必要があります。  
** `compileSignerCertificate` **  
署名検証証明書のステータスを決定するブール値。有効な値は、`true` および `false` です。  
コード署名者の署名検証証明書がプロビジョニングまたはフラッシュされていない場合は、この値を **true** に設定します。プロジェクトにコンパイルする必要があります。 は信頼できる証明書 AWS IoT Device Tester を取得し、 にコンパイルします`aws_codesigner_certificate.h`。  
** `signerPlatform` **  
OTA 更新ジョブの作成時に AWS Code Signer が使用する署名およびハッシュアルゴリズム。現在、このフィールドで可能な値は、`AmazonFreeRTOS-TI-CC3220SF` と `AmazonFreeRTOS-Default` です。  
+ `SHA1` および `RSA` の場合は、`AmazonFreeRTOS-TI-CC3220SF` を選択します。
+ `SHA256` および `ECDSA` の場合は、`AmazonFreeRTOS-Default` を選択します。
+ 設定に `SHA256` \$1 `RSA` または `SHA1` \$1 `ECDSA` が必要な場合は、当社に追加のサポートを依頼してください。
+ `signingMethod` として `Custom` を選択した場合は、`signCommand` を設定します。  
** `signCommand` **  
このコマンドには `{{inputImageFilePath}}` と `{{outputSignatureFilePath}}` の 2 つのプレースホルダーが必要です。`{{inputImageFilePath}}` は、IDT によって構築される署名対象のイメージのファイルパスです。`{{outputSignatureFilePath}} ` は、スクリプトによって生成される署名のファイルパスです。

**  `pkcs11LabelConfiguration` **  
PKCS11 ラベル設定には、PKCS11 テストグループを実行するために、デバイス証明書ラベル、公開鍵ラベル、秘密鍵ラベルのラベルセットが少なくとも 1 セット必要です。必要な PKCS11 ラベルは、`device.json` ファイル内のデバイス設定に基づきます。事前プロビジョニングが `device.json` で **Yes** に設定されている場合、必要なラベルは PKCS11 機能に対して選択された内容に応じて、以下のいずれかになります。  
+ `PreProvisionedEC`
+ `PreProvisionedRSA`
事前プロビジョニングが `device.json` で **No** に設定されている場合、必要なラベルは以下のとおりです。  
+ `pkcs11LabelDevicePrivateKeyForTLS`
+ `pkcs11LabelDevicePublicKeyForTLS`
+ `pkcs11LabelDeviceCertificateForTLS`
次の 3 つのラベルは、`device.json` ファイルで `pkcs11JITPCodeVerifyRootCertSupport` に対して **Yes** を選択した場合にのみ必要です。  
+ `pkcs11LabelCodeVerifyKey`
+ `pkcs11LabelRootCertificate`
+ `pkcs11LabelJITPCertificate`
これらのフィールドの値は、「[FreeRTOS 移植ガイド](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting-pkcs.html)」で定義されている値と一致する必要があります。    
** `pkcs11LabelDevicePrivateKeyForTLS` **  
(オプション) このラベルはプライベートキーの PKCS \$111 ラベルに使用されます。キープロビジョニングのオンボードサポートとインポートサポートがあるデバイスの場合、このラベルがテストに使用されます。このラベルは、事前プロビジョニングされたケースで定義されたラベルとは異なる場合があります。`device.json` でキープロビジョニングを **No** に設定し、事前プロビジョニングを **Yes** に設定した場合、これは未定義になります。  
** `pkcs11LabelDevicePublicKeyForTLS` **  
(オプション) このラベルはパブリックキーの PKCS \$111 ラベルに使用されます。キープロビジョニングのオンボードサポートとインポートサポートがあるデバイスの場合、このラベルがテストに使用されます。このラベルは、事前プロビジョニングされたケースで定義されたラベルとは異なる場合があります。`device.json` でキープロビジョニングを **No** に設定し、事前プロビジョニングを **Yes** に設定した場合、これは未定義になります。  
** `pkcs11LabelDeviceCertificateForTLS` **  
(オプション) このラベルはデバイス証明書の PKCS \$111 ラベルに使用されます。キープロビジョニングのオンボードサポートとインポートサポートがあるデバイスの場合、このラベルがテストに使用されます。このラベルは、事前プロビジョニングされたケースで定義されたラベルとは異なる場合があります。`device.json` でキープロビジョニングを **No** に設定し、事前プロビジョニングを **Yes** に設定した場合、これは未定義になります。  
** `pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS` **  
(オプション) このラベルはプライベートキーの PKCS \$111 ラベルに使用されます。安全な要素またはハードウェアの制限があるデバイスの場合、 AWS IoT 認証情報を保持するためのラベルは異なります。デバイスが EC キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。`device.json` で事前プロビジョニングが **Yes** に設定されている場合は、このラベルまたは `pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS`、あるいはその両方を指定する必要があります。このラベルは、オンボードおよびインポートのケースで定義されたラベルとは異なる場合があります。  
** `pkcs11LabelPreProvisionedECDevicePublicKeyForTLS` **  
(オプション) このラベルはパブリックキーの PKCS \$111 ラベルに使用されます。安全な要素またはハードウェアの制限があるデバイスの場合、 AWS IoT 認証情報を保持するためのラベルは異なります。デバイスが EC キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。`device.json` で事前プロビジョニングが **Yes** に設定されている場合は、このラベルまたは `pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS`、あるいはその両方を指定する必要があります。このラベルは、オンボードおよびインポートのケースで定義されたラベルとは異なる場合があります。  
** `pkcs11LabelPreProvisionedECDeviceCertificateForTLS` **  
(オプション) このラベルはデバイス証明書の PKCS \$111 ラベルに使用されます。安全な要素またはハードウェアの制限があるデバイスの場合、 AWS IoT 認証情報を保持するためのラベルは異なります。デバイスが EC キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。`device.json` で事前プロビジョニングが **Yes** に設定されている場合は、このラベルまたは `pkcs11LabelPreProvisionedRSADeviceCertificateForTLS`、あるいはその両方を指定する必要があります。このラベルは、オンボードおよびインポートのケースで定義されたラベルとは異なる場合があります。  
** `pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS` **  
(オプション) このラベルはプライベートキーの PKCS \$111 ラベルに使用されます。安全な要素またはハードウェアの制限があるデバイスの場合、 AWS IoT 認証情報を保持するためのラベルは異なります。デバイスが RSA キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。`device.json` で事前プロビジョニングが **Yes** に設定されている場合は、このラベルまたは `pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS`、あるいはその両方を指定する必要があります。  
** `pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS` **  
(オプション) このラベルはパブリックキーの PKCS \$111 ラベルに使用されます。安全な要素またはハードウェアの制限があるデバイスの場合、 AWS IoT 認証情報を保持するためのラベルは異なります。デバイスが RSA キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。`device.json` で事前プロビジョニングが **Yes** に設定されている場合は、このラベルまたは `pkcs11LabelPreProvisionedECDevicePublicKeyForTLS`、あるいはその両方を指定する必要があります。  
** `pkcs11LabelPreProvisionedRSADeviceCertificateForTLS` **  
(オプション) このラベルはデバイス証明書の PKCS \$111 ラベルに使用されます。安全な要素またはハードウェアの制限があるデバイスの場合、 AWS IoT 認証情報を保持するためのラベルは異なります。デバイスが RSA キーによる事前プロビジョニングをサポートしている場合は、このラベルを指定します。`device.json` で事前プロビジョニングが **Yes** に設定されている場合は、このラベルまたは `pkcs11LabelPreProvisionedECDeviceCertificateForTLS`、あるいはその両方を指定する必要があります。  
** `pkcs11LabelCodeVerifyKey` **  
(オプション) このラベルはコード検証キーの PKCS \$111 ラベルに使用されます。デバイスが JITP 証明書、コード検証キー、ルート証明書の PKCS \$111 ストレージをサポートしている場合は、このラベルを指定します。`device.json` で `pkcs11JITPCodeVerifyRootCertSupport` が **Yes** に設定されている場合は、このラベルを指定する必要があります。  
** `pkcs11LabelJITPCertificate` **  
(オプション) このラベルは JITP 証明書の PKCS \$111 ラベルに使用されます。デバイスが JITP 証明書、コード検証キー、ルート証明書の PKCS \$111 ストレージをサポートしている場合は、このラベルを指定します。`device.json` で `pkcs11JITPCodeVerifyRootCertSupport` が **Yes** に設定されている場合は、このラベルを指定する必要があります。

# IDT for FreeRTOS 変数
<a name="lts-dt-vars"></a>

コードを構築してデバイスをフラッシュするコマンドでは、正常に実行するために接続やデバイスに関するその他の情報が必要になる場合があります。 AWS IoT Device Tester を使用すると、フラッシュでデバイス情報を参照し、[JsonPath](https://goessner.net/articles/JsonPath/) を使用してコマンドを構築できます。単純な JsonPath 式を使用して、`device.json` ファイルで指定されている情報を取得することができます。

## パス変数
<a name="path-variables-lts"></a>

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

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

** `{{device.connectivity.serialPort}}` **  
シリアルポートに拡張されます。

** `{{device.identifiers[?(@.name == 'serialNo')].value[0]}}` **  
デバイスのシリアル番号に拡張されます。

** `{{config.idtRootPath}}` **  
 AWS IoT Device Tester ルートパスに展開します。

# IDT for FreeRTOS 認定スイート 2.0 (FRQ 2.0) の UI
<a name="lts-device-tester-ui"></a>

AWS IoT Device Tester for FreeRTOS (IDT for FreeRTOS) には、IDT コマンドラインアプリケーションと関連する設定ファイルを操作できるウェブベースのユーザーインターフェイス (UI) が含まれています。IDT for FreeRTOS UI を使用して、デバイスの新しい設定を作成したり、既存の設定を変更したりします。この UI を使用して、IDT アプリケーションを呼び出し、デバイスに対して FreeRTOS テストを実行することもできます。

コマンドラインを使用して認定テストを実行する方法については、「[マイクロコントローラーボードの最初のテスト](lts-qual-steps.md)」を参照してください。

このセクションでは、IDT for FreeRTOS UI の前提条件と、UI から認定テストを実行する方法について説明します。

**Topics**
+ [IDT 前提条件の設定](#lts-dev-tester-ui-prereqs)
+ [IDT UI を使用するように AWS 認証情報を設定する](lts-configure-aws-credentials.md)
+ [IDT for FreeRTOS UI を開く](lts-open-idt-ui.md)
+ [新しい設定を作成する](lts-create-new-configuration.md)
+ [既存の設定を変更する](lts-modify-existing-configuration.md)
+ [認定テストを実行する](lts-run-tests-from-ui.md)

## IDT 前提条件の設定
<a name="lts-dev-tester-ui-prereqs"></a>

FreeRTOS UI の AWS IoT Device Tester (IDT) を使用してテストを実行するには、IDT FreeRTOS 認定 (FRQ) 2.x の[LTS 認定の前提条件を設定する](lts-idt-dev-tester-prereqs.md)ページの前提条件を満たす必要があります。

# IDT UI を使用するように AWS 認証情報を設定する
<a name="lts-configure-aws-credentials"></a>

で作成したユーザーの IAM AWS ユーザー認証情報を設定する必要があります[AWS アカウントを作成する](lts-idt-dev-tester-prereqs.md#lts-config-aws-account)。以下のいずれかの方法で認証情報を指定できます。
+ 認証情報ファイルを使用する
+ 環境変数を使用する

## AWS 認証情報ファイルを使用して認証情報を設定する
<a name="lts-config-cred-file"></a>

IDT では、 AWS CLIと同じ認証情報ファイルが使用されます。詳細については、「[設定ファイルと認証情報ファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html)」を参照してください。

認証情報ファイルの場所は、使用しているオペレーティングシステムによって異なります。
+ **macOS および Linux** – `~/.aws/credentials`
+ **Windows** – `C:\Users\UserName\.aws\credentials`

次の形式で AWS 認証情報を `credentials` ファイルに追加します。

```
[default]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key
```

**注記**  
`default` AWS プロファイルを使用しない場合は、IDT for FreeRTOS UI でプロファイル名を指定する必要があります。プロファイルの詳細については、「[設定ファイルと認証情報ファイルの設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」を参照してください。

## 環境変数を使用して AWS 認証情報を設定する
<a name="lts-config-env-vars"></a>

環境変数は、オペレーティングシステムによって維持され、システムコマンドによって使用される変数です。SSH セッションを閉じると、これらは保存されません。IDT for FreeRTOS UI は、 `AWS_ACCESS_KEY_ID`および `AWS_SECRET_ACCESS_KEY`環境変数を使用して AWS 認証情報を保存します。

これらの変数を Linux、macOS、または Unix で設定するには、**export** を使用します。

```
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Windows でこれらの変数を設定するには、**set** を使用します。

```
set AWS_ACCESS_KEY_ID=your_access_key_id
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

# IDT for FreeRTOS UI を開く
<a name="lts-open-idt-ui"></a>

このトピックでは、IDT for FreeRTOS UI を開いて FreeRTOS 認定スイートを使用する方法について説明します。

**IDT for FreeRTOS UI を開く方法**

1. サポートされるバージョンの IDT for FreeRTOS をダウンロードします。次に、ダウンロードしたアーカイブを、読み取りおよび書き込みアクセス許可を持っているディレクトリに抽出します。

1. IDT for FreeRTOS のインストールディレクトリに移動します。

   ```
   cd devicetester-extract-location/bin 
   ```

1. 次のコマンドを実行して IDT for FreeRTOS UI を開きます。

------
#### [ Linux ]

   ```
   .devicetester_ui_linux_x86-64
   ```

------
#### [ Windows ]

   ```
   ./devicetester_ui_win_x64-64
   ```

------
#### [ macOS ]

   ```
   ./devicetester_ui_mac_x86-64
   ```

**注記**  
macOS でシステムが UI を実行できるようにするには、**[システム環境設定] -> [セキュリティとプライバシー]** に移動します。テストを実行するときは、これをさらに 3 回行う必要がある場合があります。

------

   IDT for FreeRTOS UI がデフォルトのブラウザで開きます。以下のブラウザの最新の 3 つのメジャーバージョンは UI をサポートしています。
   + Google Chrome
   + Mozilla Firefox
   + Microsoft Edge
   + MacOS 版 Apple Safari
**注記**  
エクスペリエンスの向上のために、Google Chrome または Mozilla Firefox で IDT for FreeRTOS UI にアクセスすることをお勧めします。Microsoft Internet Explorer は UI ではサポートされていません。
**重要**  
UI を開く前に、 AWS 認証情報を設定する必要があります。認証情報を設定していない場合は、IDT for FreeRTOS UI ブラウザウィンドウを閉じて、「[IDT UI を使用するように AWS 認証情報を設定する](lts-configure-aws-credentials.md)」の手順に従います。その後に IDT for FreeRTOS UI を再度開きます。

# 新しい設定を作成する
<a name="lts-create-new-configuration"></a>

初めて使用する場合、IDT for FreeRTOS がテストを実行するのに必要な JSON 設定ファイルをセットアップするための新しい設定を作成する必要があります。これにより、テストを実行したり、作成した設定を変更できます。

`config.json`、`device.json`、および `userdata.json` ファイルの例については、[マイクロコントローラーボードの最初のテスト](lts-qual-steps.md)を参照してください。

**新しい設定を作成するには**

1. IDT for FreeRTOS UI でナビゲーションメニューを開いて、**[新しい設定を作成]** を選択します。  
![\[Device Tester for FreeRTOS には「Create new configuration」ボタンと、マイクロコントローラーの自動セルフテストに関する情報が含まれています。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/gsg-create-configuration.png)

1. 設定ウィザードに従って、認定テストの実行に使用される IDT 構成設定を入力します。このウィザードで `devicetester-extract-location/config` ディレクトリにある JSON 設定ファイル内の次の設定を行います。
   + **[デバイス設定]**: テスト対象のデバイス用のデバイスプール設定。これらの設定は、`config.json` ファイルのデバイスプールに関する `id` および `sku` フィールドと **[デバイス]** ブロックで行われます。  
![\[Device Tester for FreeRTOS 設定画面では、デバイスプールを設定するための識別子フィールドと SKU フィールド、接続方法などのデバイス設定オプション、キープロビジョニング、PKCS #11 設定、デバイスの詳細入力フィールド、デバイスまたは識別子を追加するコントロールがあります。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/gsg-device-settings.png)
   + **AWS アカウント設定** – IDT for FreeRTOS AWS アカウント がテスト実行中に AWS リソースを作成するために使用する情報。これらの設定は `config.json` ファイルで行われます。  
![\[AWS アカウント アカウントリージョン、ファイルまたは環境としての認証情報の場所、プロファイル名のフィールドを含む設定ページ\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/gsg-account-settings.png)
   + **[FreeRTOS 実装]**: FreeRTOS リポジトリと移植されたコードへの絶対パス、および IDT FRQ を実行したい FreeRTOS バージョン。`FreeRTOS-Libraries-Integration-Tests` GitHub リポジトリからの実行およびパラメータ設定ヘッダーファイルへのパス。IDT がボード上でテストを自動的にビルドおよびフラッシュできるようにする、ハードウェア用のビルドコマンドとフラッシュコマンド。これらの設定は `userdata.json` ファイルで行われます。  
![\[FreeRTOS 実装設定セクションには、リポジトリパス、テスト実行パス、FreeRTOS バージョン、ビルドツールの詳細、フラッシュツールの設定があります。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/gsg-implementation-settings.png)
   + **[PKCS \$111 ラベルと Echo サーバー]**: キー機能とキープロビジョニング方法に基づいてハードウェアにプロビジョニングされたキーに対応する [PKCS \$111](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting-pkcs.html) ラベル。トランスポートインターフェイステスト用のエコーサーバー構成設定。これらの設定は `userdata.json` および `device.json` ファイルで行われます。  
![\[PKCS #11 ラベルと Echo サーバー設定には、キーラベル、キー生成方法、サーバーポート番号の入力フィールドが含まれています。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/gsg-pkcs11-settings.png)
   + **[OTA (Over-The-Air) 更新]** — OTA 機能テストを制御する設定。これらの設定は、`device.json` および `userdata.json` ファイルの `features` ブロックで行われます。  
![\[OTA 更新設定オプション: テストのスキップ、データプロトコル、ファームウェアパス、PAL 証明書パス、コード署名、ハッシュ/署名アルゴリズム、信頼済み/信頼されていない署名者の証明書、署名者の証明書ファイル、コンパイルの署名者の証明書、署名者のプラットフォーム。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/gsg-ota-settings.png)

1. **[Review]** (確認) ページで、設定情報を確認します。  
![\[Device Tester for FreeRTOS 向けに作成された設定ダイアログで、新しいテスト設定の作成に関する詳細と、テストを編集または実行するオプションが表示されます。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/gsg-configuration-created.png)

設定の確認が完了したら、**[Run tests]** (テストの実行) を選択して、認定テストを実行します。

# 既存の設定を変更する
<a name="lts-modify-existing-configuration"></a>

IDT for FreeRTOS の設定ファイルを既にセットアップしている場合は、IDT for FreeRTOS UI を使用して既存の設定を変更できます。既存の設定ファイルは `devicetester-extract-location/config` ディレクトリにある必要があります。

**設定を変更するには**

1. IDT for FreeRTOS UI でナビゲーションメニューを開いて、**[既存の設定の編集]** を選択します。

   設定ダッシュボードには、既存の構成設定に関する情報が表示されます。設定が正しくない、または使用できない場合、設定のステータスは `Error validating configuration` です。  
![\[デバイス、 AWS アカウント FreeRTOS 実装、PKCS ラベルとエコーサーバー、over-the-airの更新、有効なステータスを示すテスト実行設定セクションを含む設定画面。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/modify-existing-configuration.png)

1. 既存の設定を変更するには、以下のステップを実行します。

   1. 構成設定の名前を選択して、設定ページを開きます。

   1. 設定を変更し、**[Save]** (保存) を選択して、対応する設定ファイルを再生成します。

1. IDT for FreeRTOS のテスト実行設定を変更するには、編集ビューで **[IDT テスト実行設定]** を選択します。  
![\[IDT テスト実行設定ダイアログには、テスト選択、テストグループのスキップ、タイムアウト乗数、初回失敗時の停止のオプションがあります。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/idt-testrun-settings.png)

設定の変更が完了したら、すべての構成設定が検証に合格することを確認します。各構成設定のステータスが `Valid` の場合、この設定を使用して認定テストを実行できます。

# 認定テストを実行する
<a name="lts-run-tests-from-ui"></a>

IDT for FreeRTOS UI の設定を作成したら、認定テストを実行できます。

**認定テストを実行するには**

1. ナビゲーションメニューで、**[Run tests]** (テストの実行) を選択します。

1. テストの実行を開始するには、**[テストの開始]** を選択します。デフォルトでは、該当するすべてのテストがデバイス構成に合わせて実行されます。IDT for FreeRTOS は、すべてのテストが終了すると認定レポートを生成します。  
![\[Device Tester for FreeRTOS インターフェイスには、テストが未実行であることが示されており、新しい設定の作成、既存の設定の編集、テストの実行のオプションがあります。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/idt-run-tests.png)

IDT for FreeRTOS が認定テストを実施します。次に、テスト実行の概要とエラーを **[テストランナー]** コンソールに表示します。テストの実行が完了したら、次の場所でテスト結果とログを確認できます。
+ テスト結果は、`devicetester-extract-location/results/execution-id` ディレクトリにあります。
+ テストのログは `devicetester-extract-location/results/execution-id/logs` ディレクトリにあります。

テスト結果とログの詳細については、「[IDT for FreeRTOSresults を表示する](view-results-lts.md)」および「[IDT for FreeRTOSlogs を表示する](view-logs-lts.md)」を参照してください。

![\[Device Tester for FreeRTOS 実行ログには、合格したテスト、テストグループ、ログとレポートのファイルパスが表示されます。\]](http://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/images/idt-results.png)


# FreeRTOS 認定 2.0 スイートの実行
<a name="lts-run-tests"></a>

 AWS IoT Device Tester for FreeRTOS 実行可能ファイルを使用して、IDT for FreeRTOS とやり取りします。以下のコマンドラインの例では、デバイスプール (同一デバイスの集合) に対して適格性確認テストを実行する方法を示します。

------
#### [ IDT v4.5.2 and later ]

```
devicetester_[linux | mac | win] run-suite  \
    --suite-id suite-id  \
    --group-id group-id  \
    --pool-id your-device-pool \
    --test-id test-id  \
    --userdata userdata.json
```

デバイスプールに対してテストスイートを実行します。`userdata.json` ファイルは、`devicetester_extract_location/devicetester_freertos_[win|mac|linux]/configs/` ディレクトリに置く必要があります。

**注記**  
Windows 上で IDT for FreeRTOS を実行する場合、スラッシュ (/) を使用して `userdata.json` ファイルへのパスを指定します。

特定のテストグループを実行するには、次のコマンドを使用します。

```
devicetester_[linux | mac | win] run-suite  \
    --suite-id FRQ_1.99.0  \
    --group-id group-id  \
    --pool-id pool-id  \
    --userdata userdata.json
```

1 つのデバイスプールに対して 1 つのスイートを実行する場合 (`device.json` ファイルで定義したデバイスプールが 1 つしかない場合)、`suite-id` パラメータと `pool-id` パラメータは省略可能です。

テストグループの特定のテストケースを実行するには、次のコマンドを使用します。

```
devicetester_[linux | mac | win_x86-64] run-suite  \
    --group-id group-id  \
    --test-id test-id
```

`list-test-cases` コマンドを使用して、テストグループのテストケースを一覧表示できます。

**IDT for FreeRTOS のコマンドラインオプション**

**group-id**  
(オプション) 実行するテストグループ (カンマ区切りリストとして)。指定しない場合、IDT はテストスイートのすべてのテストグループを実行します。

**pool-id**  
(オプション) テストするデバイスプール。これは、`device.json` で複数のデバイスプールを定義する場合に必要です。デバイスプールが 1 つしかない場合は、このオプションを省略できます。

**suite-id**  
(オプション) 実行するテストスイートのバージョン。指定しない場合、IDT はシステムの tests ディレクトリにある最新バージョンを使用します。

**test-id**  
(オプション) 実行するテスト (カンマ区切りリストとして)。指定した場合、`group-id` は 1 つのグループを指定する必要があります。  

**Example**  

```
devicetester_[linux | mac | win_x86-64] run-suite --group-id FreeRTOSVersion --test-id FreeRTOSVersion
```

**h**  
`run-suite` オプションの詳細を確認するには、ヘルプオプションを使用します。  

**Example**  
**例**  

```
devicetester_[linux | mac | win_x86-64] run-suite -h
```

------

## IDT for FreeRTOS コマンド
<a name="lts-dt-cli"></a>

IDT for FreeRTOS のコマンドは次のオペレーションをサポートしています。

------
#### [ IDT v4.5.2 and later ]

** `help` **  
指定されたコマンドに関する情報を一覧表示します。

** `list-groups` **  
特定のスイート内のグループを一覧表示します。

** `list-suites` **  
使用可能なスイートを一覧表示します。

** `list-supported-products` **  
サポートされている製品とテストスイートのバージョンを一覧表示します。

** `list-supported-versions` **  
現在の IDT バージョンでサポートされている FreeRTOS およびテストスイートのバージョンを一覧表示します。

** `list-test-cases` **  
指定したグループのテストケースを一覧表示します。

** `run-suite` **  
デバイスプールに対してテストスイートを実行します。  
`--suite-id` オプションを使用してテストスイートのバージョンを指定するか、そのオプションを省略してシステムの最新バージョンを使用します。  
個々のテストケースを実行するには、`--test-id` を使用します。  

**Example**  

```
devicetester_[linux | mac | win_x86-64] run-suite --group-id FreeRTOSVersion --test-id FreeRTOSVersion
```
IDT v3.0.0 以降、IDT は新しいテストスイートをオンラインでチェックします。詳細については、「[テストスイートのバージョン](idt-test-suite-versions.md)」を参照してください。

------

# IDT for FreeRTOSresults を表示する
<a name="view-results-lts"></a>

実行中、IDT はコンソール、ログファイル、テストレポートにエラーを書き込みます。IDT で適格性テストスイートを実行すると、テスト実行の概要がコンソールに書き込まれ、2 つのレポートが生成されます。これらのレポートは `devicetester-extract-location/results/execution-id/` にあります。両レポートでは、適格性確認テストスイートの実行の結果をキャプチャします。

`awsiotdevicetester_report.xml` は、 AWS Partner Device Catalog にデバイスを一覧表示 AWS するために に送信する認定テストレポートです。レポートには、次の要素が含まれます。
+ IDT for FreeRTOS のバージョン。
+ テスト済みの FreeRTOS のバージョン。
+ 合格したテストに基づいてデバイスでサポートされる FreeRTOS の機能。
+ `device.json` ファイルに記載されている SKU とデバイス名。
+ `device.json` ファイルに記載されているデバイスの機能。
+ テストケース結果の要約を集計したもの。
+ デバイスの機能に基づいてテストしたライブラリごとのテストケース結果の内訳。

`FRQ_Report.xml` は、標準 [JUnit XML 形式](https://llg.cubic.org/docs/junit/)のレポートです。[Jenkins](https://jenkins.io/)、[Bamboo](https://www.atlassian.com/software/bamboo) など CI/CD プラットフォームに統合することができます。レポートには、次の要素が含まれます。
+ テストケース結果の要約を集計したもの。
+ デバイスの機能に基づいてテストしたライブラリごとのテストケース結果の内訳。

# IDT for FreeRTOS の結果の解釈
<a name="interpreting-results-lts"></a>

`awsiotdevicetester_report.xml` または `FRQ_Report.xml` のレポートセクションには、実行したテストの結果が一覧表示されます。

最初の XML タグ `<testsuites>` は、テストの実行の概要を含みます。例:

 `<testsuites name="FRQ results" time="5633" tests="184" failures="0" errors="0" disabled="0">` 

**`<testsuites>` タグで使用される属性**

** `name` **  
テストスイートの名前。

** `time` **  
適格性確認スイートの実行所要時間 (秒)。

** `tests` **  
実行されたテストケースの数。

** `failures` **  
実行されたテストケースのうち、合格しなかったものの数。

** `errors` **  
IDT for FreeRTOS が実行できなかったテストケースの数。

** `disabled` **  
この属性は使用されていないため無視できます。

テストケースの障害やエラーがない場合、デバイスは FreeRTOS を実行するための技術要件を満たし、 AWS IoT サービスと相互運用できます。 AWS Partner Device Catalog にデバイスを一覧表示することを選択した場合は、このレポートを認定の証拠として使用できます。

テストケースに障害やエラーが発生した場合は、`<testsuites>` XML タグを確認することで、障害の生じたテストケースを特定できます。`<testsuites>` タグ内の `<testsuite>` XML タグは、テストグループのテストケース結果の要約を示します。

 `<testsuite name="FreeRTOSVersion" package="" tests="1" failures="0" time="2" disabled="0" errors="0" skipped="0">` 

形式は `<testsuites>` タグと似ていますが、`skipped` という属性があります。この属性は使用されていないため無視できます。`<testsuite>` XML タグの内側には、テストグループに対して実行されたそれぞれのテストケースの `<testcase>` タグがあります。例:

 `<testcase classname="FRQ FreeRTOSVersion" name="FreeRTOSVersion" attempts="1"></testcase>` 

**`<awsproduct>` タグで使用される属性**

** `name` **  
テスト対象の製品の名前。

** `version` **  
テスト対象の製品のバージョン。

** `features` **  
検証された機能です。`required` としてマークされている機能については、資格を得るためにボードを提出するために必要です。次のスニペットは、この情報が `awsiotdevicetester_report.xml` ファイルで表示される方法を示します。  

```
<feature name="core-freertos" value="not-supported" type="required"></feature>
```
`optional` としてマークされている機能は、資格を得るために必要ありません。次のスニペットは、オプションの機能を示しています。  

```
<feature name="ota-dataplane-mqtt" value="not-supported" type="optional"></feature>
  <feature name="ota-dataplane-http" value="not-supported" type="optional"></feature>
```
必要な機能のテストに障害やエラーがない場合、そのデバイスは FreeRTOS を実行するための技術的要件を満たしており、 AWS IoT サービスとの相互運用が可能です。[AWS Partner Device Catalog](https://partners.amazonaws.com/qualified-devices) にデバイスを出品する場合は、認定の証拠としてこのレポートを使用できます。  
テストに障害やエラーが発生した場合は、`<testsuites>` XML タグを確認することで、障害の生じたテストを特定できます。`<testsuites>` タグ内の `<testsuite>` XML タグは、テストグループのテスト結果の要約を示します。例:  

```
<testsuite name="FreeRTOSVersion" package="" tests="1" failures="1" time="2" disabled="0" errors="0" skipped="0">
```
形式は `<testsuites>` タグと似ていますが、使用されていないため無視できる `skipped` という属性があります。各 `<testsuite>` XML タグ内には、テストグループの実行されたテスト別の `<testcase>` タグがあります。例:  

```
<testcase classname="FreeRTOSVersion" name="FreeRTOSVersion"></testcase>
```

**`<testcase>` タグで使用される属性**

** `name` **  
テストケースの名前。

** `attempts` **  
IDT for FreeRTOS がテストケースを実行した回数。

テストに障害やエラーが発生した場合、`<failure>` タグまたは `<error>` タグがトラブルシューティングのための情報とともに `<testcase>` タグに追加されます。例:

```
<testcase classname="FRQ FreeRTOSVersion" name="FreeRTOSVersion"> 
      <failure type="Failure">Reason for the test case failure</failure> 
      <error>Reason for the test case execution error</error> 
  </testcase>
```

詳細については、「[エラーのトラブルシューティング](dt-afr-troubleshooting.md)」を参照してください。

# IDT for FreeRTOSlogs を表示する
<a name="view-logs-lts"></a>

テストの実行中に IDT for FreeRTOS によって生成されるログは、`devicetester-extract-location/results/execution-id/logs` にあります。2 組のログが生成されます。
+ `test_manager.log`

   IDT for FreeRTOS から生成されるログ (設定とレポート生成に関連するログなど) を含みます。
+  `test_group_id/test_case_id/test_case_id.log` 

  テスト対象のデバイスからの出力を含む、テストケースのログファイル。ログファイルには、実行されたテストグループとテストケースに従って名前が付けられます。