免费创建设备池 IDT RTOS - 免费 RTOS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

免费创建设备池 IDT RTOS

要测试的设备排列在设备池中。每个设备池包含一个或多个相同的设备。您可以将 Free 配置IDTRTOS为测试池中的单个设备或多个设备。为了加快认证过程,f IDT or Free RTOS 可以并行测试具有相同规格的设备。它使用轮询方法,在设备池中的各个设备上执行不同的测试组。

device.json 文件的顶层有一个数组。每个数组属性都是一个新的设备池。每个设备池都有一个设备数组属性,该属性声明了多个设备。在模板中有一个设备池,该设备池中只有一个设备。您可以通过编辑 configs 文件夹中 device.json 模板的 devices 部分,将一个或多个设备添加到设备池中。

注意

同一池中的所有设备必须具有相同的技术规格,并且SKU。要为不同的测试组启用并行生成源代码,IDTfor Free 会将源代码RTOS复制到 for Free RTOS 提取IDT的文件夹内的结果文件夹。您在构建或刷写命令中使用 testdata.sourcePath 变量来引用源代码路径。IDTfor Free RTOS 将此变量替换为复制的源代码的临时路径。有关更多信息,请参阅 IDTfor 免费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 合作伙伴设备目录中发布您的主板,则SKU您在此处指定的主板必须与您在发布过程中使用的图板相匹配。SKU

features

包含设备支持的功能的阵列。 AWS IoT Device Tester 使用此信息来选择要运行的资格测试。

支持的值为:

Wifi

指示您的主板是否具有 Wi-Fi 功能。

Cellular

指示您的主板是否具有蜂窝功能。

PKCS11

指示主板支持的公有密钥加密算法。PKCS11是资格认证所必需的。支持的值包括 ECCRSABothBoth 表示主板同时支持 ECCRSA 算法。

KeyProvisioning

指示将受信任的 X.509 客户端证书写入主板的方法。

有效值为 ImportOnboardBothNo。需要 OnboardBothNo 密钥预配才能进行资格认证。只有 Import 不是有效的资格认证选项。

  • 如果您的主板允许导入私有密钥,才能使用 Import。选择Import不是有效的资格鉴定配置,应仅用于测试目的,特别是PKCS11测试用例。 OnboardBoth或者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

如果提供NOTpre-provisionedPublicDeviceCertificateArn未提供您的主板,则为必填项。由于密钥配置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 公有密钥生成十六进制文件,请执行以下操作:

  1. 运行以下 base64 命令,以便从公有密钥中删除 base64 标头和脚注。然后将名为 base64key 的解码密钥输出到文件 pubkey.der 中:

    base64 —decode base64key > pubkey.der
  2. 运行 xxd 命令以将 pubkey.der 转换为十六进制格式。将生成的密钥另存为 outFile

    xxd -p pubkey.der > outFile
devices.secureElementConfig.PublicDeviceCertificateArn

来自您的安全元素且已上传到的证书 AWS IoT Core。ARN有关将证书上传到的信息 AWS IoT Core,请参阅《开发人员指南》AWS IoT 中的 X.509 客户端证书

devices.secureElementConfig.SecureElementSerialNumber

(可选)安全元件的序列号。序列号可以选择用于创建用于JITR密钥配置的设备证书。

devices.secureElementConfig.preProvisioned

(可选)如果设备预配置了带有锁定凭证的安全元件,无法导入、创建或销毁对象,则设置为“是”。如果将此属性设置为,则必须提供相应的 pkcs11 标签。

devices.secureElementConfig.pkcs11JITPCodeVerifyRootCertSupport

(可选)如果设备的核心PKCS11实现支持存储,则设置为 “” JITP。这将在JITPcodeverify测试核心 PKCS 11 时启用测试,并且需要提供代码验证密钥、JITP证书和根证书 PKCS 11 标签。

identifiers

(可选)任意名称/值对的数组。您可以在下一部分所述的构建和刷写命令中使用这些值。