

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 블루투스 로우 에너지 테스트 실행
<a name="afr-bridgekeeper-dt-bt"></a>

이 섹션에서는 FreeRTOS AWS IoT Device Tester 용를 사용하여 Bluetooth Low Energy 테스트를 설정하고 실행하는 방법을 설명합니다.

 코어 검증에는 블루투스 테스트가 필요하지 않습니다. FreeRTOS 블루투스를 지원하는 디바이스를 테스트하지 않으려는 경우 이 설정을 건너뛸 수 있으며 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 이미지는 FreeRTOS AWS IoT Device Tester 용를 사용한 테스트에만 사용해야 하며 다른 용도로는 사용할 수 없습니다.

1. yocto 이미지를 Raspberry Pi용 SD 카드로 플래시합니다.

   1. [Etcher](https://www.balena.io/etcher)와 같은 SD 카드 쓰기 도구를 사용하여 다운로드된 `image-name.rpi-sd.img` 파일을 SD 카드로 플래시합니다. 운영 체제 이미지가 크기 때문에 이 단계는 시간이 약간 걸릴 수 있습니다. 그런 다음 컴퓨터에서 SD 카드를 꺼내고 Raspberry Pi에 microSD 카드를 삽입합니다.

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`를 열고 Wi-Fi 자격 증명을 `Network` 구성에 추가합니다.

         ```
         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`을 실행합니다. IP 주소를 기록해 둡니다. 이 주소는 명령 출력에 `inet addr`로 나타납니다. 이 절차의 뒷 부분에서 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 클라이언트를 설치하는 방법에 대한 자세한 내용은 [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. 키 구문을 묻는 메시지가 표시되면 Enter를 눌러 계속합니다.

      1. FreeRTOS AWS IoT Device Tester 용가 디바이스에 로그인할 수 있도록 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 이외의 다른 테스트가 실패하면 문제가 블루투스 구성으로 인한 것이 아닐 가능성이 높습니다.