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 Free konfigurieren IDT könnenRTOS, 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 kostenlosen RTOS Quellcodes.
-
retainModifiedSourceDirectories
-
(Optional) Überprüft, ob die geänderten Quellverzeichnisse beibehalten werden sollen, die beim Erstellen und Flashen zu Debugging-Zwecken verwendet wurden. Wenn auf gesetzt
true
, werden die geänderten Quellverzeichnisse benannt retainedSrc und in den Ergebnisprotokollordnern bei jedem Testgruppenlauf gefunden. Wenn nicht enthalten, ist das Feld standardmäßig auffalse
eingestellt. -
freeRTOSTestParamConfigPath
-
Der Pfad zur
test_param_config.h
Datei 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.h
Datei 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 Free, RTOS einschließlich der Patch-Version, die in Ihrer Implementierung verwendet wurde. Weitere Informationen finden Sie unter Unterstützte Versionen von AWS IoT Device Tester RTOS for Free for the Free RTOS Versionen, die mit AWS IoT Device Tester Free kompatibel sindRTOS.
-
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.json
Datei angebenotaConfiguration
. -
testStartDelayms
-
Gibt an, wie viele Millisekunden der kostenlose RTOS Test-Runner 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 es die Möglichkeit IDT hat, eine Verbindung herzustellen und mit der Protokollierung zu beginnen. Dieser Wert gilt nur für kostenlose RTOS Testgruppen und nicht für andere Testgruppen, die den kostenlosen RTOS Test-Runner 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 oderRSA.
-
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 für die OTA End-to-End-Tests IDT verwendet wird.
-
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 für den Firmware-Start NOT 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
SHA1
oderSHA256
. -
signerSigningAlgorithm
-
Der auf dem Gerät unterstützte Signaturalgorithmus. Die möglichen Wert sind
RSA
oderECDSA
. -
signerCertificate
-
Das vertrauenswürdige Zertifikat, das für verwendet wirdOTA. 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 Dateipfad ARN oder für ein zweites Zertifikat, das in einigen OTA Tests als nicht vertrauenswürdiges Zertifikat verwendet wurde. 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 Signaturverifizierungszertifikats 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 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 Aktualisierungsauftrags verwendet. OTA 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
-
Zwei Platzhalter
{{inputImageFilePath}}
und{{outputSignatureFilePath}}
sind für den Befehl erforderlich.{{inputImageFilePath}}
ist der Dateipfad des Images, das von erstellt wurde, um signiert IDT zu werden.{{outputSignatureFilePath}}
ist der Dateipfad der Signatur, die vom Skript generiert wird.
-
-
pkcs11LabelConfiguration
-
PKCS11Für die Labelkonfiguration ist zur Ausführung der PKCS11 Testgruppen mindestens ein Satz von Bezeichnungen aus Gerätezertifikat, Bezeichnung für öffentliche Schlüssel und Bezeichnung für private Schlüssel erforderlich. 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 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
pkcs11JITPCodeVerifyRootCertSupport
in Ihrerdevice.json
Datei Ja für auswählen.-
pkcs11LabelCodeVerifyKey
-
pkcs11LabelRootCertificate
-
pkcs11LabelJITPCertificate
Die Werte für diese Felder sollten den im Free RTOS Porting Guide definierten Werten entsprechen.
-
pkcs11LabelDevicePrivateKeyForTLS
-
(Optional) Dieses Label wird für das Label PKCS #11 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 Label PKCS #11 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) Dieses Label wird für das PKCS #11 -Label des Gerätezertifikats 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
. -
pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS
-
(Optional) Dieses Label wird für das Label PKCS #11 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 auf Ja gesetzt preProvisioned ist
device.json
, muss dieses Etikett oder beide angegeben werden.pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS
Dieses Label kann sich von dem unterscheiden, das für Onboard- und Importfälle definiert wurde. -
pkcs11LabelPreProvisionedECDevicePublicKeyForTLS
-
(Optional) Dieses Label wird für das Label PKCS #11 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 auf Ja gesetzt preProvisioned ist
device.json
, muss dieses Etikett oder beide angegeben werden.pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS
Dieses 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 auf Ja gesetzt preProvisioned ist
device.json
, muss dieses Etikett oder beide angegeben werden.pkcs11LabelPreProvisionedRSADeviceCertificateForTLS
Dieses Label kann sich von dem unterscheiden, das für Onboard- und Importfälle definiert wurde. -
pkcs11LabelPreProvisionedRSADevicePrivateKeyForTLS
-
(Optional) Dieses Label wird für das Label PKCS #11 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 dieses Etikett an. Wenn auf Ja gesetzt preProvisioned ist
device.json
, muss dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDevicePrivateKeyForTLS
-
pkcs11LabelPreProvisionedRSADevicePublicKeyForTLS
-
(Optional) Dieses Label wird für das Label PKCS #11 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 dieses Etikett an. Wenn auf Ja gesetzt preProvisioned ist
device.json
, muss dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDevicePublicKeyForTLS
-
pkcs11LabelPreProvisionedRSADeviceCertificateForTLS
-
(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 RSA Schlüssel unterstützt, geben Sie dieses Etikett an. Wenn auf Ja gesetzt preProvisioned ist
device.json
, muss dieses Label oder beide angegeben werden.pkcs11LabelPreProvisionedECDeviceCertificateForTLS
-
pkcs11LabelCodeVerifyKey
-
(Optional) Dieses Label wird für das Label PKCS #11 des Code-Bestätigungsschlüssels verwendet. Wenn Ihr Gerät über den Speicher PKCS #11 verfügt, der das JITP Zertifikat, den Code-Bestätigungsschlüssel und das Stammzertifikat unterstützt, geben Sie dieses Etikett an. Wenn
pkcs11JITPCodeVerifyRootCertSupport
in auf Ja gesetztdevice.json
ist, muss dieses Etikett angegeben werden. -
pkcs11LabelJITPCertificate
-
(Optional) Dieses Label wird für das Label PKCS #11 des JITP Zertifikats verwendet. Wenn Ihr Gerät über den Speicher PKCS #11 verfügt, der das JITP Zertifikat, den Codeverifizierungsschlüssel und das Stammzertifikat unterstützt, geben Sie dieses Etikett an. Wenn
pkcs11JITPCodeVerifyRootCertSupport
in auf Ja gesetztdevice.json
ist, muss dieses Etikett angegeben werden.
-