

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

# Bluetooth Low Energy テストを実行する
<a name="afr-bridgekeeper-dt-bt"></a>

このセクションでは、 AWS IoT Device Tester for FreeRTOS を使用して Bluetooth Low Energy テストをセットアップして実行する方法について説明します。

 コア資格には Bluetooth テストの必要はありません。FreeRTOS Bluetooth サポートを使用してデバイスをテストしない場合はこのセットアップをスキップできますが、device.json の BLE 機能を `No` に設定していることを確認してください。

## 前提条件
<a name="dt-bt-prereq"></a>
+ 「[マイクロコントローラーボードの最初のテスト](qual-steps.md)」の手順に従います。
+ Raspberry Pi 4B または 3B\$1。(Raspberry Pi BLE コンパニオンアプリケーションを実行するために必要)
+ Raspberry Pi のソフトウェア用のマイクロ SD カードおよび SD カードアダプタ。

 

## Raspberry Pi のセットアップ
<a name="dt-bt-pi-setup"></a>

テスト対象デバイス (DUT) の BLE 機能をテストするには、Raspberry Pi Model 4B または 3B\$1 を保有している必要があります。

**BLE テストを実行するように Raspberry Pi をセットアップするには**

1. テストの実行に必要なソフトウェアが含まれているカスタム Yocto イメージのいずれかをダウンロードします。
   + [Raspberry Pi 4B 用のイメージ](https://docs.aws.amazon.com/freertos/latest/userguide/freertos/IDTFR_BLE_RaspberryPi4B_1.0.0_2021-04-13.rpi-sd.img) 
   + [Raspberry Pi 3B\$1 用のイメージ](https://docs.aws.amazon.com/freertos/latest/userguide/freertos/IDTFR_BLE_RaspberryPi3Bplus_1.0.0_2021-04-13.rpi-sd.img) 
**注記**  
Yocto イメージは AWS IoT Device Tester 、 for FreeRTOS でのテストにのみ使用し、他の目的では使用しないでください。

1. Raspberry Pi 用の SD カードに yocto イメージをフラッシュします。

   1. [Etcher](https://www.balena.io/etcher) などの SD カード書き込みツールを使用して、ダウンロードした `image-name.rpi-sd.img` ファイルを SD カードにフラッシュします。オペレーティングシステムイメージが大きいため、このステップに時間がかかることがあります。次に、SD カードをコンピュータから取り出し、microSD カードを Raspberry Pi に挿入します。

1. Raspberry Pi を設定します。

   1. 最初の起動では、Raspberry Pi をモニター、キーボード、およびマウスに接続することをお勧めします。

   1. Raspberry Pi をマイクロ USB 電源に接続します。

   1. デフォルトの認証情報を使用してサインインします。ユーザー ID には **root** と入力します。パスワードには **idtafr** と入力します。

   1. イーサネットまたは Wi-Fi 接続を使用して、Raspberry Pi をネットワークに接続します。

      1. Wi-Fi 経由で Raspberry Pi を接続するには、Raspberry Pi 上で `/etc/wpa_supplicant.conf` を開き、`Network` 接続に Wi-Fi 接続を追加します。

         ```
         ctrl_interface=/var/run/wpa_supplicant
         ctrl_interface_group=0
         update_config=1
         
         network={
                 scan_ssid=1
                 ssid="your-wifi-ssid"
                 psk="your-wifi-password"
                 }
         ```

      1. `ifup wlan0` を実行して Wi-Fi 接続を開始します。Wi-Fi ネットワークに接続するには 1 分かかる場合があります。

   1. イーサネット接続の場合は、`ifconfig eth0` を実行します。Wi-Fi 接続の場合は、`ifconfig wlan0` を実行します。コマンドの出力に `inet addr` として表示される IP アドレスを書き留めます。この手順の後半でこの IP アドレスが必要になります。

   1. (オプション) このテストは、yocto イメージ用のデフォルトの認証情報を使用して SSH を介して Raspberry Pi 上でコマンドを実行します。より高度なセキュリティには、SSH にパブリックキー認証を設定し、パスワードベースの SSH を無効にすることが推奨されます。

      1. OpenSSL `ssh-keygen` コマンドを使用して SSH キーを作成します。ホストコンピュータに SSK キーペアがすでにある場合は、 AWS IoT Device Tester FreeRTOS が Raspberry Pi にサインインできるように新しいキーペアを作成するのがベストプラクティスです。
**注記**  
Windows にはインストール済みの SSH クライアントがありません。Windows に SSH クライアントをインストールする方法については、「[Windows に SSH ソフトウェアをダウンロードする](https://www.ssh.com/ssh/#sec-Download-client-software)」を参照してください。

      1. `ssh-keygen` コマンドは、キーペアを保存する名前とパスの入力を求めます。デフォルトでは、キーペアファイルの名前は `id_rsa` (プライベートキー) と `id_rsa.pub` (パブリックキー) です。macOS および Linux の場合、これらのファイルのデフォルトの場所は `~/.ssh/` です。Windows の場合、デフォルトの場所は `C:\Users\user-name` です。

      1. キーフレーズの入力を求められたら、単にエンターキーを押します。

      1.  AWS IoT Device Tester for FreeRTOS がデバイスにサインインできるように Raspberry Pi に SSH キーを追加するには、ホストコンピュータから `ssh-copy-id` コマンドを使用します。このコマンドは、Raspberry Pi の `~/.ssh/authorized_keys` ファイルにパブリックキーを追加します。

         `ssh-copy-id root@raspberry-pi-ip-address`

      1. パスワードの入力を求められたら、「**idtafr**」と入力します。これは yocto イメージのデフォルトのパスワードです。
**注記**  
`ssh-copy-id` コマンドが引き受けるパブリックキーの名前は `id_rsa.pub` です。macOS および Linux では、デフォルトの場所は ` ~/.ssh/` になります。Windows の場合、デフォルトの場所は `C:\Users\user-name\.ssh` です。パブリックキーに別の名前や別の保存先を指定した場合は、`ssh-copy-id` で `-i` オプションを使用し、SSH 公開鍵への完全修飾パス (`ssh-copy-id -i ~/my/path/myKey.pub` など) を指定する必要があります。SSH キーの作成とパブリックキーのコピーの詳細については、「[SSH-COPY-ID](https://www.ssh.com/ssh/copy-id)」を参照してください。

      1. パブリックキー認証が動作していることをテストするには、`ssh -i /my/path/myKey root@raspberry-pi-device-ip` を実行します。

         パスワードの入力を求められない場合、パブリックキー認証が動作しています。

      1. パブリックキーを使用して Raspberry Pi にサインインできることを確認したら、パスワードベースの SSH を無効にします。

         1. Raspberry Pi で `/etc/ssh/sshd_config` ファイルを編集します。

         1. `PasswordAuthentication` 属性を `no` に設定します。

         1. `sshd_config` ファイルを保存して閉じます。

         1. `/etc/init.d/sshd reload` を実行して SSH サーバーを再ロードします。

   1. `resource.json` ファイルを作成します。

      1.  AWS IoT Device Tester を抽出したディレクトリで、 という名前のファイルを作成します`resource.json`。

      1. Raspberry Pi に関する次の情報をこのファイルに追加し、*rasp-pi-ip-address* を Raspberry Pi の IP アドレスで置き換えます。

         ```
         [
             {
                 "id": "ble-test-raspberry-pi",
                 "features": [
                     {"name":"ble", "version":"4.2"}
                 ],
                 "devices": [
                     {
                         "id": "ble-test-raspberry-pi-1",
                         "connectivity": {
                             "protocol": "ssh",
                             "ip": "rasp-pi-ip-address"
                         }
                     }
                 ]
             }
         ]
         ```

      1. SSH にパブリックキー認証の使用を選択しなかった場合、`resource.json` ファイルの `connectivity` セクションに以下を追加します。

         ```
         "connectivity": {
             "protocol": "ssh",
             "ip": "rasp-pi-ip-address",
             "auth": {
                 "method": "password",
                 "credentials": {
                     "user": "root",
                     "password": "idtafr"
                 }
             }
         }
         ```

      1. (オプション) SSH にパブリックキーの使用を選択した場合、`resource.json` ファイルの `connectivity` セクションに以下を追加します。

         ```
         "connectivity": {
             "protocol": "ssh",
             "ip": "rasp-pi-ip-address",
             "auth": {
                 "method": "pki",
                 "credentials": {
                     "user": "root",
                     "privKeyPath": "location-of-private-key"
                 }
             }
         }
         ```

## FreeRTOS デバイスのセットアップ
<a name="afr-device-setup"></a>

`device.json` ファイルで、`BLE` 機能を `Yes` に設定します。Bluetooth テストが利用可能になる前に `device.json` ファイルを開始した場合、BLE 用の機能を `features` 配列に追加する必要があります。

```
{
    ...
    "features": [
        {
            "name": "BLE",
            "value": "Yes"
        },
    ...
}
```

## BLE テストを実行する
<a name="running-ble-test"></a>

`device.json` で BLE 機能を有効にすると、グループ ID を指定せずに `devicetester_[linux | mac | win_x86-64] run-suite` を実行したときに BLE テストが実行されます。* *

BLE テストを個別に実行する場合、次のように BLE の グループ ID を指定できます。`devicetester_[linux | mac | win_x86-64] run-suite --userdata path-to-userdata/userdata.json --group-id FullBLE`。

より高い信頼性のあるパフォーマンスには、Raspberry Pi をテスト対象のデバイス (DUT) に近い位置に配置します。

## BLE テストのトラブルシューティング
<a name="troubleshooting-ble"></a>

「[マイクロコントローラーボードの最初のテスト](qual-steps.md)」のステップを実行したことを確認します。BLE 以外のテストが失敗した場合、Bluetooth 設定がこの問題の原因である可能性はほとんどありません。