

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Buat kumpulan perangkat di IDT untuk FreeRTOS
<a name="lts-cfg-dt-dp"></a>

Perangkat yang akan diuji diatur dalam kumpulan perangkat. Setiap kumpulan perangkat terdiri dari satu atau lebih perangkat yang identik. Anda dapat mengonfigurasi IDT untuk FreeRTOS untuk menguji satu perangkat, atau beberapa perangkat dalam kumpulan. Untuk mempercepat proses kualifikasi, IDT untuk FreerTOS dapat menguji perangkat dengan spesifikasi yang sama secara paralel. Ini menggunakan metode round-robin untuk mengeksekusi kelompok uji yang berbeda pada setiap perangkat dalam kumpulan perangkat.

`device.json`File ini memiliki array di tingkat atasnya. Setiap atribut array adalah kumpulan perangkat baru. Setiap kumpulan perangkat memiliki atribut array perangkat, yang memiliki beberapa perangkat yang dideklarasikan. Dalam template, ada kumpulan perangkat dan hanya satu perangkat di kumpulan perangkat itu. Anda dapat menambahkan satu atau beberapa perangkat ke kumpulan perangkat dengan mengedit `devices` bagian `device.json` templat di `configs` folder.

**catatan**  
Semua perangkat di kolam yang sama harus memiliki spesifikasi teknis dan SKU yang sama. Untuk mengaktifkan build paralel dari kode sumber untuk grup pengujian yang berbeda, IDT untuk FreerTOS menyalin kode sumber ke folder hasil di dalam folder yang diekstrak IDT untuk FreeRTOS. Anda harus mereferensikan jalur kode sumber dalam perintah build atau flash menggunakan `testdata.sourcePath` variabel. IDT untuk FreeRTOS menggantikan variabel ini dengan jalur sementara dari kode sumber yang disalin. Untuk informasi selengkapnya, lihat [IDT untuk variabel FreeRTOS](lts-dt-vars.md).

Berikut ini adalah contoh `device.json` file yang digunakan untuk membuat kumpulan perangkat dengan beberapa perangkat.

```
[
    {
        "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"
              }
            ]
          }
        ]
    }
]
```

Atribut berikut digunakan dalam `device.json` file:

** `id` **  
ID alfanumerik yang ditentukan pengguna yang secara unik mengidentifikasi kumpulan perangkat. Perangkat yang termasuk dalam kolam harus dari jenis yang sama. Saat serangkaian pengujian sedang berjalan, perangkat di kolam digunakan untuk memparalelkan beban kerja.

** `sku` **  
Nilai alfanumerik yang secara unik mengidentifikasi papan yang Anda uji. SKU digunakan untuk melacak forum yang berkualitas.  
Jika Anda ingin mencantumkan papan Anda di Katalog Perangkat AWS Mitra, SKU yang Anda tentukan di sini harus cocok dengan SKU yang Anda gunakan dalam proses pencatatan.

** `features` **  
Array yang berisi fitur yang didukung perangkat. AWS IoT Device Tester menggunakan informasi ini untuk memilih tes kualifikasi yang akan dijalankan.  
Nilai yang didukung adalah:    
** `Wifi` **  
Menunjukkan apakah papan Anda memiliki Wi-Fi kemampuan.  
** `Cellular` **  
Menunjukkan apakah papan Anda memiliki kemampuan seluler.  
** `PKCS11` **  
Menunjukkan algoritma kriptografi kunci publik yang didukung papan. PKCS11 diperlukan untuk kualifikasi. Nilai yang didukung adalah`ECC`,`RSA`, dan`Both`. `Both`menunjukkan papan mendukung keduanya `ECC` dan`RSA`.  
** `KeyProvisioning` **  
Menunjukkan metode penulisan sertifikat X.509 klien tepercaya ke papan Anda.   

Nilai yang valid adalah`Import`,`Onboard`, `Both` dan`No`. `Onboard`,`Both`, atau penyediaan `No` kunci diperlukan untuk kualifikasi. `Import`sendiri bukan pilihan yang valid untuk kualifikasi.
+ Gunakan `Import` hanya jika papan Anda mengizinkan impor kunci pribadi. Memilih `Import` bukanlah konfigurasi yang valid untuk kualifikasi dan harus digunakan hanya untuk tujuan pengujian, khususnya dengan kasus uji PKCS11. `Onboard`, `Both` atau `No` diperlukan untuk kualifikasi.
+ Gunakan `Onboard` jika papan Anda mendukung kunci pribadi terpasang (misalnya, jika perangkat Anda memiliki elemen aman, atau jika Anda lebih suka membuat key pair dan sertifikat perangkat Anda sendiri). Pastikan Anda menambahkan `secureElementConfig` elemen di setiap bagian perangkat dan meletakkan jalur absolut ke file kunci publik di `publicKeyAsciiHexFilePath` bidang.
+ Gunakan `Both` jika papan Anda mendukung pengimporan kunci pribadi dan pembuatan kunci on-board untuk penyediaan kunci.
+ Gunakan `No` jika papan Anda tidak mendukung penyediaan kunci. `No`hanya opsi yang valid ketika perangkat Anda juga telah disediakan sebelumnya.  
** `OTA` **  
Menunjukkan apakah papan Anda mendukung fungsionalitas pembaruan over-the-air (OTA). `OtaDataPlaneProtocol`Atribut menunjukkan protokol dataplane OTA mana yang didukung perangkat. OTA dengan protokol jalur data HTTP atau MQTT diperlukan untuk kualifikasi. Untuk melewati menjalankan pengujian OTA saat pengujian, setel fitur OTA ke `No` dan `OtaDataPlaneProtocol` atribut ke`None`. Ini tidak akan menjadi kualifikasi.  
** `BLE` **  
Menunjukkan apakah papan Anda mendukung Bluetooth Low Energy (BLE).

** `devices.id` **  
Pengenal unik yang ditetapkan pengguna untuk perangkat Anda.

** `devices.connectivity.serialPort` **  
Port serial komputer host digunakan untuk terhubung ke perangkat yang sedang diuji.

** `devices.secureElementConfig.PublicKeyAsciiHexFilePath` **  
Diperlukan jika papan Anda TIDAK `pre-provisioned` atau tidak `PublicDeviceCertificateArn` disediakan. Karena `Onboard` merupakan jenis Penyediaan Kunci yang diperlukan, bidang ini saat ini diperlukan untuk grup FullTransportInterfaceTLS pengujian. Jika perangkat Anda`pre-provisioned`, `PublicKeyAsciiHexFilePath` bersifat opsional dan tidak perlu disertakan.  
Blok berikut adalah path absolut ke file yang berisi hex byte kunci publik diekstrak dari `Onboard` kunci pribadi.   

```
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
```
Jika kunci publik Anda dalam format.der, Anda dapat menyandikan kunci publik secara langsung untuk menghasilkan file hex.  
Untuk menghasilkan file hex dari kunci publik.der, masukkan perintah berikut: **xxd**  

```
xxd -p pubkey.der > outFile
```
Jika kunci publik Anda dalam format.pem, Anda dapat mengekstrak header dan footer yang dikodekan base64 dan mendekodekannya ke dalam format biner. Kemudian, Anda hex menyandikan string biner untuk menghasilkan file hex.  
Untuk menghasilkan file hex untuk kunci publik.pem, lakukan hal berikut:  

1. Jalankan **base64** perintah berikut untuk menghapus header dan footer base64 dari kunci publik. Kunci yang diterjemahkan, bernama`base64key`, kemudian output ke file: `pubkey.der`

   ```
   base64 —decode base64key > pubkey.der
   ```

1. Jalankan **xxd** perintah berikut untuk mengonversi `pubkey.der` ke format hex. Kunci yang dihasilkan disimpan sebagai `{{outFile}}`

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

** `devices.secureElementConfig.PublicDeviceCertificateArn` **  
ARN sertifikat dari elemen aman Anda yang diunggah ke. AWS IoT Core Untuk informasi tentang mengunggah sertifikat AWS IoT Core, lihat [sertifikat X.509 klien](https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html) di *Panduan AWS IoT Pengembang*. 

** `devices.secureElementConfig.SecureElementSerialNumber` **  
(Opsional) Nomor seri elemen aman. Nomor seri secara opsional digunakan untuk membuat sertifikat perangkat untuk penyediaan kunci JITR.

** `devices.secureElementConfig.preProvisioned` **  
(Opsional) Setel ke “Ya” jika perangkat memiliki elemen aman yang telah disediakan sebelumnya dengan kredenal terkunci, yang tidak dapat mengimpor, membuat, atau menghancurkan objek. Jika atribut ini disetel ke **Ya**, Anda harus memberikan label pkcs11 yang sesuai.

** `devices.secureElementConfig.pkcs11JITPCodeVerifyRootCertSupport` **  
(Opsional) Setel ke **Ya** jika implementasi CorePKCS11 perangkat mendukung penyimpanan untuk JITP. Ini akan memungkinkan pengujian JITP saat `codeverify` menguji inti PKCS 11, dan memerlukan kunci verifikasi kode, sertifikat JITP, dan label PKCS 11 sertifikat root untuk disediakan.

** `identifiers` **  
(Opsional) Sebuah array pasangan nama-nilai arbitrer. Anda dapat menggunakan nilai-nilai ini dalam perintah build dan flash yang dijelaskan di bagian selanjutnya.