You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-hub-device-update/device-update-agent-overview.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Understand Azure Device Update for IoT Hub agent
2
+
title: Azure Device Update for IoT Hub agent overview
3
3
description: Understand the structure and functions of the Azure Device Update for IoT Hub agent.
4
4
author: eshashah-msft
5
5
ms.author: eshashah
@@ -11,12 +11,12 @@ ms.subservice: device-update
11
11
12
12
# Device Update for IoT Hub agent overview
13
13
14
-
This article summarizes the structure and function of the Azure Device Update for IoT Hub agent. The Device Update agent consists of two conceptual layers:
14
+
The Device Update agent consists of two conceptual layers:
15
15
16
16
- The *interface layer* builds on top of [Azure IoT Plug and Play](../iot/overview-iot-plug-and-play.md) to allow messages to flow between the Device Update agent and the Device Update service.
17
-
- The *platform layer*performs the high-level download, install, and apply update actions, which can be platform- or device-specific.
17
+
- The *platform layer*does the high-level update download, install, and apply actions, which can be platform- or device-specific.
18
18
19
-
The following diagram shows agent implementations.
19
+
The following diagram lists Device Update agent capabilities and actions.
20
20
21
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":::
22
22
@@ -28,33 +28,33 @@ The interface layer is made up of the following components:
28
28
-[Device information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/agent/device_info_interface)
29
29
-[Diagnostic information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/diagnostics_component/diagnostics_interface)
30
30
31
-
These interfaces use 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).
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).
32
32
33
33
### Device Update core interface
34
34
35
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.
36
36
37
37
### Device information interface
38
38
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.
39
+
The [device information interface](https://github.com/Azure/iot-plugandplay-models/blob/main/dtmi/azure/devicemanagement/deviceinformation-1.json) implements the Azure IoT `DeviceInformation` interface.
40
40
41
41
### Diagnostic information interface
42
42
43
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.
44
44
45
45
## Platform layer
46
46
47
-
The Linux platform layer integrates with the [Delivery Optimization client](https://github.com/microsoft/do-client/releases) for downloads. All clients that run on Linux systems, such as the Device Update Raspberry Pi reference image, use the Linux platform layer.
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.
48
48
49
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.
50
50
51
-
If you choose to implement with 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).
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).
52
52
53
-
###Update handlers
53
+
## Update handlers
54
54
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.
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.
56
56
57
-
## Check and upgrade Device Update agent version
57
+
## Check and upgrade agent version
58
58
59
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).
Copy file name to clipboardExpand all lines: articles/iot-hub-device-update/device-update-agent-provisioning.md
+18-19Lines changed: 18 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ The Device Update module agent can run along with other system processes and [Io
18
18
19
19
## Module identity and device identity
20
20
21
-
You can create up to 50 module identities under each Azure IoT Hub device identity. Each Module Identity implicitly generates a Module Identity Twin. On the device side, you can use the IoT Hub device SDKs to create modules that each open an independent connection to IoT Hub. Module Identity and Module Identity Twin provide capabilities similar to device identity and device twin, but at a finer granularity. For more information, see [Understand and use module twins in IoT Hub](../iot-hub/iot-hub-devguide-module-twins.md)
21
+
You can create up to 50 module identities under each Azure IoT Hub device identity. Each Module Identity implicitly generates a Module Identity Twin. On the device side, you can use the IoT Hub device SDKs to create modules that each open an independent connection to IoT Hub. Module Identity and Module Identity Twin provide capabilities similar to device identity and device twin, but at a finer granularity. For more information, see [Understand and use module twins in IoT Hub](../iot-hub/iot-hub-devguide-module-twins.md).
22
22
23
23
When you provision the Device Update agent as a Module Identity, all [communications](device-update-plug-and-play.md) between the device and the Device Update service must happen over the Module Twin. Remember to tag the Module Twin of the device when you create [groups](device-update-groups.md). If you migrate from a device-level agent to adding the agent as a Module Identity, remove the older agent that communicated over the device twin.
24
24
@@ -59,15 +59,14 @@ To prepare an IoT device or IoT Edge device to install [package based updates](.
59
59
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
60
60
```
61
61
62
-
1.Update package lists on your device by running `sudo apt-get update`.
62
+
Update package lists on your device by running `sudo apt-get update`.
63
63
64
-
## Provision the Device Update agent
64
+
<aname="on-iot-edge-enabled-devices"></a>
65
+
## Install and provision the agent
65
66
66
-
This section describes how to provision the Device Update agent as a Module Identity on IoT Edge enabled devices or non-IoT Edge IoT devices. To check if you have IoT Edge enabled on your device, see [View registered devices and retrieve provisioning information](../iot-edge/how-to-provision-single-device-linux-symmetric.md?preserve-view=true&view=iotedge-2020-11#view-registered-devices-and-retrieve-provisioning-information).
67
+
You can download and unzip sample images from the **Assets**section on the [Releases](https://github.com/Azure/iot-hub-device-update/releases) page. In *Tutorial_RaspberryPi3.zip*, the *swUpdate* file is the base image that you can flash onto a Raspberry Pi B3+ board. The *.gz* file is the update you import through Device Update. For more information, see [Use bmaptool to flash the SD card](./device-update-raspberry-pi.md#use-bmaptool-to-flash-the-sd-card).
67
68
68
-
- You can download and unzip sample images from the **Assets** section of the latest release on the [Releases](https://github.com/Azure/iot-hub-device-update/releases) page. In *Tutorial_RaspberryPi3.zip*, the *swUpdate* file is the base image that you can flash onto a Raspberry Pi B3+ board. For an example, see [Use bmaptool to flash the SD card](./device-update-raspberry-pi.md#use-bmaptool-to-flash-the-sd-card). The *.gz* file is the update you import through Device Update.
69
-
70
-
- For any release candidate (rc) agent versions, download the *.deb* file from [Releases](https://github.com/Azure/iot-hub-device-update/releases) to the machine you want to install the Device Update agent on, and then run the following command:
69
+
- For release candidate (rc) agent versions, download the *.deb* file from [Releases](https://github.com/Azure/iot-hub-device-update/releases) to the machine you want to install the Device Update agent on, and then run the following command:
71
70
72
71
```shell
73
72
sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
@@ -81,13 +80,13 @@ This section describes how to provision the Device Update agent as a Module Iden
81
80
82
81
### Prepare the device
83
82
84
-
To check if you have IoT Edge enabled on your device, see [View registered devices and retrieve provisioning information](../iot-edge/how-to-provision-single-device-linux-symmetric.md?preserve-view=true&view=iotedge-2020-11#view-registered-devices-and-retrieve-provisioning-information).
83
+
You can provision the Device Update agent as a Module Identity on IoT Edge enabled devices or non-IoT Edge IoT devices. To check if you have IoT Edge enabled on your device, see [View registered devices and retrieve provisioning information](../iot-edge/how-to-provision-single-device-linux-symmetric.md?preserve-view=true&view=iotedge-2020-11#view-registered-devices-and-retrieve-provisioning-information).
85
84
86
-
For an [IoT Edge enabled device](../iot-edge/index.yml), follow the instructions at [Manually provision a single Linux IoT Edge device](../iot-edge/how-to-provision-single-device-linux-symmetric.md?preserve-view=true&view=iotedge-2020-11#install-iot-edge).
85
+
-For an [IoT Edge enabled device](../iot-edge/index.yml), follow the instructions at [Manually provision a single Linux IoT Edge device](../iot-edge/how-to-provision-single-device-linux-symmetric.md?preserve-view=true&view=iotedge-2020-11#install-iot-edge).
87
86
88
-
For a non-IoT Edge enabled device:
89
-
1. Install the latest version of the IoT Identity Service by following instructions in [Installing the Azure IoT Identity Service](https://azure.github.io/iot-identity-service/installation.html#install-from-packagesmicrosoftcom).
90
-
1. Configure the IoT Identity Service by following the instructions in [Configuring the Azure IoT Identity Service](https://azure.github.io/iot-identity-service/configuration.html).
87
+
-For a non-IoT Edge enabled device:
88
+
1. Install the latest version of the IoT Identity Service by following instructions in [Installing the Azure IoT Identity Service](https://azure.github.io/iot-identity-service/installation.html#install-from-packagesmicrosoftcom).
89
+
1. Configure the IoT Identity Service by following the instructions in [Configuring the Azure IoT Identity Service](https://azure.github.io/iot-identity-service/configuration.html).
91
90
92
91
### Install and configure the Device Update agent
93
92
@@ -97,32 +96,32 @@ For a non-IoT Edge enabled device:
97
96
sudo apt-get install deviceupdate-agent
98
97
```
99
98
100
-
1. After you install the device update agent, edit the Device Update configuration file by running the following command. In the file, set all values that have a `Place value here` placeholder.
99
+
1. After you install the device update agent, edit the Device Update configuration file by running the following command.
101
100
102
101
```shell
103
102
sudo nano /etc/adu/du-config.json
104
103
```
105
104
106
-
Change the `connectionType` to `AIS` for agents that use the IoT Identity Service for provisioning, and set the `ConnectionData` field to an empty string. For an example, see [Example "du-config.json" file contents](./device-update-configuration-file.md#example-du-configjson-file-contents).
105
+
1. In the *du-config.json* file, set all values that have a `Place value here` placeholder. For agents that use the IoT Identity Service for provisioning, change the `connectionType` to `AIS`, and set the `ConnectionData` field to an empty string. For an example, see [Example "du-config.json" file contents](./device-update-configuration-file.md#example-du-configjson-file-contents).
107
106
108
107
### Other IoT devices
109
108
110
-
You can also configure the Device Update agent without the IoT Identity service for testing or on constrained devices. You can provision the Device Update agent from the Module or device by using a connection string.
109
+
For testing or on constrained devices, you can also configure the Device Update agent without using the IoT Identity service. You can use a connection string to provision the Device Update agent from the module or device.
111
110
112
111
1. In the Azure portal, copy the primary connection string. If the Device Update agent is configured as a Module Identity, copy the module's primary connection string. Otherwise, copy the device's primary connection string.
113
112
114
113
1. In a Terminal window on the machine or IoT device where you installed the Device Update agent, edit the [Device Update configuration file](device-update-configuration-file.md) by running the following command:
115
114
116
-
- For an [Ubuntu agent](device-update-ubuntu-agent.md) run`sudo nano /etc/adu/du-config.json`.
117
-
- For a [Yocto reference image](device-update-raspberry-pi.md), run`sudo nano /adu/du-config.json`.
115
+
- For an [Ubuntu agent](device-update-ubuntu-agent.md):`sudo nano /etc/adu/du-config.json`.
116
+
- For a [Yocto reference image](device-update-raspberry-pi.md):`sudo nano /adu/du-config.json`.
118
117
119
118
1. In the *du-config.json* file, set all values that have a `Place value here` placeholder, and enter the copied primary connection string as the `connectionData` field value. For an example, see [Example "du-config.json" file contents](./device-update-configuration-file.md#example-du-configjson-file-contents).
120
119
121
120
## Start the Device Update agent
122
121
123
-
Start the Device Update agent and verify that it's running successfully on your IoT device.
122
+
Start the Device Update agent and verify that it's running successfully on your device.
124
123
125
-
1. In a Terminal window on the machine or IoT device where you installed the Device Update agent, enter the following command:
124
+
1. In a Terminal window on the machine or IoT device where you installed the Device Update agent, restart the agent by running the following command:
0 commit comments