本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
免費在 中建立裝置集區 IDT RTOS
系統會將要測試的裝置整理為裝置集區,每個裝置集區都包含一個或多個相同的裝置。您可以IDT設定 免費RTOS,以測試單一裝置或集區中的多個裝置。為了加速資格檢定程序,IDTFor FreeRTOS 可以平行測試具有相同規格的裝置。該工具會採用循環配置資源方法,在裝置集區的每個裝置上執行不同的測試群組。
device.json
檔案的頂層具有陣列。每個陣列屬性都是新的裝置集區。每個裝置集區都有一個裝置陣列屬性,該屬性已宣告多個裝置。在 範本中,裝置集區中只有一個裝置。您可以在 configs
資料夾中編輯 device.json
範本的 devices
區段,進而新增一或多個裝置至裝置集區。
注意
相同集區中的所有裝置都必須具有相同的技術規格 和 SKU。若要為不同的測試群組啟用來源程式碼的平行建置,IDT對於 免費RTOS, 會將來源程式碼複製到 IDT 免費RTOS擷取資料夾內的結果資料夾。您必須使用 testdata.sourcePath
變數參考建置或 Flash 命令中的原始程式碼路徑。IDT for FreeRTOS 會將此變數取代為複製來源程式碼的暫時路徑。如需詳細資訊,請參閱IDT 適用於免費RTOS變數。
下列範例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
。資格驗證需要Both
、Onboard
或No
金鑰佈建。Import
單獨不是資格驗證的有效選項。-
Import
只有在您的界面卡允許匯入私有金鑰時才可使用 。選取Import
不是資格驗證的有效組態,應僅用於測試用途,特別是PKCS11測試案例。Onboard
Both
或No
是資格驗證所需的。 -
Onboard
如果您的討論板支援內建私有金鑰 (例如,如果您的裝置具有安全元素,或如果您偏好產生自己的裝置金鑰對和憑證),請使用 。請務必在每個裝置區段中新增一個secureElementConfig
元素,並在publicKeyAsciiHexFilePath
欄位中放置公有金鑰檔案的絕對路徑。 -
Both
如果您的討論板支援匯入私有金鑰和內建金鑰產生,以佈建金鑰,請使用 。 -
No
如果您的討論板不支援金鑰佈建,請使用 。 僅在您的裝置也已預先佈建時No
,才是有效的選項。
-
-
OTA
-
指示您的討論板是否支援 over-the-air (OTA) 更新功能。
OtaDataPlaneProtocol
屬性會指出裝置支援OTA的資料平面通訊協定。OTA 使用 HTTP或 MQTT 資料平面通訊協定進行資格驗證。若要在OTA測試時略過執行中的測試,請將 OTA 功能設定為 ,No
並將OtaDataPlaneProtocol
屬性設定為None
。這不會是資格檢定執行。 -
BLE
-
指示您的界面卡是否支援藍牙低能耗 (BLE)。
-
-
devices.id
-
使用者定義的唯一識別符,用於識別要測試的裝置。
-
devices.connectivity.serialPort
-
要測試用於連接到裝置之主機電腦的序列埠。
-
devices.secureElementConfig.PublicKeyAsciiHexFilePath
-
如果您的討論板已提供NOT
pre-provisioned
或未PublicDeviceCertificateArn
提供,則需要 。由於Onboard
是金鑰佈建的必要類型,因此 FullTransportInterfaceTLS測試群組目前需要此欄位。如果您的裝置是pre-provisioned
,PublicKeyAsciiHexFilePath
則為選用,且不需要包含。下列區塊是檔案的絕對路徑,其中包含從
Onboard
私有金鑰擷取的十六進位元組公有金鑰。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命令:
xxd -p pubkey.der > outFile
如果您的公有金鑰為 .pem 格式,您可以擷取 base64 編碼的標頭和頁尾,並將其解碼為二進位格式。然後,您會對二進位字串進行十六進位編碼,以產生十六進位檔案。
若要產生 .pem 公有金鑰的十六進位檔案,請執行下列動作:
-
執行下列base64命令,從公有金鑰移除 base64 標頭和頁尾。然後,名為 的解碼金鑰
base64key
會輸出至檔案pubkey.der
:base64 —decode base64key > pubkey.der
-
執行下列xxd命令以轉換為
pubkey.der
十六進位格式。產生的金鑰會儲存為outFile
xxd -p pubkey.der >
outFile
-
-
devices.secureElementConfig.PublicDeviceCertificateArn
-
已上傳至 的安全元素憑證ARN的 AWS IoT Core。如需將憑證上傳至 的相關資訊 AWS IoT Core,請參閱 AWS IoT 開發人員指南 中的 X.509 用戶端憑證。
-
devices.secureElementConfig.SecureElementSerialNumber
-
(選用) 安全元素的序號。序號可選擇性地用來建立JITR金鑰佈建的裝置憑證。
-
devices.secureElementConfig.preProvisioned
-
(選用) 如果裝置具有預先佈建的安全元素具有鎖定憑證,且無法匯入、建立或銷毀物件,則設定為「是」。如果此屬性設定為是 ,您必須提供對應的 pkcs11 標籤。
-
devices.secureElementConfig.pkcs11JITPCodeVerifyRootCertSupport
-
(選用) 如果裝置的核心PKCS11實作支援 的儲存體,則設定為是JITP。這將在測試核心 PKCS 11 時啟用JITP
codeverify
測試,並且需要提供程式碼驗證金鑰、JITP憑證和根憑證 PKCS 11 標籤。 -
identifiers
-
(選用) 任意的名稱/值組的陣列。您可以在下一節所述的建置和刷新命令中使用這些值。