Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Vorbereitung auf den ersten Test Ihres Mikrocontroller-Boards
Sie können IDT for FreeRTOS verwenden, um Ihre Implementierung der FreeRTOS-Bibliotheken zu testen. Nachdem Sie die FreeRTOS-Bibliotheken für die Gerätetreiber Ihres Mainboards portiert haben, verwenden Sie diese, AWS IoT Device Tester um die Qualifizierungstests auf Ihrem Mikrocontroller-Board durchzuführen.
Fügen Sie Bibliotheksportierungsebenen hinzu und implementieren Sie ein FreeRTOS-Testrepository
Informationen zum Portieren von FreeRTOS für Ihr Gerät finden Sie im FreeRTOS Porting Guide. Bei der Implementierung des FreeRTOS-Test-Repositorys und der Portierung der FreeRTOS-Ebenen müssen Sie einen manifest.yml
Pfad zu jeder Bibliothek angeben, einschließlich des Test-Repositorys. Diese Datei befindet sich im Stammverzeichnis Ihres Quellcodes. Einzelheiten finden Sie in den Anweisungen zur Manifestdatei.
Konfigurieren Ihrer AWS-Anmeldeinformationen
Sie müssen Ihre AWS Anmeldeinformationen für AWS IoT Device Tester die Kommunikation mit der AWS Cloud konfigurieren. Weitere Informationen finden Sie unter AWSAnmeldeinformationen einrichten und Region für Entwicklung. Gültige AWS Anmeldeinformationen sind in der
Konfigurationsdatei angegeben.devicetester_extract_location
/devicetester_freertos_[win|mac|linux]
/configs/config.json
"auth": { "method": "environment" } "auth": { "method": "file", "credentials": { "profile": "<your-aws-profile>" } }
Das auth
Attribut der config.json
Datei hat ein Methodenfeld, das die AWS Authentifizierung steuert, und kann entweder als Datei oder als Umgebung deklariert werden. Wenn Sie das Feld auf Umgebung setzen, werden Ihre AWS Anmeldeinformationen aus den Umgebungsvariablen Ihres Host-Computers abgerufen. Wenn Sie das Feld auf Datei setzen, wird ein bestimmtes Profil aus der .aws/credentials
Konfigurationsdatei importiert.
Erstellen Sie einen Gerätepool in IDT für FreeRTOS
Zu testende Geräte werden in Gerätepools organisiert. Jeder Gerätepool besteht aus einem oder mehreren identischen Geräten. Sie können IDT für FreeRTOS konfigurieren, um ein einzelnes Gerät oder mehrere Geräte in einem Pool zu testen. Um den Qualifizierungsprozess zu beschleunigen, kann IDT for FreeRTOS Geräte mit denselben Spezifikationen parallel testen. Er verwendet eine Round Robin-Methode, um auf jedem Gerät in einem Gerätepool eine andere Testgruppe auszuführen.
Die device.json
Datei hat ein Array in ihrer obersten Ebene. Jedes Array-Attribut ist ein neuer Gerätepool. Jeder Gerätepool hat ein Geräte-Array-Attribut, für das mehrere Geräte deklariert sind. In der Vorlage gibt es einen Gerätepool und nur ein Gerät in diesem Gerätepool. Sie können ein oder mehrere Geräte zu einem Gerätepool hinzufügen, indem Sie den Abschnitt devices
der Vorlage device.json
im Ordner configs
bearbeiten.
Anmerkung
Alle Geräte im selben Pool müssen dieselbe technische Spezifikation und Artikelnummer haben. Um parallel Builds des Quellcodes für verschiedene Testgruppen zu ermöglichen, kopiert IDT for FreeRTOS den Quellcode in einen Ergebnisordner innerhalb des extrahierten Ordners von IDT for FreeRTOS. Sie müssen in Ihrem Build- oder Flash-Befehl mithilfe der testdata.sourcePath
Variablen auf den Quellcodepfad verweisen. IDT for FreeRTOS ersetzt diese Variable durch einen temporären Pfad des kopierten Quellcodes. Weitere Informationen finden Sie unter IDT für FreeRTOS-Variablen.
Im Folgenden finden Sie eine device.json
Beispieldatei, die verwendet wurde, um einen Gerätepool mit mehreren Geräten zu erstellen.
[ { "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" } ] } ] } ]
Die folgenden Attribute werden in der Datei device.json
verwendet:
-
id
-
Eine benutzerdefinierte alphanumerische ID, die einen Gerätepool eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen vom gleichen Typ sein. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um den Workload zu parallelisieren.
-
sku
-
Ein alphanumerischer Wert, mit dem das getestete Board eindeutig identifiziert wird. Die SKU wird verwendet, um qualifizierte Boards nachzuverfolgen.
Anmerkung
Wenn du dein Board im AWS Partner-Gerätekatalog anbieten möchtest, muss die hier angegebene SKU mit der SKU übereinstimmen, die du bei der Angebotserstellung verwendest.
-
features
-
Ein Array, das die unterstützten Funktionen des Geräts enthält. AWS IoT Device Testerverwendet diese Informationen, um die auszuführenden Qualifikationstests auszuwählen.
Unterstützte Werte sind:
-
Wifi
-
Gibt an, ob Ihr Board über WiFi-Funktionen verfügt.
-
Cellular
-
Zeigt an, ob Ihr Board über Mobilfunkfunktionen verfügt.
-
PKCS11
-
Gibt den Kryptographie-Algorithmus für öffentliche Schlüssel an, der vom Board unterstützt wird. PKCS11 ist für die Qualifikation erforderlich. Unterstützte Werte sind
ECC
RSA
, undBoth
.Both
gibt an, dass das BoardECC
sowohl als auch unterstütztRSA
. -
KeyProvisioning
-
Gibt an, wie ein vertrauenswürdiges X.509-Clientzertifikat auf das Board geschrieben werden kann.
Gültige Werte sind
Import
Onboard
,Both
undNo
.Onboard
,Both
, oder die Bereitstellung vonNo
Schlüsseln ist für die Qualifizierung erforderlich.Import
allein ist keine gültige Qualifikationsoption.-
Import
Nur verwenden, wenn dein Board den Import von privaten Schlüsseln zulässt.Import
Die Auswahl ist keine gültige Konfiguration für die Qualifizierung und sollte nur zu Testzwecken verwendet werden, insbesondere bei PKCS11-Testfällen.Onboard
,Both
oderNo
ist für die Qualifikation erforderlich. -
Verwenden Sie diese Option,
Onboard
wenn Ihr Board integrierte private Schlüssel unterstützt (z. B. wenn Ihr Gerät über ein sicheres Element verfügt oder wenn Sie es vorziehen, Ihr eigenes Geräteschlüsselpaar und Zertifikat zu generieren). Stellen Sie sicher, dass Sie in jedem der Geräteabschnitte einsecureElementConfig
-Element hinzufügen und fügen Sie den absoluten Pfad zur Datei des öffentlichen Schlüssels in das FeldpublicKeyAsciiHexFilePath
ein. -
Verwenden Sie diese
Both
Option, wenn Ihr Board sowohl den Import von privaten Schlüsseln als auch die integrierte Schlüsselgenerierung für die Schlüsselbereitstellung unterstützt. -
Verwenden Sie
No
diese Option, wenn Ihr Board die Bereitstellung von Schlüsseln nicht unterstützt.No
ist nur dann eine gültige Option, wenn Ihr Gerät ebenfalls vorab bereitgestellt wurde.
-
-
OTA
-
Gibt an, ob Ihr Board die Aktualisierungsfunktion over-the-air (OTA) unterstützt. Das Attribut
OtaDataPlaneProtocol
gibt an, welches OTA-Protokoll auf Datenebene das Gerät unterstützt. Für die Qualifikation ist OTA mit HTTP- oder MQTT-Datenebenenprotokoll erforderlich. Um die Ausführung von OTA-Tests während des Tests zu überspringen, setzen Sie die OTA-Funktion aufNo
und dasOtaDataPlaneProtocol
Attribut aufNone
. Dies wird kein Qualifikationslauf sein. -
BLE
-
Gibt an, ob Ihr Board Bluetooth Low Energy (BLE) unterstützt.
-
-
devices.id
-
Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.
-
devices.connectivity.serialPort
-
Der serielle Port des Host-Computers, der zur Herstellung einer Verbindung mit den getesteten Geräten verwendet wird.
-
devices.secureElementConfig.PublicKeyAsciiHexFilePath
-
Erforderlich, wenn Ihr Board NICHT vorhanden
PublicDeviceCertificateArn
istpre-provisioned
oder nicht bereitgestellt wird. DaOnboard
es sich um einen erforderlichen Typ von Key Provisioning handelt, ist dieses Feld derzeit für die FullTransportInterface TLS-Testgruppe erforderlich. Wenn Ihr Gerät istpre-provisioned
,PublicKeyAsciiHexFilePath
ist es optional und muss nicht enthalten sein.Der folgende Block ist ein absoluter Pfad zu der Datei, die den öffentlichen Hex-Byte-Schlüssel enthält, der aus dem
Onboard
privaten Schlüssel extrahiert wurde.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
Wenn Ihr öffentlicher Schlüssel im.der-Format vorliegt, können Sie den öffentlichen Schlüssel direkt hexadezimieren, um die Hex-Datei zu generieren.
Um die Hex-Datei aus einem öffentlichen Schlüssel von.der zu generieren, geben Sie den folgenden xxd Befehl ein:
xxd -p pubkey.der > outFile
Wenn Ihr öffentlicher Schlüssel im PEM-Format vorliegt, können Sie die Base64-kodierten Kopf- und Fußzeilen extrahieren und in das Binärformat dekodieren. Anschließend kodieren Sie die Binärzeichenfolge hexadezimal, um die Hex-Datei zu generieren.
Gehen Sie wie folgt vor, um eine Hex-Datei für einen öffentlichen PEM-Schlüssel zu generieren:
-
Führen Sie den folgenden base64 Befehl aus, um die Base64-Kopf- und Fußzeile aus dem öffentlichen Schlüssel zu entfernen. Der dekodierte Schlüssel, benannt
base64key
, wird dann in die Dateipubkey.der
ausgegeben:base64 —decode base64key > pubkey.der
-
Führen Sie den folgenden xxd Befehl aus, um in
pubkey.der
das Hex-Format zu konvertieren. Der resultierende Schlüssel wird gespeichert alsoutFile
xxd -p pubkey.der >
outFile
-
-
devices.secureElementConfig.PublicDeviceCertificateArn
-
Der ARN des Zertifikats von Ihrem sicheren Element, auf das hochgeladen wurdeAWS IoT Core. Informationen zum Hochladen Ihres Zertifikats finden Sie AWS IoT Core unter X.509-Clientzertifikate im AWS IoTDeveloper Guide.
-
devices.secureElementConfig.SecureElementSerialNumber
-
(Optional) Die Seriennummer des sicheren Elements. Die Seriennummer wird optional verwendet, um Gerätezertifikate für die JITR-Schlüsselbereitstellung zu erstellen.
-
devices.secureElementConfig.preProvisioned
-
(Optional) Auf „Ja“ setzen, wenn das Gerät über ein vorab bereitgestelltes sicheres Element mit gesperrten Anmeldeinformationen verfügt, das Objekte nicht importieren, erstellen oder löschen kann. Wenn dieses Attribut auf Ja gesetzt ist, müssen Sie die entsprechenden pkcs11-Labels angeben.
-
devices.secureElementConfig.pkcs11JITPCodeVerifyRootCertSupport
-
(Optional) Auf Ja setzen, wenn die CorePKCS11-Implementierung des Geräts die Speicherung für JITP unterstützt. Dies ermöglicht den
codeverify
JITP-Test beim Testen des Kern-PKCS 11 und erfordert die Bereitstellung von PKCS 11-Labels für die Codeverifizierung, das JITP-Zertifikat und das Stammzertifikat. -
identifiers
-
(Optional) Ein Array beliebiger Namen-Wert-Paare. Sie können diese Werte in den im nächsten Abschnitt beschriebenen Build- und Flash-Befehlen verwenden.
Konfiguration von Build-, Flash- und Testeinstellungen
IDT for FreeRTOS erstellt und flasht Tests automatisch auf Ihrem Board. Um dies zu aktivieren, müssen Sie IDT so konfigurieren, dass es die Build- und Flash-Befehle für Ihre Hardware ausführt. Die Einstellungen für den Build- und den Flash-Befehl werden in der userdata.json
-Vorlagendatei im Ordner config
konfiguriert.
Konfigurieren von Einstellungen für das Testen von Geräten
Build-, Flash- und Testeinstellungen werden in der configs/userdata.json
-Datei vorgenommen. Das folgende JSON-Beispiel zeigt, wie Sie IDT für FreeRTOS konfigurieren können, um mehrere Geräte zu testen:
{ "sourcePath": "</path/to/freertos>", "retainModifiedSourceDirectories": true | false, "freeRTOSVersion": "<freertos-version>", "freeRTOSTestParamConfigPath": "{{testData.sourcePath}}/path/from/source/path/to/test_param_config.h", "freeRTOSTestExecutionConfigPath": "{{testData.sourcePath}}/path/from/source/path/to/test_execution_config.h", "buildTool": { "name": "your-build-tool-name", "version": "your-build-tool-version", "command": [ "<build command> -any-additional-flags {{testData.sourcePath}}" ] }, "flashTool": { "name": "your-flash-tool-name", "version": "your-flash-tool-version", "command": [ "<flash command> -any-additional-flags {{testData.sourcePath}} -any-additional-flags" ] }, "testStartDelayms": 0, "echoServerConfiguration": { "keyGenerationMethod": "EC | RSA", "serverPort": 9000 }, "otaConfiguration": { "otaE2EFirmwarePath": "{{testData.sourcePath}}/relative-path-to/ota-image-generated-in-build-process", "otaPALCertificatePath": "/path/to/ota/pal/certificate/on/device", "deviceFirmwarePath" : "/path/to/firmware/image/name/on/device", "codeSigningConfiguration": { "signingMethod": "AWS | Custom", "signerHashingAlgorithm": "SHA1 | SHA256", "signerSigningAlgorithm": "RSA | ECDSA", "signerCertificate": "arn:partition:service:region:account-id:resource:qualifier | /absolute-path-to/signer-certificate-file", "untrustedSignerCertificate": "arn:partition:service:region:account-id:resourcetype:resource:qualifier", "signerCertificateFileName": "signerCertificate-file-name", "compileSignerCertificate": true | false, // ***********Use signerPlatform if you choose AWS for signingMethod*************** "signerPlatform": "AmazonFreeRTOS-Default | AmazonFreeRTOS-TI-CC3220SF" ] } }, ********** This section is used for PKCS #11 labels of private key, public key, device certificate, code verification key, JITP certificate, and root certificate. When configuring PKCS11, you set up labels and you must provide the labels of the device certificate, public key, and private key for the key generation type (EC or RSA) it was created with. If your device supports PKCS11 storage of JITP certificate, code verification key, and root certificate, set 'pkcs11JITPCodeVerifyRootCertSupport' to 'Yes' in device.json and provide the corresponding labels. ********** "pkcs11LabelConfiguration":{ "pkcs11LabelDevicePrivateKeyForTLS": "<device-private-key-label>", "pkcs11LabelDevicePublicKeyForTLS": "<device-public-key-label>", "pkcs11LabelDeviceCertificateForTLS": "<device-certificate-label>", "pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS": "<preprovisioned-ec-device-private-key-label>", "pkcs11LabelPreProvisionedECDevicePublicKeyForTLS": "<preprovisioned-ec-device-public-key-label>", "pkcs11LabelPreProvisionedECDeviceCertificateForTLS": "<preprovisioned-ec-device-certificate-label>", "pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS": "<preprovisioned-rsa-device-private-key-label>", "pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS": "<preprovisioned-rsa-device-public-key-label>", "pkcs11LabelPreProvisionedRSADeviceCertificateForTLS": "<preprovisioned-rsa-device-certificate-label>", "pkcs11LabelCodeVerifyKey": "<code-verification-key-label>", "pkcs11LabelJITPCertificate": "<JITP-certificate-label>", "pkcs11LabelRootCertificate": "<root-certificate-label>" } }
Im Folgenden werden die in der userdata.json
-Datei verwendeten Attribute aufgelistet:
-
sourcePath
-
Der Pfad zum Stammverzeichnis des portierten FreeRTOS-Quellcodes.
-
retainModifiedSourceDirectories
-
(Optional) Prüft, ob die geänderten Quellverzeichnisse, die beim Erstellen und Flashen für Debugging-Zwecke verwendet wurden, beibehalten werden sollen. Wenn auf gesetzt
true
, erhalten die geänderten Quellverzeichnisse den Namen RetainedSrc und befinden sich in den Ergebnisprotokollordnern bei jedem Testgruppenlauf. Wenn nicht enthalten, lautet das Feld standardmäßig.false
-
freeRTOSTestParamConfigPath
-
Der Pfad zur
test_param_config.h
Datei für die Integration von FreeRTOS-Libraries-Integration-Tests. Diese Datei muss die{{testData.sourcePath}}
Platzhaltervariable verwenden, um sie relativ zum Quellcode-Stammverzeichnis herzustellen. AWS IoT Device Testerverwendet die Parameter in dieser Datei, um die Tests zu konfigurieren. -
freeRTOSTestExecutionConfigPath
-
Der Pfad zur
test_execution_config.h
Datei für die Integration von FreeRTOS-Libraries-Integration-Tests. Diese Datei muss die{{testData.sourcePath}}
Platzhaltervariable verwenden, um sie relativ zum Repository-Stammverzeichnis herzustellen. AWS IoT Device Testerverwendet diese Datei, um zu steuern, welche Tests ausgeführt werden müssen. -
freeRTOSVersion
-
Die Version von FreeRTOS einschließlich der in Ihrer Implementierung verwendeten Patch-Version. Unter Unterstützte Versionen von AWS IoT Device Tester for FreeRTOS finden Sie die FreeRTOS-Versionen, die mit for FreeRTOS kompatibel sind. AWS IoT Device Tester
-
buildTool
-
Der Befehl zum Erstellen Ihres Quellcodes. Alle Verweise auf den Quellcodepfad im Build-Befehl müssen durch die AWS IoT Device Tester Variable ersetzt werden
{{testData.sourcePath}}
. Verwenden Sie den{{config.idtRootPath}}
Platzhalter, um auf ein Build-Skript relativ zum AWS IoT Device Tester Stammpfad zu verweisen. -
flashTool
-
Der Befehl, um ein Bild auf Ihr Gerät zu flashen. Alle Verweise auf den Quellcodepfad im Befehl flash müssen durch die AWS IoT Device Tester Variable
{{testData.sourcePath}}
ersetzt werden. Verwenden Sie den{{config.idtRootPath}}
Platzhalter, um auf ein Flash-Skript relativ zum AWS IoT Device Tester Stammpfad zu verweisen.Anmerkung
Die neue Struktur der Integrationstests mit FRQ 2.0 benötigt keine Pfadvariablen wie
{{enableTests}}
und{{buildImageName}}
. Die OTA-End-to-End-Tests werden mit den Konfigurationsvorlagen ausgeführt, die im GitHubFreeRTOS-Libraries-Integration-Tests-Repositorybereitgestellt werden. Wenn die Dateien im GitHub Repository in Ihrem übergeordneten Quellprojekt vorhanden sind, wird der Quellcode zwischen den Tests nicht geändert. Wenn ein anderes Build-Image für OTA End to End benötigt wird, müssen Sie dieses Image im Build-Skript erstellen und es in der unter angegebenen userdata.json
Datei angebenotaConfiguration
. -
testStartDelayms
-
Gibt an, wie viele Millisekunden der FreeRTOS Test Runner warten soll, bevor er mit der Ausführung von Tests beginnt. Dies kann nützlich sein, wenn das zu testende Gerät aufgrund von Netzwerk- oder anderen Latenzproblemen mit der Ausgabe wichtiger Testinformationen beginnt, bevor IDT die Möglichkeit hat, eine Verbindung herzustellen und mit der Protokollierung zu beginnen. Dieser Wert gilt nur für FreeRTOS-Testgruppen und nicht für andere Testgruppen, die den FreeRTOS Test Runner nicht verwenden, wie z. B. die OTA-Tests. Wenn Sie eine Fehlermeldung erhalten, die sich auf erwartete 10 bezieht, aber 5 erhalten hat, sollte dieses Feld auf 5000 gesetzt werden.
-
echoServerConfiguration
-
Die Konfiguration zur Einrichtung des Echo-Servers für den TLS-Test. Dies ist ein Pflichtfeld.
-
keyGenerationMethod
-
Der Echo-Server ist mit dieser Option konfiguriert. Die Optionen sind EC oder RSA.
-
serverPort
-
Die Nummer des Ports, an dem der Echo-Server läuft.
-
-
otaConfiguration
-
Die Konfiguration für OTA PAL- und OTA E2E-Tests. Dies ist ein Pflichtfeld.
otaE2EFirmwarePath
-
Pfad zum OTA-Bin-Image, das IDT für die OTA-End-to-End-Tests verwendet.
-
otaPALCertificatePath
-
Der Pfad zum Zertifikat für den OTA PAL-Test auf dem Gerät. Dies wird verwendet, um die Signatur zu überprüfen. Zum Beispiel ecdsa-sha256-signer.crt.pem.
-
deviceFirmwarePath
-
Der Pfad zum fest codierten Namen für das zu bootende Firmware-Image. Wenn Ihr Gerät NICHT das Dateisystem für den Firmware-Start verwendet, geben Sie dieses Feld als an
'NA'
. Wenn Ihr Gerät das Dateisystem für den Firmware-Start verwendet, geben Sie den Pfad oder den Namen für das Firmware-Boot-Image an. -
codeSigningConfiguration
-
-
signingMethod
-
Die Code-Signaturmethode. Mögliche Werte sind AWS oder Benutzerdefiniert.
Anmerkung
Verwenden Sie für die Regionen Peking und Ningxia Benutzerdefiniert. AWSCodesigning wird in dieser Region nicht unterstützt.
-
signerHashingAlgorithm
-
Der auf dem Gerät unterstützte Hashing-Algorithmus. Die möglichen Wert sind
SHA1
oderSHA256
. -
signerSigningAlgorithm
-
Der auf dem Gerät unterstützte Signaturalgorithmus. Die möglichen Wert sind
RSA
oderECDSA
. -
signerCertificate
-
Das für OTA verwendete vertrauenswürdige Zertifikat. Verwenden Sie für die AWS Codesignaturmethode den Amazon-Ressourcennamen (ARN) für das vertrauenswürdige Zertifikat, das in den AWS Certificate Manager hochgeladen wurde. Verwenden Sie für die benutzerdefinierte Codesignaturmethode den absoluten Pfad zur Unterzeichnerzertifikatsdatei. Informationen zum Erstellen eines vertrauenswürdigen Zertifikats finden Sie unter Erstellen eines Codesignaturzertifikats.
-
untrustedSignerCertificate
-
Der ARN oder Dateipfad für ein zweites Zertifikat, das in einigen OTA-Tests als nicht vertrauenswürdiges Zertifikat verwendet wird. Informationen zum Erstellen eines Zertifikats finden Sie unter Erstellen eines Codesignaturzertifikats.
-
signerCertificateFileName
-
Der Dateiname des Codesignaturzertifikats auf dem Gerät. Dieser Wert muss mit dem Dateinamen übereinstimmen, den Sie bei der Ausführung des
aws acm import-certificate
Befehls angegeben haben. -
compileSignerCertificate
-
Boolescher Wert, der den Status des Signaturüberprüfungszertifikats bestimmt. Gültige Werte sind
true
undfalse
.Setzen Sie diesen Wert auf True, wenn das Signaturverifizierungszertifikat des Codesigners nicht bereitgestellt oder geflasht wurde. Es muss in das Projekt kompiliert werden. AWS IoT Device Testerruft das vertrauenswürdige Zertifikat ab und kompiliert es in.
aws_codesigner_certificate.h
-
signerPlatform
-
Der Signatur- und Hashalgorithmus, den AWS-Code Signer beim Erstellen der OTA-Aktualisierungsaufgabe verwendet. Derzeit lauten die möglichen Werte für dieses Feld
AmazonFreeRTOS-TI-CC3220SF
undAmazonFreeRTOS-Default
.-
Wählen Sie bei
SHA1
undRSA
AmazonFreeRTOS-TI-CC3220SF
aus. -
Wählen Sie bei
SHA256
undECDSA
AmazonFreeRTOS-Default
aus. -
Wenn Sie
SHA256
|RSA
oderSHA1
|ECDSA
für Ihre Konfiguration benötigen, kontaktieren Sie uns, um weitere Unterstützung zu erhalten. -
Konfigurieren Sie
signCommand
, wenn SieCustom
fürsigningMethod
ausgewählt haben.
-
-
signCommand
-
Die beiden Platzhalter „
{{inputImageFilePath}}
“ und „{{outputSignatureFilePath}}
“ sind im Befehl erforderlich.{{inputImageFilePath}}
ist der Dateipfad des von IDT erstellten Images, das signiert werden soll.{{outputSignatureFilePath}}
ist der Dateipfad der Signatur, der vom Skript generiert wird.
-
-
pkcs11LabelConfiguration
-
Die PKCS11-Labelkonfiguration erfordert mindestens einen Satz von Labels aus Gerätezertifikatlabel, Public-Key-Label und Private-Key-Label, um die PKCS11-Testgruppen ausführen zu können. Die erforderlichen PKCS11-Labels basieren auf Ihrer Gerätekonfiguration in der
device.json
Datei. Wenn Pre-Provisioned auf Ja in gesetzt istdevice.json
, muss es sich bei den erforderlichen Bezeichnungen um eine der folgenden Bezeichnungen handeln, je nachdem, was für die PKCS11-Funktion ausgewählt wurde.-
PreProvisionedEC
-
PreProvisionedRSA
Wenn Pre-Provisioned auf Nein gesetzt ist
device.json
, lauten die erforderlichen Labels:-
pkcs11LabelDevicePrivateKeyForTLS
-
pkcs11LabelDevicePublicKeyForTLS
-
pkcs11LabelDeviceCertificateForTLS
Die folgenden drei Bezeichnungen sind nur erforderlich, wenn Sie
pkcs11JITPCodeVerifyRootCertSupport
in Ihrerdevice.json
Datei Ja für auswählen.-
pkcs11LabelCodeVerifyKey
-
pkcs11LabelRootCertificate
-
pkcs11LabelJITPCertificate
Die Werte für diese Felder sollten den im FreeRTOS Porting Guide definierten Werten entsprechen.
-
pkcs11LabelDevicePrivateKeyForTLS
-
(Optional) Dieses Label wird für das PKCS #11 -Label des privaten Schlüssels verwendet. Bei Geräten mit integrierter Unterstützung und Importunterstützung für die Schlüsselbereitstellung wird dieses Label für Tests verwendet. Dieses Etikett kann sich von dem für den vorab bereitgestellten Fall definierten Etikett unterscheiden. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja, in gesetzt haben, ist dies
device.json
undefiniert. -
pkcs11LabelDevicePublicKeyForTLS
-
(Optional) Dieses Label wird für das PKCS #11 -Label des öffentlichen Schlüssels verwendet. Bei Geräten mit integrierter Unterstützung und Importunterstützung für die Schlüsselbereitstellung wird dieses Label für Tests verwendet. Diese Bezeichnung kann sich von der Bezeichnung unterscheiden, die für den Fall mit vorab bereitgestellter Bereitstellung definiert wurde. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja, in gesetzt haben, ist dies
device.json
undefiniert. -
pkcs11LabelDeviceCertificateForTLS
-
(Optional) Dieses Etikett wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit integrierter und importierter Unterstützung der Schlüsselbereitstellung wird dieses Label für Tests verwendet. Diese Bezeichnung kann sich von der Bezeichnung unterscheiden, die für den Fall mit vorab bereitgestellter Bereitstellung definiert wurde. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja, in gesetzt haben, ist dies
device.json
undefiniert. -
pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS
-
(Optional) Dieses Label wird für das PKCS #11 -Label des privaten Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt ist
device.json
, müssen dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS
Dieses Etikett kann sich von dem für Onboard- und Importgehäuse definierten Etikett unterscheiden. -
pkcs11LabelPreProvisionedECDevicePublicKeyForTLS
-
(Optional) Dieses Label wird für das PKCS #11 -Label des öffentlichen Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt ist
device.json
, müssen dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS
Dieses Etikett kann sich von dem für Onboard- und Importgehäuse definierten Etikett unterscheiden. -
pkcs11LabelPreProvisionedECDeviceCertificateForTLS
-
(Optional) Dieses Etikett wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt ist
device.json
, müssen dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedRSADeviceCertificateForTLS
Dieses Etikett kann sich von dem für Onboard- und Importgehäuse definierten Etikett unterscheiden. -
pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS
-
(Optional) Dieses Label wird für das PKCS #11 -Label des privaten Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt ist
device.json
, müssen dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS
-
pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS
-
(Optional) Dieses Label wird für das PKCS #11 -Label des öffentlichen Schlüssels verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt ist
device.json
, müssen dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDevicePublicKeyForTLS
-
pkcs11LabelPreProvisionedRSADeviceCertificateForTLS
-
(Optional) Dieses Etikett wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird für diese Geräte eine andere Bezeichnung verwendet, um die AWS IoT Anmeldeinformationen zu speichern. Wenn Ihr Gerät die Vorbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja in gesetzt ist
device.json
, müssen dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDeviceCertificateForTLS
-
pkcs11LabelCodeVerifyKey
-
(Optional) Dieses Label wird für das PKCS #11 -Label des Code-Bestätigungsschlüssels verwendet. Wenn Ihr Gerät über PKCS #11 -Speicherunterstützung für das JITP-Zertifikat, den Code-Bestätigungsschlüssel und das Stammzertifikat verfügt, geben Sie dieses Etikett an. Wenn
pkcs11JITPCodeVerifyRootCertSupport
in auf Ja gesetztdevice.json
ist, muss dieses Label angegeben werden. -
pkcs11LabelJITPCertificate
-
(Optional) Dieses Label wird für das PKCS #11 -Label des JITP-Zertifikats verwendet. Wenn Ihr Gerät über PKCS #11 -Speicherunterstützung für das JITP-Zertifikat, den Code-Bestätigungsschlüssel und das Stammzertifikat verfügt, geben Sie dieses Etikett an. Wenn
pkcs11JITPCodeVerifyRootCertSupport
in auf Ja gesetztdevice.json
ist, muss dieses Label angegeben werden.
-
IDT für FreeRTOS-Variablen
Die Befehle zum Erstellen Ihres Codes und zum Flashen des Geräts erfordern möglicherweise Konnektivität oder andere Informationen über Ihre Geräte, um erfolgreich ausgeführt zu werden. AWS IoT Device Testerermöglicht es Ihnen, Geräteinformationen in Flash zu referenzieren und Befehle mithilfe von zu erstellen JsonPathdevice.json
Datei angegebenen erforderlichen Informationen abrufen.
Pfadvariablen
IDT for FreeRTOS definiert die folgenden Pfadvariablen, die in Befehlszeilen und Konfigurationsdateien verwendet werden können:
-
{{testData.sourcePath}}
-
Wird auf den Quellcodepfad erweitert. Wenn Sie diese Variable verwenden, muss sie sowohl in den Flash- als auch in den Build-Befehlen verwendet werden.
-
{{device.connectivity.serialPort}}
-
Wird auf die serielle Schnittstelle erweitert.
-
{{device.identifiers[?(@.name == 'serialNo')].value[0]}}
-
Wird zur Seriennummer Ihres Geräts erweitert.
-
{{config.idtRootPath}}
-
Erweitert auf den AWS IoT Device Tester Stammpfad.