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.
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) Überprüft, ob die modifizierten Quellverzeichnisse beibehalten werden sollen, die beim Erstellen und Flashen zu Debugging-Zwecken verwendet wurden. Wenn auf gesetzt
true, erhalten die geänderten Quellverzeichnisse den Namen RetainedSrc und befinden sich bei jedem Testgruppenlauf in den Ergebnisprotokollordnern. Wenn nicht enthalten, ist das Feld standardmäßig auf eingestellt.false -
freeRTOSTestParamConfigPath -
Der Pfad zur
test_param_config.hDatei für die FreeRTOS-Libraries-Integration-Tests Integration. Diese Datei muss die{{testData.sourcePath}}Platzhaltervariable verwenden, um sie relativ zum Quellcode-Stammverzeichnis zu machen. AWS IoT Device Tester verwendet die Parameter in dieser Datei, um die Tests zu konfigurieren. -
freeRTOSTestExecutionConfigPath -
Der Pfad zur
test_execution_config.hDatei für die FreeRTOS-Libraries-Integration-Tests Integration. Diese Datei muss die{{testData.sourcePath}}Platzhaltervariable verwenden, um sie relativ zum Repository-Stamm zu machen. AWS IoT Device Tester verwendet diese Datei, um zu kontrollieren, welche Tests ausgeführt werden müssen. -
freeRTOSVersion -
Die Version von FreeRTOS, einschließlich der Patch-Version, die in Ihrer Implementierung verwendet wurde. Informationen zu den FreeRTOS-Versionen, AWS IoT Device Tester die mit FreeRTOS kompatibel sind, finden Sie unter Unterstützte Versionen von for FreeRTOS. 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 relativ zum AWS IoT Device Tester Stammpfad auf ein Build-Skript zu verweisen. -
flashTool -
Der Befehl, um ein Bild auf Ihr Gerät zu flashen. Alle Verweise auf den Quellcodepfad im Flash-Befehl 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 erfordert keine Pfadvariablen wie
{{enableTests}}und.{{buildImageName}}Die OTA-End-to-End-Tests werden mit den im FreeRTOS-Libraries-Integration-TestsGitHub Repository bereitgestellten Konfigurationsvorlagen ausgeführt. 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.jsonDatei angebenotaConfiguration. -
testStartDelayms -
Gibt an, wie viele Millisekunden der FreeRTOS-Testläufer wartet, 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 wichtige Testinformationen ausgibt, 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-Testrunner nicht verwenden, wie z. B. die OTA-Tests. Wenn Sie einen Fehler im Zusammenhang mit den erwarteten 10, aber 5 erhalten haben, sollte dieses Feld auf 5000 gesetzt werden.
-
echoServerConfiguration -
Die Konfiguration zur Einrichtung des Echoservers für den TLS-Test. Dies ist ein Pflichtfeld.
-
keyGenerationMethod -
Der Echoserver ist mit dieser Option konfiguriert. Die Optionen sind EC oder RSA.
-
serverPort -
Die Portnummer, auf der 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 Firmware-Image, das gestartet werden soll. Wenn Ihr Gerät das Dateisystem NICHT 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 des Firmware-Startabbilds an. -
codeSigningConfiguration -
-
signingMethod -
Die Code-Signaturmethode. Mögliche Werte sind AWS oder Benutzerdefiniert.
Anmerkung
Verwenden Sie für die Regionen Peking und Ningxia die Option Benutzerdefiniert. AWS Codesignatur wird in dieser Region nicht unterstützt.
-
signerHashingAlgorithm -
Der auf dem Gerät unterstützte Hashing-Algorithmus. Die möglichen Wert sind
SHA1oderSHA256. -
signerSigningAlgorithm -
Der auf dem Gerät unterstützte Signaturalgorithmus. Die möglichen Wert sind
RSAoderECDSA. -
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 Zertifikatsdatei des Unterzeichners. 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-certificateBefehls angegeben haben. -
compileSignerCertificate -
Boolescher Wert, der den Status des Signaturverifizierungszertifikats bestimmt. Gültige Werte sind
trueundfalse.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 Tester ruft das vertrauenswürdige Zertifikat ab und kompiliert es in.
aws_codesigner_certificate.h -
signerPlatform -
Der Signier- und Hash-Algorithmus, den AWS Code Signer bei der Erstellung des OTA-Aktualisierungsjobs verwendet. Derzeit lauten die möglichen Werte für dieses Feld
AmazonFreeRTOS-TI-CC3220SFundAmazonFreeRTOS-Default.-
Wählen Sie bei
SHA1undRSAAmazonFreeRTOS-TI-CC3220SFaus. -
Wählen Sie bei
SHA256undECDSAAmazonFreeRTOS-Defaultaus. -
Wenn Sie
SHA256|RSAoderSHA1|ECDSAfür Ihre Konfiguration benötigen, kontaktieren Sie uns, um weitere Unterstützung zu erhalten. -
Konfigurieren Sie
signCommand, wenn SieCustomfürsigningMethodausgewä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 -
PKCS11 Für die Labelkonfiguration ist mindestens ein Satz von Bezeichnungen aus Gerätezertifikatslabel, Etikett für öffentlichen Schlüssel und Bezeichnung für private Schlüssel erforderlich, um die PKCS11 Testgruppen ausführen zu können. Die erforderlichen PKCS11 Labels basieren auf Ihrer Gerätekonfiguration in der
device.jsonDatei. Wenn Pre-Provisioned auf Ja in gesetzt istdevice.json, muss es sich bei den erforderlichen Labels um eines der folgenden Labels handeln, je nachdem, was für die PKCS11 Funktion ausgewählt wurde.-
PreProvisionedEC -
PreProvisionedRSA
Wenn pre-provisioned auf Nein in gesetzt ist
device.json, lauten die erforderlichen Labels:-
pkcs11LabelDevicePrivateKeyForTLS -
pkcs11LabelDevicePublicKeyForTLS -
pkcs11LabelDeviceCertificateForTLS
Die folgenden drei Bezeichnungen sind nur erforderlich, wenn Sie
pkcs11JITPCodeVerifyRootCertSupportin Ihrerdevice.jsonDatei 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 Schlüsselbereitstellung und Importunterstützung wird dieses Label zu Testzwecken verwendet. Diese Bezeichnung kann sich von der Bezeichnung unterscheiden, die für den vorab bereitgestellten Fall definiert wurde. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja eingestellt haben, ist dies undefiniert
device.json. -
pkcs11LabelDevicePublicKeyForTLS -
(Optional) Dieses Label wird für das PKCS #11 -Label des öffentlichen Schlüssels verwendet. Bei Geräten mit integrierter Schlüsselbereitstellung und Importunterstützung wird dieses Label zu Testzwecken verwendet. Diese Bezeichnung kann sich von der Bezeichnung unterscheiden, die für den vorab bereitgestellten Fall definiert wurde. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja eingestellt haben, ist dies undefiniert
device.json. -
pkcs11LabelDeviceCertificateForTLS -
(Optional) Diese Bezeichnung wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Bei Geräten mit integrierter Schlüsselbereitstellung und Importunterstützung wird dieses Etikett zu Testzwecken verwendet. Diese Bezeichnung kann sich von der Bezeichnung unterscheiden, die für den vorab bereitgestellten Fall definiert wurde. Wenn Sie die Schlüsselbereitstellung auf Nein und die Vorbereitstellung auf Ja eingestellt haben, ist dies undefiniert
device.json. -
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 dieses Gerät mit einer anderen Bezeichnung versehen, um die AWS IoT Anmeldeinformationen zu schützen. Wenn Ihr Gerät die Vorabbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja gesetzt ist
device.json, muss dieses Label oder beides angegeben werden.pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLSDieses Label kann sich von dem unterscheiden, das für Onboard- und Importfälle definiert wurde. -
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 dieses Gerät mit einer anderen Bezeichnung versehen, um die AWS IoT Anmeldeinformationen zu schützen. Wenn Ihr Gerät die Vorabbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja gesetzt ist
device.json, muss dieses Label oder beides angegeben werden.pkcs11LabelPreProvisionedRSADevicePublicKeyForTLSDieses Label kann sich von dem unterscheiden, das für Onboard- und Importfälle definiert wurde. -
pkcs11LabelPreProvisionedECDeviceCertificateForTLS -
(Optional) Dieses Label wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird dieses Gerät mit einer anderen Bezeichnung versehen, um die AWS IoT Anmeldeinformationen zu schützen. Wenn Ihr Gerät die Vorabbereitstellung mit einem EC-Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn PreProvisioned auf Ja gesetzt ist
device.json, muss dieses Label oder beides angegeben werden.pkcs11LabelPreProvisionedRSADeviceCertificateForTLSDieses Label kann sich von dem unterscheiden, das für Onboard- und Importfälle definiert wurde. -
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 dieses Gerät mit einer anderen Bezeichnung versehen, um die AWS IoT Anmeldeinformationen zu schützen. Wenn Ihr Gerät die Vorabbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie diese Bezeichnung an. Wenn PreProvisioned auf Ja gesetzt ist
device.json, muss 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 dieses Gerät mit einer anderen Bezeichnung versehen, um die AWS IoT Anmeldeinformationen zu schützen. Wenn Ihr Gerät die Vorabbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie diese Bezeichnung an. Wenn PreProvisioned auf Ja gesetzt ist
device.json, muss dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDevicePublicKeyForTLS -
pkcs11LabelPreProvisionedRSADeviceCertificateForTLS -
(Optional) Diese Bezeichnung wird für das PKCS #11 -Label des Gerätezertifikats verwendet. Für Geräte mit sicheren Elementen oder Hardwarebeschränkungen wird dieses Gerät mit einer anderen Bezeichnung versehen, um die AWS IoT Anmeldeinformationen zu schützen. Wenn Ihr Gerät die Vorabbereitstellung mit einem RSA-Schlüssel unterstützt, geben Sie diese Bezeichnung an. Wenn PreProvisioned auf Ja gesetzt ist
device.json, muss dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDeviceCertificateForTLS -
pkcs11LabelCodeVerifyKey -
(Optional) Diese Bezeichnung wird für das PKCS #11 -Label des Codeverifizierungsschlüssels verwendet. Wenn Ihr Gerät über PKCS #11 -Speicherunterstützung für das JITP-Zertifikat, den Codeverifizierungsschlüssel und das Stammzertifikat verfügt, geben Sie dieses Etikett an. Wenn
pkcs11JITPCodeVerifyRootCertSupportin auf Ja gesetztdevice.jsonist, muss dieses Etikett angegeben werden. -
pkcs11LabelJITPCertificate -
(Optional) Diese Bezeichnung 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 Codeverifizierungsschlüssel und das Stammzertifikat verfügt, geben Sie dieses Etikett an. Wenn
pkcs11JITPCodeVerifyRootCertSupportin auf Ja gesetztdevice.jsonist, muss dieses Etikett angegeben werden.
-