Skip to content

Commit 13dfa5e

Browse files
committed
edits
1 parent ce0a6c2 commit 13dfa5e

File tree

2 files changed

+29
-30
lines changed

2 files changed

+29
-30
lines changed

articles/iot-hub-device-update/device-update-agent-overview.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Understand Azure Device Update for IoT Hub agent
2+
title: Azure Device Update for IoT Hub agent overview
33
description: Understand the structure and functions of the Azure Device Update for IoT Hub agent.
44
author: eshashah-msft
55
ms.author: eshashah
@@ -11,12 +11,12 @@ ms.subservice: device-update
1111

1212
# Device Update for IoT Hub agent overview
1313

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:
1515

1616
- 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.
1818

19-
The following diagram shows agent implementations.
19+
The following diagram lists Device Update agent capabilities and actions.
2020

2121
:::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

@@ -28,33 +28,33 @@ The interface layer is made up of the following components:
2828
- [Device information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/agent/device_info_interface)
2929
- [Diagnostic information interface](https://github.com/Azure/iot-hub-device-update/tree/main/src/diagnostics_component/diagnostics_interface)
3030

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).
3232

3333
### Device Update core interface
3434

3535
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.
3636

3737
### Device information interface
3838

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.
4040

4141
### Diagnostic information interface
4242

4343
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.
4444

4545
## Platform layer
4646

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.
4848

4949
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.
5050

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).
5252

53-
### Update handlers
53+
## Update handlers
5454

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.
5656

57-
## Check and upgrade Device Update agent version
57+
## Check and upgrade agent version
5858

5959
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).
6060

articles/iot-hub-device-update/device-update-agent-provisioning.md

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ The Device Update module agent can run along with other system processes and [Io
1818
1919
## Module identity and device identity
2020

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).
2222

2323
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.
2424

@@ -59,15 +59,14 @@ To prepare an IoT device or IoT Edge device to install [package based updates](.
5959
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
6060
```
6161

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`.
6363

64-
## Provision the Device Update agent
64+
<a name="on-iot-edge-enabled-devices"></a>
65+
## Install and provision the agent
6566

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).
6768

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:
7170

7271
```shell
7372
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
8180

8281
### Prepare the device
8382

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).
8584

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).
8786

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).
9190

9291
### Install and configure the Device Update agent
9392

@@ -97,32 +96,32 @@ For a non-IoT Edge enabled device:
9796
sudo apt-get install deviceupdate-agent
9897
```
9998

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.
101100

102101
```shell
103102
sudo nano /etc/adu/du-config.json
104103
```
105104

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).
107106

108107
### Other IoT devices
109108

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.
111110

112111
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.
113112

114113
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:
115114

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`.
118117

119118
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).
120119

121120
## Start the Device Update agent
122121

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.
124123

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:
126125

127126
```shell
128127
sudo systemctl restart deviceupdate-agent

0 commit comments

Comments
 (0)