- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear supporter
I want to translate the following KBA. Please confirm to my work.
OTA Updates with AWS and the CY8CKIT-064S0S2-4343W Kit – KBA231112
Regards,
Nino
- Labels:
-
ispn:40036:1:0
-
l1:314:1:0
-
PSoc6
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, Nino-san
Confirm to work this KBA.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Jenna
The following shows the translation version in Japanese for targeted KBA.
Please confirm and double check.
Regards,
Nino
AWSとCY8CKIT-064S0S2-4343Wキットを用いたOTA更新 – KBA231112
Version : *A
この記事は、CY8CKIT-064S0S2-4343WキットでOTAを使う方法について説明します。キットをお持ちでない場合は、このリンク:CY8CKIT-064S0S2-4343Wのウェブサイトから注文できます。
最初の手順
開始する前に、サイプレスCY8CKIT-064S0S2-4343Wキットの開始ガイドに従い、Amazon FreeRTOS MQTTデモプロジェクトをビルドおよびランできることを確認してください。その結果、開発環境、およびハードウェアがどのように動作するかをすでに熟知しています。
注: この説明書では、FreeRTOSダウンロードディレクトリへのパスは<freetos>と呼ばれます。
Amazon FreeRTOS認定ステータスに関する注意
PSoC 64®デバイスは、全ての要求されるFreeRTOS信頼性試験をパスしています。がしかし、PSoC 64スタンダードセキュアAWSファームウェアライブラリに実装されているオプションのOTA機能は、まだ評価待ちです。最近実装されたOTA機能は、「OTA_incorrect_wifi_password」以外の全てのOTA信頼性試験はパスしています。(https://github.com/aws/amazon-freertos/blob/master/tools/ota_e2e_tests/aws_ota_test/aws_ota_test_cas...)
正常に認証されたOTAイメージがPSoC64スタンダードセキュアAWS MCUを用いてデバイスに適用され、かつデバイスがAWS IoTコアと通信できない場合、デバイスは元の既知の正常なイメージに自動的に戻る事はできません。これにより、それ以上の更新のためにAWS IoTコアからデバイスに到達できなくなる可能性があります。
リソース
FreeRTOS Over-the-Airの記載はここにあります。
https://docs.aws.amazon.com/freertos/latest/userguide/freertos-ota-dev.html
https://github.com/aws/amazon-freertosでREADME.mdも参照してください。
OTA更新前提条件
OTAの準備として、ここに記載された前提条件に従ってください。
https://docs.aws.amazon.com/freertos/latest/userguide/ota-prereqs.html
特に、下記を達成する指図に従ってください。
- 更新を保存するAmazon S3バケットを生成
- OTA更新サービスロールを生成
- OTAユーザーポリシーを生成
- コード署名証明書を生成-次のセクションの手順を参照してください
- AWS IoTのコード署名にアクセスを許可します
- MQTTを用いたOTA更新の前提条件
- HTTPを用いたOTA更新の前提条件
コード署名証明書を生成
ファームウェアイメージにデジタル署名するために、コード署名証明書およびプライベートキーが必要となります。評価目的のため、自己署名証明書およびプライベートキーを生成できます。量産環境では、周知された認証機関(CA)を通して証明書を購入します。
AWS認証マネジャーに、コード署名証明書、プライベートキーおよび証明書チェーンをインポートするためにはAWSコマンドラインインターフェースを使用します。より詳細な情報はAWSコマンドラインインターフェースユーザーガイドの Installing the AWS CLIを参照してください。
- 管理者権限を使用しコマンドプロントまたはターミナルを開きます。
- 以下のコマンドを使用してプライベートキーを生成します。
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve -outform PEM -out <filename>.pem
3. 以下の内容を用いて同じディレクトリに新しいファイルcert_config.txtを生成します。証明書と合致するように<user_name> および <domain>を修正します。
[req]
prompt = no
distinguished_name = my_dn
[my_dn]
commonName = <user_name>@<domain>.com
[my_exts]
keyUsage = digitalSignature
extendedKeyUsage = codeSigning
4. 以下のコマンドを使用してコード署名証明書を生成します。
openssl req -new -x509 -config cert_config.txt -extensions my_exts -nodes -days 365 -key <filename>.pem -out <filename>.crt
5. <amazon-freertos>/demos/includeでaws_ota_codesigner_certificate.hに<filename>.crtの内容をペーストします。ファイルで説明されている書式に従ってください。これは、AWSによって生成され、イメージと一緒にキットにストリーミングされた署名を検証するために使用されます。
6. AWS証明書マネジャー(ACM)を用いて証明書およびプライベートキーを登録してください。ARNはこのステージで生成され、certarn.jsonに保存されます。このARNはOTA作業を生成する際に必要になります。
aws acm import-certificate –certificate file://<filename>.crt –private-key file://<filename>.pem > certarn.json
Amazon FreeRTOS OTAデモプロジェクトをビルドし、ランする
FreeRTOSデモをビルド
1.Eclipsを開いて、workspaceを選択または生成
2.ファイルメニューから、importを選択。Generalを展開し、WorkspaceのExisting Projectを選択して、Nextを選択します。
3.ルートディレクトリで、<freertos>/projects/cypress/<kit-name>/mtb/aws_demosを入力。プロジェクト名aws_demosは初期値で選択される必要があります。ワークスペー スにプロジェクトをインポートするためにFinishを選択します。
4.OTAデモを構成します。左側のパネルから、aws_demos->vendors->cypress->boards->CY8CKIT_064S0S2_4343W->aws_demos->config_files->aws_demo_config.hを選択します。以下のラインを変更します。
#define CONFIG_MQTT_DEMO_ENABLED
を
#define CONFIG_OTA_UPDATE_DEMO_ENABLED
に。
5.OTAサポートを有効化します。左側のパネルから、ws_demos->Makefileを選択します。以下のラインを変更します。
OTA_SUPPORT=0
を
OTA_SUPPORT=1
に。
6.クイックパネルから、Build aws_demos Application(または、Project > Build Allを使用)をクリック。エラーなくプロジェクトがコンパイルしていることを確認してください。
FreeRTOS デモプロジェクトを実行します。
1. ワークスペースのaws_demosプロジェクトをクリックします。
2. クイックパネルから、 aws_demos Program (KitProg3)をクリックします。この手順では、ボードにプログラムし、プログラミングが終了した後にデモアプリケーションを開始します。
3. シリアルターミナルで実行中のアプリケーションの状態を確認できます。以下の図はターミナル出力の一部を示しています。
OTAデモはOTAジョブを待ちます。
更新イメージをビルドし、OTAジョブを生成します。
次に、バージョン番号を進めて、更新イメージを生成します。FreeRTOSガイドは以下のリンクにあります。
https://docs.aws.amazon.com/freertos/latest/userguide/dev-guide-ota-workflow.html
ここではCY8CKIT_064S0S2_4343Wの指示を簡素化しています。
- Eclipsで、左のペインからaws_demos->include->aws_application_version.hを選択します。APP_VERSION_MAJOR、APP_VERSION_MINORまたは APP_VERSION_BUILDのいずれかを増やします。
- 再度アプリケーションをビルドします。
- s3バケットにcm4.binを追加し、OTAジョブを生成します。以下のリンクの手順に従い、OTAジョブを生成します。
FreeRTOSでCMakeを使用します
デモアプリケーションをビルドおよび実行するために、CMakeを代わりに使用できます。CMakeおよび本来のビルドシステムの設定はCMake Prerequisites を参照してください。
- ビルドファイルを生成するには以下のコマンドを使用してください。-DBOARDオプションを介してターゲットボードを指定します。OTAを有効化するためには-DOTA_SUPPORT=1が指定されていることを確認してください。
cmake -DVENDOR=cypress -DBOARD=CY8CKIT_064S0S2_4343W -DCOMPILER=arm-gcc -S <freertos> -B <build_dir> -DOTA_SUPPORT=1
Windowsを使用している場合、CMakeは初期値でVisual Studioを使用するため、-G オプションを使用して本来のビルドシステムを指定する必要があります。例として、
cmake -DVENDOR=cypress -DBOARD=CY8CPROTO_064S0S2_4343W -DCOMPILER=arm-gcc -S <freertos> -B <build_dir> -DOTA_SUPPORT=1 -G Ninja
arm-none-eabi-gccがシェルパスにない場合、AFR_TOOLCHAIN_PATH CMake変数も設定する必要があります。例として、
-DAFR_TOOLCHAIN_PATH=/home/user/opt/gcc-arm-none-eabi/bin
2.CMakeを使用してプロジェクトをビルドするために以下のコマンドを使用します。
CMake --build <build_dir>
3.最後に、Cypressプログラマーを使用して<build_dir>の下に生成されたcm4.elfファイルをプログラムするか、更新イメージとしてcm4.binを使用します。
クラウド上のOTAジョブの監視
アクティブなOTAジョブを監視するためにAWS IoTコンソールが使用できます。
- AWS IoT consoleにサインインします。
- ナビゲーションペインで、Manageを選択し、Jobsを選びます。
- 生成したジョブはリストに表示されます。
デバッグ
デバッグは、ModusToolbox Eclipseを介して実行され、手順はGetting Started Guideに記載されている通りです。
追加のヘルプ
更に質問がある、または技術的サポートが必要な場合、Cypress Developer Communityに連絡してください。
添付
OTA UPDATES WITH AWS AND THE CY8CKIT-064S0S2-4343W - KBA231112.pdf