Skip to content

Commit 71a59c2

Browse files
author
Jill Grant
authored
Merge pull request #292034 from v-thepet/iot4
Freshness Edit: IoT-hub-device 4
2 parents bb86a3b + cd621a5 commit 71a59c2

File tree

4 files changed

+142
-180
lines changed

4 files changed

+142
-180
lines changed
Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: Understand Device Update for Azure IoT Hub Agent
3-
description: Understand Device Update for Azure IoT Hub Agent.
2+
title: Azure Device Update for IoT Hub agent overview
3+
description: Understand the structure and functions of the Azure Device Update for IoT Hub agent.
44
author: eshashah-msft
55
ms.author: eshashah
6-
ms.date: 9/12/2022
6+
ms.date: 12/19/2024
77
ms.topic: concept-article
88
ms.service: azure-iot-hub
99
ms.subservice: device-update
@@ -13,62 +13,58 @@ ms.subservice: device-update
1313

1414
The Device Update agent consists of two conceptual layers:
1515

16-
* The *interface layer* builds on top of [Azure IoT Plug and Play](../iot/overview-iot-plug-and-play.md), allowing for messaging to flow between the Device Update agent and Device Update service.
17-
* The *platform layer* is responsible for the high-level update actions of download, install, and apply that may be platform- or device-specific.
16+
- The *interface layer* builds on top of [Azure IoT Plug and Play](../iot/overview-iot-plug-and-play.md) (PnP) to allow messages to flow between the Device Update agent and the Device Update service.
17+
- The *platform layer* does the high-level update download, install, and apply actions, which can be platform- or device-specific.
1818

19-
:::image type="content" source="media/understand-device-update/client-agent-reference-implementations.png" alt-text="Agent Implementations." lightbox="media/understand-device-update/client-agent-reference-implementations.png":::
19+
The following diagram lists Device Update agent capabilities and actions.
2020

21-
## The interface layer
21+
:::image type="content" source="media/understand-device-update/client-agent-reference-implementations.png" alt-text="Diagram that shows agent implementations." border="false" lightbox="media/understand-device-update/client-agent-reference-implementations.png":::
2222

23-
The interface layer is made up of the [Device Update core interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/agent/adu_core_interface), [Device information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/agent/device_info_interface) and [Diagnostic information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/diagnostics_component/diagnostics_interface).
23+
## Interface layer
2424

25-
These interfaces rely on a configuration file for the device specific values that need to be reported to the Device Update services. For more information, see [Device Update configuration file](device-update-configuration-file.md).
25+
The interface layer is made up of the following components:
26+
27+
- [Device Update core interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/agent/adu_core_interface)
28+
- [Device information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/agent/device_info_interface)
29+
- [Diagnostic information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/diagnostics_component/diagnostics_interface)
30+
31+
These interfaces use a configuration file for the device specific values to report to Device Update services. For more information, see [Device Update configuration file](device-update-configuration-file.md).
2632

2733
### Device Update core interface
2834

29-
The *Device Update interface* is the primary communication channel between the Device Update agent and services. For more information, see [Device Update core interface](https://github.com/Azure/iot-plugandplay-models/blob/main/dtmi/azure/iot/deviceupdate-1.json).
35+
The [Device Update core interface](https://github.com/Azure/iot-plugandplay-models/blob/main/dtmi/azure/iot/deviceupdate-1.json) is the primary communication channel between the Device Update agent and Device Update services.
3036

3137
### Device information interface
3238

33-
The *device information interface* is used to implement the `Azure IoT PnP DeviceInformation` interface. For more information, see [Device information interface](https://github.com/Azure/iot-plugandplay-models/blob/main/dtmi/azure/devicemanagement/deviceinformation-1.json).
39+
The [device information interface](https://github.com/Azure/iot-plugandplay-models/blob/main/dtmi/azure/devicemanagement/deviceinformation-1.json) implements the Azure IoT PnP `DeviceInformation` interface.
3440

3541
### Diagnostic information interface
3642

37-
The *diagnostic information interface* is used to enable [remote log collection](device-update-diagnostics.md#remote-log-collection) for diagnostics. For more information, see [Device information interface](https://github.com/Azure/iot-plugandplay-models/blob/main/dtmi/azure/devicemanagement/deviceinformation-1.json).
38-
39-
## The platform Layer
43+
The [diagnostic information interface](https://github.com/Azure/iot-plugandplay-models/blob/main/dtmi/azure/iot/diagnosticinformation-1.json) enables [remote log collection](device-update-diagnostics.md#remote-log-collection) for diagnostics.
4044

41-
The Linux *platform layer* integrates with [Delivery Optimization](https://github.com/microsoft/do-client) for downloads and is used in our Raspberry Pi reference image, and all clients that run on Linux systems.
45+
## Platform layer
4246

43-
The Linux platform layer implementation can be found in the `src/platform_layers/linux_platform_layer` and it integrates with the [Delivery Optimization client](https://github.com/microsoft/do-client/releases) for downloads.
47+
All clients that run on Linux systems, such as the Device Update Raspberry Pi reference image, use the Linux platform layer. The Linux platform layer integrates with the [Delivery Optimization client](https://github.com/microsoft/do-client/releases) for downloads.
4448

45-
This layer can integrate with different update handlers to implement the
46-
installers. For instance, the `SWUpdate` update handler, `Apt` update handler, and `Script` update handler.
49+
The Linux platform layer implementation that integrates with [Delivery Optimization](https://github.com/microsoft/do-client) for downloads is in *src/platform_layers/linux_platform_layer*. This layer can integrate with update handlers such as `SWUpdate`, `Apt`, and `Script` to implement the installers.
4750

48-
If you choose to implement with your own downloader in place of Delivery Optimization, be sure to review the [requirements for large file downloads](device-update-limits.md).
51+
If you choose to implement your own downloader instead of Delivery Optimization, be sure to review the [requirements for large file downloads](device-update-limits.md#requirements-for-large-file-downloads).
4952

5053
## Update handlers
5154

52-
Update handlers are used to invoke installers or commands to do an over-the-air update. You can either use [existing update content handlers](https://github.com/Azure/iot-hub-device-update/blob/main/src/extensions/inc/aduc/content_handler.hpp) or [implement a custom content handler](https://github.com/Azure/iot-hub-device-update/tree/main/docs/agent-reference/how-to-implement-custom-update-handler.md) that can invoke any installer and execute the over-the-air update needed for your use case.
53-
54-
## Changes to Device Update agent at GA release
55-
56-
If you are using the Device Update agent versions, please migrate to the latest agent version 1.0.0 which is the GA version. See [GA agent for changes and how to upgrade](migration-public-preview-refresh-to-ga.md)
57-
58-
You can check installed version of the Device Update agent and the Delivery Optimization agent in the Device Properties section of your [IoT device twin](../iot-hub/iot-hub-devguide-device-twins.md). [Learn more about device properties under ADU Core Interface](device-update-plug-and-play.md#device-properties).
59-
60-
## Next Steps
61-
62-
[Understand Device Update agent configuration file](device-update-configuration-file.md)
63-
64-
You can use the following tutorials for a simple demonstration of Device Update for IoT Hub:
55+
Update handlers invoke installers or commands to do over-the-air updates. You can either use [existing update content handlers](https://github.com/Azure/iot-hub-device-update/blob/main/src/extensions/inc/aduc/content_handler.hpp), or implement a [custom content handler](https://github.com/Azure/iot-hub-device-update/tree/main/docs/agent-reference/how-to-implement-custom-update-handler.md) that can invoke any installer to execute the over-the-air updates you need for your use case.
6556

66-
* [Image Update: Getting Started with Raspberry Pi 3 B+ Reference Yocto Image](device-update-raspberry-pi.md) extensible via open source to build your own images for other architecture as needed.
57+
## Check and upgrade agent version
6758

68-
* [Package Update: Getting Started using Ubuntu Server 18.04 x64 Package agent](device-update-ubuntu-agent.md)
59+
You can check the installed versions of the Device Update agent and the Delivery Optimization agent in the [properties](device-update-plug-and-play.md#device-properties) section of your [IoT device twin](../iot-hub/iot-hub-devguide-device-twins.md).
6960

70-
* [Proxy Update: Getting Started using Device Update binary agent for downstream devices](device-update-howto-proxy-updates.md)
61+
If you use the Device Update agent, make sure you're on the version 1.0.0 general availability (GA) version. For more information, see [Migrate devices and groups to the latest Device Update release](migration-public-preview-refresh-to-ga.md).
7162

72-
* [Getting Started Using Ubuntu (18.04 x64) Simulator Reference Agent](device-update-simulator.md)
63+
## Related content
7364

74-
* [Device Update for Azure IoT Hub tutorial for Azure-Real-Time-Operating-System](device-update-azure-real-time-operating-system.md)
65+
- [Device Update for IoT Hub configuration file](device-update-configuration-file.md)
66+
- [Azure Device Update for IoT Hub using a Raspberry Pi image](device-update-raspberry-pi.md)
67+
- [Azure Device Update for IoT Hub using the Ubuntu package agent](device-update-ubuntu-agent.md)
68+
- [Tutorial: Complete a proxy update by using Device Update for Azure IoT Hub](device-update-howto-proxy-updates.md)
69+
- [Azure Device Update for IoT Hub using a simulator agent](device-update-simulator.md)
70+
- [Device Update for Azure IoT Hub using Eclipse ThreadX](device-update-azure-real-time-operating-system.md)

0 commit comments

Comments
 (0)