Es ist zwar keine Voraussetzung, aber einige Testszenarien erfordern die Erstellung einer Nicht-Produktionsversion. Matter-Zertifikate.
Einige Funktionen des Google-Ökosystems, einschließlich der OTA-Software für Geräte Aktualisierungen können nicht mit einer Test-VID/-PID durchgeführt werden.
In diesem Leitfaden wird erläutert, wie Sie eine Nicht-Produktion erstellen und verifizieren. Matter Zertifikate zum Testen. Die Arten von Zertifikate sind:
- Die Zertifizierungserklärung (CD)
- Das PAI (Product Attestation Zwischenzertifikat)
- Das DAC
Während der Inbetriebnahme wird eine von Matter zertifizierte Person Gerät muss sich selbst bestätigen, d. h. nachweisen, es sich um ein echtes Matter-zertifiziertes Produkt handelt. Anmeldedaten von Matter Geräten zur Bestätigung verwendet bestehen aus:
- Ein Attestierungsschlüsselpaar
- Eine Zertifikatskette
Das Device Attestation Certificate (DAC) ist die erste Verknüpfung des Zertifikats. und wird durch das Zwischenzertifikat zur Produktattestierung (Product Attestation Intermediate Certificate) (PAI), die wiederum von der Produktzertifizierungsstelle anerkannt wird. (PAA).
Zertifikate werden zur selben Zeit signiert wie das Attestierungsschlüsselpaar und werden mit dem privaten Schlüssel der Zertifizierungsstelle (Certificate Authority 1) signiert. Ebene höher und bildet eine Vertrauenskette. Ein DAC-Zertifikat wird mit einem PAI-Schlüssel und ein PAI-Zertifikat mit einem PAA-Schlüssel. PAA-Zertifikate stehen an der Spitze der Kette und sind selbst signiert. Diese Vertrauenskette bildet eine föderierte PAA-Struktur, die vom Distributed Compliance Ledger (DCL).
Weitere Informationen zum Zertifizierungsprozess und zu den Zertifizierungserklärungen gefunden werden in Zusätzliche Attestierungsdokumente und Nachrichten und in der Matter-Spezifikation.
Matter SDK installieren
Diese Anleitung setzt voraus, dass Sie eine funktionierende Installation des Matter-SDK. Weitere Informationen finden Sie in der GitHub Weitere Informationen finden Sie unter Erste Schritte mit Matter. erhalten Sie weitere Informationen.
Installieren Sie das Hexdump-Dienstprogramm xxd
, falls Sie es noch nicht haben. Dieses Tool ist nützlich,
zum Drucken der Anmeldedaten im C-Format:
sudo apt-get install xxd
Build chip-cert
Achten Sie darauf, dass Sie mit einer aktuellen SDK-Version arbeiten. Diese Verfahren wurden getestet auf GitHub-SHA
0b17bce8
im Zweigv1.0-branch
:$ cd connectedhomeip $ git checkout v1.0-branch $ git pull
Erstellen Sie
chip-cert
, das Tool, das für mehrere Vorgänge auf Anmeldedaten für Matter Gerät:Konfigurieren Sie den Build:
$ cd src/credentials $ source ../../scripts/activate.sh $ gn gen out
Beispielausgabe für
gn
:Done. Made 5774 targets from 289 files in 658ms
Führen Sie den Build aus:
$ ninja -C out
Beispielausgabe für
ninja
:ninja: Entering directory `out' [2000/2000] stamp obj/default.stamp
Zertifikate erstellen
Exportieren Sie Ihre benutzerdefinierte VID/PID als Umgebungsvariablen, um die Wahrscheinlichkeit Schreibfehler beim Bearbeiten der Befehlsargumente:
$ cd ../..
$ export VID=hexVendorId
$ export PID=hexProductId
CD generieren
Generieren Sie die CD mit
chip-cert
. Derzeit überprüft der Commissioner nur dass VID und PID mit den Daten übereinstimmen, die an anderer Stelle vom Gerät bereitgestellt werden: Ursprung des Basisinformationsclusters, DAC und DAC (sofern vorhanden) Du kannst das Zuhause verlassen die anderen Felder unverändert lassen:$ src/credentials/out/chip-cert gen-cd \ --key credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem \ --cert credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem \ --out credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der \ --format-version "1" \ --vendor-id "${VID}" \ --product-id "${PID}" \ --device-type-id "0x1234" \ --certificate-id "ZIG20141ZB330001-24" \ --security-level "0" \ --security-info "0" \ --version-number "9876" \ --certification-type "0"
Überprüfen Sie die CD. Achte darauf, dass deine VID/PID im Dezimalformat angegeben ist:
$ src/credentials/out/chip-cert print-cd credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
Beispielausgabe:
SignerKeyId value: hex:62FA823359ACFAA9963E1CFA140ADDF504F37160 0x01, tag[Anonymous]: 0xffffffff, type: Structure (0x15), container: 0x04, tag[Context Specific]: 0x0, type: Unsigned Fixed Point (0x04), value: 1 0x08, tag[Context Specific]: 0x1, type: Unsigned Fixed Point (0x04), value: XXXXX // <- VID 0x0A, tag[Context Specific]: 0x2, type: Array (0x16), container: 0x0D, tag[Anonymous]: 0xffffffff, type: Unsigned Fixed Point (0x04), value: XXXXX // <- PID 0x12, tag[Context Specific]: 0x3, type: Unsigned Fixed Point (0x04), value: 4660 0x15, tag[Context Specific]: 0x4, type: UTF-8 String (0x0c), length: 19, value: "ZIG20141ZB330001-24" 0x2B, tag[Context Specific]: 0x5, type: Unsigned Fixed Point (0x04), value: 0 0x2E, tag[Context Specific]: 0x6,type: Unsigned Fixed Point (0x04), value: 0 0x32, tag[Context Specific]: 0x7, type: Unsigned Fixed Point (0x04), value: 39030 0x35, tag[Context Specific]: 0x8, type: Unsigned Fixed Point (0x04), value: 0
PAI und DAC generieren
In diesem Beispiel verwenden wir das Testprodukt von Matter
Zertifikat der Attestierungsstelle (Attestation Authority, PPA) und Signaturschlüssel Chip-Test-PAA-NoVID
als Root-Zertifikat. Wir verwenden sie als Stammzertifizierungsstelle, um unsere eigene PAI zu generieren
und DAC.
Generieren Sie die PAI mithilfe der PAA. Sie können optional die PID angeben. Informationen in der PAI enthalten. Wenn Sie sie weglassen, erhalten Sie mehr Flexibilität für Tests durchführen. Wenn Sie DACs für zusätzliche PIDs benötigen, können Sie nur den Schritt für die DAC-Generierung:
$ src/credentials/out/chip-cert gen-att-cert --type i \ --subject-cn "Matter Test PAI" \ --subject-vid "${VID}" \ --valid-from "2021-06-28 14:23:43" \ --lifetime "4294967295" \ --ca-key credentials/test/attestation/Chip-Test-PAA-NoVID-Key.pem \ --ca-cert credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem \ --out-key credentials/test/attestation/"test-PAI-${VID}-key".pem \ --out credentials/test/attestation/"test-PAI-${VID}-cert".pem
Generieren Sie den DAC mit der PAI:
$ src/credentials/out/chip-cert gen-att-cert --type d \ --subject-cn "Matter Test DAC 0" \ --subject-vid "${VID}" \ --subject-pid "${PID}" \ --valid-from "2021-06-28 14:23:43" \ --lifetime "4294967295" \ --ca-key credentials/test/attestation/"test-PAI-${VID}-key".pem \ --ca-cert credentials/test/attestation/"test-PAI-${VID}-cert".pem \ --out-key credentials/test/attestation/"test-DAC-${VID}-${PID}-key".pem \ --out credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem
Prüfen Sie die DAC-, PAI- und PAA-Kette. Wenn keine Fehler in der Ausgabe auftreten, bedeutet, dass die Zertifikatsattestierungskette erfolgreich verifiziert wurde:
$ src/credentials/out/chip-cert validate-att-cert \ --dac credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem \ --pai credentials/test/attestation/"test-PAI-${VID}-cert".pem \ --paa credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem
Sie können Ihre Schlüssel mit
openssl
prüfen:$ openssl ec -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-key.pem
Beispielausgabe:
read EC key Private-Key: (256 bit) priv: c9:f2:b3:04:b2:db:0d:6f:cd:c6:be:f3:7b:76:8d: 8c:01:4e:0b:9e:ce:3e:72:49:3c:0e:35:63:7c:6c: 6c:d6 pub: 04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79: 11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76: 08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8: 31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a: 46:b9:19:60:28 ASN1 OID: prime256v1 NIST CURVE: P-256
Sie können auch
openssl
verwenden, um Ihre generierten Zertifikate zu prüfen:$ openssl x509 -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-cert.pem
Beispielausgabe:
Certificate: Data: Version: 3 (0x2) Serial Number: 2875998130766646679 (0x27e9990fef088d97) Signature Algorithm: ecdsa-with-SHA256 Issuer: CN = Matter Test PAI, 1.3.6.1.4.1.37244.2.1 = hexVendorId Validity Not Before: Jun 28 14:23:43 2021 GMT Not After : Dec 31 23:59:59 9999 GMT Subject: CN = Matter Test DAC 0, 1.3.6.1.4.1.37244.2.1 = hexVendorId, 1.3.6.1.4.1.37244.2.2 = hexProductId Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (256 bit) pub: 04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79: 11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76: 08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8: 31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a: 46:b9:19:60:28 ASN1 OID: prime256v1 NIST CURVE: P-256 X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: critical Digital Signature X509v3 Subject Key Identifier: 21:0A:CA:B1:B6:5F:17:65:D8:61:19:73:84:1A:9D:52:81:19:C5:39 X509v3 Authority Key Identifier: 37:7F:24:9A:73:41:4B:16:6E:6A:42:6E:F5:E8:89:FB:75:F8:77:BB Signature Algorithm: ecdsa-with-SHA256 Signature Value: 30:45:02:20:38:8f:c5:0d:3e:90:95:dd:7d:7c:e9:5a:05:19: 1f:2d:14:08:a3:d7:0e:b5:15:6d:d3:b0:0b:f7:b8:28:4d:bf: 02:21:00:d4:05:30:43:a6:05:00:0e:b9:99:0d:34:3d:75:fe: d3:c1:4e:73:ff:e7:05:64:7a:62:8d:2d:38:8f:fd:4d:ad
PAA
Mit einem ähnlichen Verfahren lässt sich eine selbst signierte PAA generieren. ist nicht notwendig.
Stattdessen haben wir hier eine bestehende selbst signierte Entwicklungs-PAA verwendet. die keine VID-Informationen enthält.
Weitere Beispiele zum Generieren einer CD finden Sie in
credentials/test/gen-test-cds.sh
Weitere Beispiele zum Generieren einer PAA, PAI und DAC finden Sie unter
credentials/test/gen-test-attestation-certs.sh
Zertifikate ersetzen
PAA und PAI ersetzen
- Führen Sie das folgende Hilfsskript aus.
das CHIP-Zertifikatstool (
chip-cert
) um Arrays im C-Stil für Ihre Zertifikate zu generieren.
Hilfsskript für integrierbare Zertifikate herunterladen
#!/bin/bash # # generate-embeddable-certs.sh script # —---------------------------------- # # This script generates self-minted DAC and PAI. # The output may easily be included in your C++ source code. # # Edit this information with your paths and certificates folder="credentials/test/attestation" chip_cert_tool="src/credentials/out/chip-cert" cert_file_der="${folder}/test-PAI-${VID}-cert.der" cert_file_pem="${folder}/test-PAI-${VID}-cert.pem" key_file_pem="${folder}/test-PAI-${VID}-key.pem" type="Pai" printf "namespace chip {\n" printf "namespace DevelopmentCerts {\n\n" printf "#if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == ${PID}\n\n" printcert() { # convert cert to DER if [ -f "${cert_file_der}" ]; then rm "${cert_file_der}" fi "${chip_cert_tool}" convert-cert "${cert_file_pem}" "${cert_file_der}" --x509-der printf "// ------------------------------------------------------------ \n" printf "// ${type} CERTIFICATE ${cert_file_der} \n\n" printf "constexpr uint8_t ${type}_Cert_Array[] = {\n" less -f "${cert_file_der}" | od -t x1 -An | sed 's/\0x/g' | sed 's/\>/,/g' | sed 's/^/ /g' printf "};\n\n" printf "ByteSpan k${type}Cert = ByteSpan(${type}_Cert_Array);\n\n" printf "// ${type} PUBLIC KEY FROM ${key_file_pem} \n\n" printf "constexpr uint8_t ${type}_PublicKey_Array[] = {\n" openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/ASN1 OID/d' | sed '/NIST CURVE/d' | sed -n '/pub:/,$p' | sed '/pub:/d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g' printf "};\n\n" printf "ByteSpan k${type}PublicKey = ByteSpan(${type}_PublicKey_Array);\n\n" printf "// ${type} PRIVATE KEY FROM ${key_file_pem} \n\n" printf "constexpr uint8_t ${type}_PrivateKey_Array[] = {\n" openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/read EC key/d' | sed '/Private-Key/d' | sed '/priv:/d' | sed '/pub:/,$d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g' printf "};\n\n" printf "ByteSpan k${type}PrivateKey = ByteSpan(${type}_PrivateKey_Array);\n\n" } # generates PAI printcert type="Dac" cert_file_der="${folder}/test-DAC-${VID}-${PID}-cert.der" cert_file_pem="${folder}/test-DAC-${VID}-${PID}-cert.pem" key_file_pem="${folder}/test-DAC-${VID}-${PID}-key.pem" # generates DAC printcert printf "#endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID\n" printf "} // namespace DevelopmentCerts\n" printf "} // namespace chip\n"
Kopieren Sie den Inhalt der PAI- und DAC-Ausgabe in die Implementierung von
DeviceAttestationCredentialsProvider::GetProductAttestationIntermediateCert
Auf Produktionsgeräten befinden sich die PAI und der DAC in Factory Data während die CD in die Firmware selbst eingebettet ist.
Wenn Sie Factory Data noch nicht verwenden, sollten Sie Ihre PAI in „
src/credentials/examples/ExampleDACs.cpp
“. Fügen Sie in diesem Fall den resultierenden generierten Code in IhreExampleDACs.cpp
-Datei:ByteSpan kDacCert = ByteSpan(kDevelopmentDAC_Cert_FFF1_801F); ByteSpan kDacPrivateKey = ByteSpan(kDevelopmentDAC_PrivateKey_FFF1_801F); ByteSpan kDacPublicKey = ByteSpan(kDevelopmentDAC_PublicKey_FFF1_801F); #endif } // namespace DevelopmentCerts } // namespace chip /* ------------------------------------------ */ /* current end-of-file */ /* ------------------------------------------ */ /* ------------------------------------------ */ /* output of creds-codelab.sh script */ /* ------------------------------------------ */ namespace chip { namespace DevelopmentCerts { #if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == hexProductId ... ByteSpan kDacPrivateKey = ByteSpan(Dac_PrivateKey_Array); #endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID } // namespace DevelopmentCerts } // namespace chip
Wenn Sie Factory Data oder einen benutzerdefinierten Anmeldedatenanbieter verwenden, um die Anmeldedaten an den entsprechenden Stellen einzufügen. Vielleicht möchten Sie Fragen Sie Ihren SoC-Anbieter nach den Besonderheiten Ihrer Plattform.
Wechsele die CD
Extrahieren Sie eine Textdarstellung des Inhalts Ihrer CD-Datei mit
xxd
:$ xxd -i credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
Beispielausgabe:
unsigned char credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der[] = { 0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25, 0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34, 0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31, 0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24, 0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00, 0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa, 0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a, 0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02, 0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf, 0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61, 0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00, 0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1, 0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09, 0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2 }; unsigned int credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der_len = 236; ```
Kopieren Sie den im vorherigen Schritt extrahierten Text in die Datei, die zur Definition verwendet wurde. die CD in Ihren Build ein. Wie im Fall von PAI und DAC hängt davon ab, auf welcher Plattform Sie entwickeln.
Wenn Sie die Beispiele für Anmeldedaten verwenden, sollten Sie das Feld
Inhalt von kCdForAllExamples
in
ExampleDACProvider::GetCertificationDeclaration
, in
src/credentials/examples/DeviceAttestationCredsExample.cpp
:
const uint8_t kCdForAllExamples[] = {
0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31,
0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04,
0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25,
0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34,
0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31,
0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24,
0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00,
0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa,
0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a,
0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a,
0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02,
0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf,
0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61,
0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00,
0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1,
0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09,
0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2
};
Ziel erstellen
Erstellen und flashen Sie Ihr Ziel mit den neu erstellten Anmeldedaten. Dieses ist plattformabhängig. Weitere Informationen finden Sie in der SoC-Dokumentation oder Unterstützte Geräte .
Gerät in Betrieb nehmen
Sie können nun die Schritte ausführen, die bereits unter Sachverhalt koppeln – beschrieben wurden Gerät Inbetriebnahme Ihres Matter-Geräts am Google Home platform.
Probleme mit chip-tool
beheben
Mit chip-tool
kannst du prüfen, ob dein Gerät die richtigen
Zertifikate. So erstellen Sie sie:
$ cd examples/chip-tool
$ gn gen out/debug
Done. Made 114 targets from 112 files in 157ms
$ ninja -C out/debug
ninja: Entering directory `out/debug'
$ cd ../..
Um zusätzliche Logs zu aktivieren, müssen Sie bei jeder Ausführung von chip-tool
den Parameter
--trace_decode 1
-Flag. Darüber hinaus empfiehlt es sich, den Pfad Ihres
PAA-Datei mit dem Flag --paa-trust-store-path
.
Um ein Thread-Gerät mit BLE in Betrieb zu nehmen, können Sie also Folgendes ausführen:
```
$ examples/chip-tool/out/debug/chip-tool pairing ble-thread 1 \
hex:Thread_credentials \
pairing_code \
discriminator \
--paa-trust-store-path <path to PAA folder> \
--trace_decode 1
```
Bei Testgeräten ist <PAIRING CODE>
20202021
und
<DISCRIMINATOR>
ist 3840
.
Um Ihre Thread-Anmeldedaten von Ihrem Google Nest Hub (2nd gen) zu erhalten, haben Sie folgende Möglichkeiten: ausführen:
$ adb connect border_router_ip_address
$ adb -e shell ot-ctl dataset active -x
$ adb disconnect
Um ein WLAN-Gerät in Betrieb zu nehmen, kannst du die Option ble-wifi
verwenden:
$ examples/chip-tool/out/debug/chip-tool pairing ble-wifi 1 "SSID" SSID_password pairing_code discriminator