すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:OTAアップデートの失敗の原因は何ですか?

最終更新日:Apr 09, 2025

考えられる原因解決策説明
バッファサイズが小さすぎてダウンロード速度が遅く設定されています。 したがって、ダウンロードがタイムアウトし、無線 (OTA) 更新が失敗します。

aiot_download_setopt操作のAIOT_DLOPT_BODY_BUFFER_MAX_LENパラメーターの値を確認します。 パラメータ値を増やし、OTA更新を再開します。

Linux環境では、この値を2 KBに設定することを推奨します。

AIOT_DLOPT_BODY_BUFFER_MAX_LENは、ファームウェア関連のメッセージを受信するために使用されるバッファのサイズを指定します。

ダウンロードされたファームウェアがバッファを完全に占有すると、通知がデバイスに送信されます。 バッファサイズを増やすことで、通知の数を減らし、ダウンロード時間を短縮できます。 バッファサイズが小さすぎると、ダウンロードに時間がかかり、ネットワークジッタが発生しやすくなります。

マルチスレッドシステムでは、低速のダウンロードタスクがCPUを占有し、他のビジネスの通常の動作に影響を与えます。

OTA更新のタイムアウト期間が短すぎます。 更新タスクを開始するときに、[デバイスのアップグレードタイムアウト (分)] パラメーターの値を大きくします。 詳細については、「バッチ更新の開始」をご参照ください。

ビジネス要件に基づいてパラメーター値を設定します。 ネットワークジッタの影響を考慮する必要があります。

値が小さすぎて、デバイスが更新を完了せず、指定された期間内に新しいバージョン番号を送信しない場合、IoT Platformは更新が失敗したと判断し、ダウンロードチャネルを閉じます。

OTA更新スコープを [選択済みデバイス] に設定した場合、宛先デバイスは存在しません。 IoT Platformコンソールにログインし、指定されたデバイスのバージョン番号を確認します。 詳細については、「更新ステータスの表示」をご参照ください。

デバイスのバージョン番号が更新するバージョン番号と一致しない場合は、バージョン番号を再度送信し、OTA更新を再開します。

更新するデバイスがバージョン番号を送信しているかどうかを確認します。
  • いいえ: デバイスのバージョン番号を送信します。
  • はい: 送信されたバージョン番号が有効かどうかを確認します。 そうでない場合は、バージョン番号を再度送信してください。
デバイスはaiot_download_report_progress操作を呼び出して100% 更新の進行状況を送信しますが、IoT PlatformはOTA更新が失敗したと判断します。 OTAの更新が完了したら、aiot_ota_report_version操作を呼び出して、最新のバージョン番号を送信します。 IoT Platformは、ファームウェアのダウンロード率ではなく、送信されたバージョン番号に基づいてOTAの更新が成功したかどうかを判断します。
セグメント化されたダウンロードを構成すると、セグメント化設定は無効です。 セグメント化されたダウンロードに関連するパラメーターをリセットします。 詳細については、「」をご参照ください。 セグメント化されたダウンロードを設定するときは、セグメントが最初から最後までダウンロードされ、セグメント間に重複がないことを確認してください。

たとえば、[0, 1024][1024, 2048] のセグメントを設定すると、1024バイトが2回ダウンロードされます。 この場合、ダウンロードは失敗します。 [0, 1024][1025, 2048] に変更する必要があります。

ネットワークエラーが発生した場合。ネットワーク接続を確認します。 ネットワーク接続が復元されたら、もう一度お試しください。

ダウンロード中にネットワーク接続が終了した場合、デバイスはメッセージを受信できません。 一般的なエラーメッセージの例を次に示します。

ダウンロードに失敗、エラーコードは-3864、更新リクエストを送信