本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
免費在 中建立裝置集區 IDT RTOS
系統會將要測試的裝置整理為裝置集區,每個裝置集區都包含一個或多個相同的裝置。您可以IDT設定 免費RTOS,以測試集區中的單一裝置或集區中的多個裝置。為了加速資格檢定程序,IDTFor FreeRTOS 可以平行測試具有相同規格的裝置。該工具會採用循環配置資源方法,在裝置集區的每個裝置上執行不同的測試群組。
您可以在 configs
資料夾中編輯 device.json
範本的 devices
區段,進而新增一或多個裝置至裝置集區。
注意
相同集區中的所有裝置都必須具有相同的技術規格 和 SKU。
若要為不同的測試群組啟用來源程式碼的平行建置,IDT對於 免費RTOS, 會將來源程式碼複製到 IDT 免費RTOS擷取資料夾內的結果資料夾。建置或 Flash 命令中的原始程式碼路徑必須使用 testdata.sourcePath
或 sdkPath
變數來參考。IDT for FreeRTOS 會將此變數取代為複製來源程式碼的暫時路徑。如需詳細資訊,請參閱 IDT 適用於免費RTOS變數。
下方範例 device.json
檔案可用來建立具有多個裝置的裝置集區。
[ { "id": "
pool-id
", "sku": "sku
", "features": [ { "name": "WIFI", "value": "Yes | No" }, { "name": "Cellular", "value": "Yes | No" }, { "name": "OTA", "value": "Yes | No", "configs": [ { "name": "OTADataPlaneProtocol", "value": "HTTP | MQTT" } ] }, { "name": "BLE", "value": "Yes | No" }, { "name": "TCP/IP", "value": "On-chip | Offloaded | No" }, { "name": "TLS", "value": "Yes | No" }, { "name": "PKCS11", "value": "RSA | ECC | Both | No" }, { "name": "KeyProvisioning", "value": "Import | Onboard | No" } ], "devices": [ { "id": "device-id
", "connectivity": { "protocol": "uart", "serialPort": "/dev/tty*
" }, ***********Remove the section below if the device does not support onboard key generation*************** "secureElementConfig" : { "publicKeyAsciiHexFilePath": "absolute-path-to/public-key-txt-file: contains-the-hex-bytes-public-key-extracted-from-onboard-private-key
", "secureElementSerialNumber": "secure-element-serialNo-value
", "preProvisioned" : "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 會使用此資訊選取要執行的資格測試。
支援的值如下:
TCP/IP
-
指示您的界面卡是否支援 TCP/IP 堆疊,以及其是否支援晶片上 (MCU) 或卸載至另一個模組。TCP資格檢定需要 /IP。
WIFI
-
指出您的面板是否具有 Wi-Fi 功能。
No
如果 設定為 ,則必須Cellular
設定為Yes
。 Cellular
-
指示您的界面卡是否具有行動功能。
No
如果 設定為 ,則必須WIFI
設定為Yes
。當此功能設定為 時Yes
, FullSecureSockets 測試將使用 AWS t2.micro EC2執行個體執行,這可能會為您的 帳戶產生額外費用。如需詳細資訊,請參閱 Amazon EC2定價。 TLS
-
指示您的討論板是否支援 TLS。TLS 資格所需。
PKCS11
-
指出面板支援的公有金鑰密碼編譯演算法。PKCS11 資格所需。支援的值為
ECC
、RSA
、Both
和No
。Both
表示主機板同時支援ECC
和RSA
演算法。 KeyProvisioning
-
指出將受信任的 X.509 用戶端憑證寫入面板的方法。有效值為
Import
、Onboard
和No
。需有主要佈建才能符合資格。-
如果主機板可允許匯入私有金鑰,請使用
Import
。IDT 將建立私有金鑰,並將其建置到免費RTOS原始碼。 -
如果主機板可支援產生內建私有金鑰 (例如,如果裝置有安全元素,或您偏好產生自己的裝置金鑰對和憑證),請使用
Onboard
。請務必在每個裝置區段中新增一個secureElementConfig
元素,並在publicKeyAsciiHexFilePath
欄位中放置公有金鑰檔案的絕對路徑。 -
如果主機板不支援金鑰佈建,請使用
No
。
-
OTA
-
指示您的討論板是否支援 over-the-air (OTA) 更新功能。
OtaDataPlaneProtocol
屬性會指出裝置支援OTA的資料平面通訊協定。如果裝置不支援OTA此功能,則會忽略 屬性。"Both"
選取 時,OTA由於同時執行 MQTT、 和 混合測試HTTP,測試執行時間會延長。注意
從 IDT v4.1.0 開始, 僅
OtaDataPlaneProtocol
接受HTTP
和MQTT
作為支援的值。 BLE
-
指示您的界面卡是否支援藍牙低能耗 (BLE)。
devices.id
-
使用者定義的唯一識別符,用於識別要測試的裝置。
devices.connectivity.protocol
-
用來與此裝置通訊的通訊協定。支援的值為:
uart
。 devices.connectivity.serialPort
-
要測試用於連接到裝置之主機電腦的序列埠。
devices.secureElementConfig.PublicKeyAsciiHexFilePath
-
檔案的絕對路徑,此檔案包含從內建私有金鑰擷取的十六進位位元組公有金鑰。
範例格式:
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 格式,您可以直接對公有金鑰進行十六進位編碼,以產生十六進位檔案。
.der 公有金鑰產生十六進位檔案的範例命令:
xxd -p pubkey.der > outFile
如果您的公有金鑰為 .pem 格式,您可以擷取 base64 編碼部分,將其解碼為二進位格式,然後十六進位編碼以產生十六進位檔案。
例如,使用這些命令來產生 .pem 公有金鑰的十六進位檔案:
-
取出金鑰的 base64 編碼部分 (劃掉標頭和頁尾 ),並將其存放在檔案中,例如命名為
base64key
,執行此命令以將其轉換為 .der 格式:base64 —decode base64key > pubkey.der
-
執行
xxd
命令,將其轉換為十六進位格式。xxd -p pubkey.der > outFile
-
devices.secureElementConfig.SecureElementSerialNumber
-
(選用) 安全元素的序號。當您執行免費RTOS示範/測試專案時,請在序號與裝置公有金鑰一起列印時提供此欄位。
devices.secureElementConfig.preProvisioned
-
(選用) 如果裝置具有預先佈建的安全元素具有鎖定憑證,且無法匯入、建立或銷毀物件,則設定為「是」。此組態只有在
features
KeyProvisioning
設定為「機上」,同時PKCS11
設定為「ECC」時才會生效。 identifiers
-
(選用) 任意的名稱/值組的陣列。您可以在下一節所述的建置和刷新命令中使用這些值。