Skip to content

Commit f00886d

Browse files
authored
Merge pull request #50189 from kgremban/aug27-installation
Clarify and cross link installation docs
2 parents 813f87a + 7b8ed12 commit f00886d

File tree

4 files changed

+139
-48
lines changed

4 files changed

+139
-48
lines changed

articles/iot-edge/how-to-install-iot-edge-linux-arm.md

Lines changed: 56 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
---
2-
title: How to install Azure IoT Edge on Linux | Microsoft Docs
3-
description: Azure IoT Edge installation instructions on Linux on ARM32
2+
title: Install Azure IoT Edge on Linux ARM32 | Microsoft Docs
3+
description: Azure IoT Edge installation instructions on Linux on ARM32 devices, like a Raspberry PI
44
author: kgremban
55
manager: timlt
66
# this is the PM responsible
77
ms.reviewer: veyalla
88
ms.service: iot-edge
99
services: iot-edge
1010
ms.topic: conceptual
11-
ms.date: 08/14/2018
11+
ms.date: 08/27/2018
1212
ms.author: kgremban
1313
---
1414
# Install Azure IoT Edge runtime on Linux (ARM32v7/armhf)
1515

16-
The Azure IoT Edge runtime is deployed on all IoT Edge devices. It has three components. The **IoT Edge security daemon** provides and maintains security standards on the Edge device. The daemon starts on every boot and bootstraps the device by starting the IoT Edge agent. The **IoT Edge agent** facilitates deployment and monitoring of modules on the Edge device, including the IoT Edge hub. The **IoT Edge hub** manages communications between modules on the IoT Edge device, and between the device and IoT Hub.
16+
The Azure IoT Edge runtime is what turns a device into an IoT Edge device. The runtime can be deployed on devices as small as a Raspberry Pi or as large as an industrial server. Once a device is configured with the IoT Edge runtime, you can start deploying business logic to it from the cloud.
1717

18-
This article lists the steps to install the Azure IoT Edge runtime on a Linux ARM32v7/armhf Edge device (for example, Raspberry Pi).
18+
To learn more about how the IoT Edge runtime works and what components are included, see [Understand the Azure IoT Edge runtime and its architecture](iot-edge-runtime.md).
19+
20+
This article lists the steps to install the Azure IoT Edge runtime on a Linux ARM32v7/armhf Edge device. For example, these steps would work for Raspberry Pi devices. Refer to [Azure IoT Edge support](support.md#operating-systems) for a list of ARM32 operating systems that are currently supported.
1921

2022
>[!NOTE]
2123
>Packages in the Linux software repositories are subject to the license terms located in each package (/usr/share/doc/*package-name*). Read the license terms prior to using the package. Your installation and use of the package constitutes your acceptance of these terms. If you do not agree with the license terms, do not use the package.
@@ -26,7 +28,7 @@ Azure IoT Edge relies on an [OCI-compatible][lnk-oci] container runtime. For pro
2628

2729
Commands below install both the Moby-based engine and command-line interface (CLI). The CLI is useful for development but optional for production deployments.
2830

29-
```cmd/sh
31+
```bash
3032

3133
# You can copy the entire text from this code block and
3234
# paste in terminal. The comment lines will be ignored.
@@ -44,7 +46,10 @@ sudo apt-get install -f
4446

4547
## Install the IoT Edge Security Daemon
4648

47-
```cmd/sh
49+
The **IoT Edge security daemon** provides and maintains security standards on the Edge device. The daemon starts on every boot and bootstraps the device by starting the rest of the IoT Edge runtime.
50+
51+
52+
```bash
4853
# You can copy the entire text from this code block and
4954
# paste in terminal. The comment lines will be ignored.
5055

@@ -58,18 +63,26 @@ curl -L https://aka.ms/iotedged-linux-armhf-latest -o iotedge.deb && sudo dpkg -
5863
sudo apt-get install -f
5964
```
6065

61-
## Configure the Azure IoT Edge Security Daemon
66+
## Connect your device to an IoT hub
6267

68+
Configure the IoT Edge runtime to link your physical device with a device identity that exists in an Azure IoT hub.
6369

6470
The daemon can be configured using the configuration file at `/etc/iotedge/config.yaml`. The file is write-protected by default, you might need elevated permissions to edit it.
6571

72+
A single IoT Edge device can be provisioned manually using a device connections string provided by IoT Hub. Or, you can use the Device Provisioning Service to automatically provision devices, which is helpful when you have many devices to provision. Depending on your provisioning choice, choose the appropriate installation script.
73+
74+
### Option 1: Manual provisioning
75+
76+
To manually provision a device, you need to provide it with a [device connection string][lnk-dcs] that you can create by registering a new device in your IoT hub.
77+
78+
79+
Open the configuration file.
80+
6681
```bash
6782
sudo nano /etc/iotedge/config.yaml
6883
```
6984

70-
The edge device can be configured manually using a [device connection string][lnk-dcs] or [automatically via Device Provisioning Service][lnk-dps].
71-
72-
* For manual configuration, uncomment the **manual** provisioning mode. Update the value of **device_connection_string** with the connection string from your IoT Edge device.
85+
Find the provisioning section of the file and uncomment the **manual** provisioning mode. Update the value of **device_connection_string** with the connection string from your IoT Edge device.
7386

7487
```yaml
7588
provisioning:
@@ -83,7 +96,27 @@ The edge device can be configured manually using a [device connection string][ln
8396
# registration_id: "{registration_id}"
8497
```
8598

86-
* For automatic configuration, uncomment the **dps** provisioning mode. Update the values of **scope_id** and **registration_id** with the values from your IoT Hub DPS instance and your IoT Edge device with TPM.
99+
Save and close the file.
100+
101+
`CTRL + X`, `Y`, `Enter`
102+
103+
After entering the provisioning information in the configuration file, restart the daemon:
104+
105+
```bash
106+
sudo systemctl restart iotedge
107+
```
108+
109+
### Option 2: Automatic provisioning
110+
111+
To automatically provision a device, [set up Device Provisioning Service and retrieve your device registration ID][lnk-dps]. Automatic provisioning only works with devices that have a Trusted Platform Module (TPM) chip. For example, Raspberry Pi devices do not come with TPM by default.
112+
113+
Open the configuration file.
114+
115+
```bash
116+
sudo nano /etc/iotedge/config.yaml
117+
```
118+
119+
Find the provisioning section of the file and uncomment the **dps** provisioning mode. Update the values of **scope_id** and **registration_id** with the values from your IoT Hub Device Provisioning service and your IoT Edge device with TPM.
87120

88121
```yaml
89122
# provisioning:
@@ -101,43 +134,44 @@ Save and close the file.
101134
102135
`CTRL + X`, `Y`, `Enter`
103136

104-
After entering the provisioning information in the configuration, restart the daemon:
137+
After entering the provisioning information in the configuration file, restart the daemon:
105138

106-
```cmd/sh
139+
```bash
107140
sudo systemctl restart iotedge
108141
```
109142

110-
>[!TIP]
111-
>You need elevated privileges to run `iotedge` commands. Once you sign out of your machine and sign back in the first time after installing the IoT Edge runtime, your permissions are automatically updated. Until then, use **sudo** in front of the commands.
112143

113144
## Verify successful installation
114145

115146
If you used the **manual configuration** steps in the previous section, the IoT Edge runtime should be successfully provisioned and running on your device. If you used the **automatic configuration** steps, then you need to complete some additional steps so that the runtime can register your device with your IoT hub on your behalf. For next steps, see [Create and provision a simulated TPM Edge device on a Linux virtual machine](how-to-auto-provision-simulated-device-linux.md#give-iot-edge-access-to-the-tpm).
116147

117148
You can check the status of the IoT Edge Daemon using:
118149

119-
```cmd/sh
150+
```bash
120151
systemctl status iotedge
121152
```
122153

123154
Examine daemon logs using:
124155

125-
```cmd/sh
156+
```bash
126157
journalctl -u iotedge --no-pager --no-full
127158
```
128159

129160
And, list running modules with:
130161

131-
```cmd/sh
162+
```bash
132163
sudo iotedge list
133164
```
134-
>[!NOTE]
135-
>On resource constrained devices like RaspberryPi, it is highly recommended that *OptimizeForPerformance* environment variable is set to *false* as per instructions in the [troubleshooting guide.][lnk-trouble]
136165

166+
## Tips and suggestions
167+
168+
You need elevated privileges to run `iotedge` commands. After installing the runtime, sign out of your machine and sign back in to update your permissions automatically. Until then, use **sudo** in front of any `iotedge` the commands.
169+
170+
On resource constrained devices, it is highly recommended that you set the *OptimizeForPerformance* environment variable to *false* as per instructions in the [troubleshooting guide][lnk-trouble].
137171

138172
## Next steps
139173

140-
If you are having problems with the Edge runtime installing properly, checkout the [troubleshooting][lnk-trouble] page.
174+
If you are having problems with the Edge runtime installing properly, refer to the [troubleshooting][lnk-trouble] page.
141175

142176
<!-- Links -->
143177
[lnk-dcs]: how-to-register-device-portal.md

articles/iot-edge/how-to-install-iot-edge-linux.md

Lines changed: 67 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,27 @@ ms.reviewer: veyalla
88
ms.service: iot-edge
99
services: iot-edge
1010
ms.topic: conceptual
11-
ms.date: 08/14/2018
11+
ms.date: 08/27/2018
1212
ms.author: kgremban
1313
---
1414
# Install the Azure IoT Edge runtime on Linux (x64)
1515

16-
The Azure IoT Edge runtime is deployed on all IoT Edge devices. It has three components. The **IoT Edge security daemon** provides and maintains security standards on the Edge device. The daemon starts on every boot and bootstraps the device by starting the IoT Edge agent. The **IoT Edge agent** facilitates deployment and monitoring of modules on the Edge device, including the IoT Edge hub. The **IoT Edge hub** manages communications between modules on the IoT Edge device, and between the device and IoT Hub.
16+
The Azure IoT Edge runtime is what turns a device into an IoT Edge device. The runtime can be deployed on devices as small as a Raspberry Pi or as large as an industrial server. Once a device is configured with the IoT Edge runtime, you can start deploying business logic to it from the cloud.
1717

18-
This article lists the steps to install the Azure IoT Edge runtime on your Linux x64 (Intel/AMD) Edge device.
18+
To learn more about how the IoT Edge runtime works and what components are included, see [Understand the Azure IoT Edge runtime and its architecture](iot-edge-runtime.md).
19+
20+
This article lists the steps to install the Azure IoT Edge runtime on your Linux x64 (Intel/AMD) Edge device. Refer to [Azure IoT Edge support](support.md#operating-systems) for a list of AMD64 operating systems that are currently supported.
1921

2022
>[!NOTE]
2123
>Packages in the Linux software repositories are subject to the license terms located in each package (/usr/share/doc/*package-name*). Read the license terms prior to using the package. Your installation and use of the package constitutes your acceptance of these terms. If you do not agree with the license terms, do not use the package.
2224
2325
## Register Microsoft key and software repository feed
2426

27+
Depending on your operating system, choose the appropriate scripts to prepare your device for the IoT Edge runtime installation.
28+
2529
### Ubuntu 16.04
2630

27-
```cmd/sh
31+
```bash
2832
# Install repository configuration
2933
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > ./microsoft-prod.list
3034
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
@@ -36,7 +40,7 @@ sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
3640

3741
### Ubuntu 18.04
3842

39-
```cmd/sh
43+
```bash
4044
# Install repository configuration
4145
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > ./microsoft-prod.list
4246
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
@@ -73,24 +77,42 @@ sudo apt-get install moby-cli
7377

7478
## Install the Azure IoT Edge Security Daemon
7579

76-
Commands below will also install the standard version of the **iothsmlib** if not already present.
80+
The **IoT Edge security daemon** provides and maintains security standards on the Edge device. The daemon starts on every boot and bootstraps the device by starting the rest of the IoT Edge runtime.
81+
82+
The installation command also installs the standard version of the **iothsmlib** if not already present.
83+
84+
Update apt-get.
7785

7886
```bash
7987
sudo apt-get update
88+
```
89+
90+
Install the security daemon. The package is installed at `/etc/iotedge/`.
91+
92+
```bash
8093
sudo apt-get install iotedge
8194
```
8295

8396
## Configure the Azure IoT Edge Security Daemon
8497

98+
Configure the IoT Edge runtime to link your physical device with a device identity that exists in an Azure IoT hub.
99+
85100
The daemon can be configured using the configuration file at `/etc/iotedge/config.yaml`. The file is write-protected by default, you might need elevated permissions to edit it.
86101

102+
A single IoT Edge device can be provisioned manually using a device connections string provided by IoT Hub. Or, you can use the Device Provisioning Service to automatically provision devices, which is helpful when you have many devices to provision. Depending on your provisioning choice, choose the appropriate installation script.
103+
104+
### Option 1: Manual provisioning
105+
106+
To manually provision a device, you need to provide it with a [device connection string][lnk-dcs] that you can create by registering a new device in your IoT hub.
107+
108+
109+
Open the configuration file.
110+
87111
```bash
88112
sudo nano /etc/iotedge/config.yaml
89113
```
90114

91-
The edge device can be configured manually using a [device connection string][lnk-dcs] or [automatically via Device Provisioning Service][lnk-dps].
92-
93-
* For manual configuration, uncomment the **manual** provisioning mode. Update the value of **device_connection_string** with the connection string from your IoT Edge device.
115+
Find the provisioning section of the file and uncomment the **manual** provisioning mode. Update the value of **device_connection_string** with the connection string from your IoT Edge device.
94116

95117
```yaml
96118
provisioning:
@@ -104,7 +126,27 @@ The edge device can be configured manually using a [device connection string][ln
104126
# registration_id: "{registration_id}"
105127
```
106128

107-
* For automatic configuration, uncomment the **dps** provisioning mode. Update the values of **scope_id** and **registration_id** with the values from your IoT Hub DPS instance and your IoT Edge device with TPM.
129+
Save and close the file.
130+
131+
`CTRL + X`, `Y`, `Enter`
132+
133+
After entering the provisioning information in the configuration file, restart the daemon:
134+
135+
```bash
136+
sudo systemctl restart iotedge
137+
```
138+
139+
### Option 2: Automatic provisioning
140+
141+
To automatically provision a device, [set up Device Provisioning Service and retrieve your device registration ID][lnk-dps] (DPS). Automatic provisioning only works with devices that have a Trusted Platform Module (TPM) chip. For example, Raspberry Pi devices do not come with TPM by default.
142+
143+
Open the configuration file.
144+
145+
```bash
146+
sudo nano /etc/iotedge/config.yaml
147+
```
148+
149+
Find the provisioning section of the file and uncomment the **dps** provisioning mode. Update the values of **scope_id** and **registration_id** with the values from your IoT Hub Device Provisioning Service and your IoT Edge device with TPM.
108150

109151
```yaml
110152
# provisioning:
@@ -118,37 +160,44 @@ The edge device can be configured manually using a [device connection string][ln
118160
registration_id: "{registration_id}"
119161
```
120162
121-
After entering the provisioning information in the configuration, restart the daemon:
163+
Save and close the file.
122164
123-
```cmd/sh
165+
`CTRL + X`, `Y`, `Enter`
166+
167+
After entering the provisioning information in the configuration file, restart the daemon:
168+
169+
```bash
124170
sudo systemctl restart iotedge
125171
```
126172

127-
>[!TIP]
128-
>You need elevated privileges to run `iotedge` commands. Once you sign out of your machine and sign back in the first time after installing the IoT Edge runtime, your permissions are automatically updated. Until then, use **sudo** in front of the commands.
129-
130173
## Verify successful installation
131174

132175
If you used the **manual configuration** steps in the previous section, the IoT Edge runtime should be successfully provisioned and running on your device. If you used the **automatic configuration** steps, then you need to complete some additional steps so that the runtime can register your device with your IoT hub on your behalf. For next steps, see [Create and provision a simulated TPM Edge device on a Linux virtual machine](how-to-auto-provision-simulated-device-linux.md#give-iot-edge-access-to-the-tpm).
133176

134177
You can check the status of the IoT Edge Daemon using:
135178

136-
```cmd/sh
179+
```bash
137180
systemctl status iotedge
138181
```
139182

140183
Examine daemon logs using:
141184

142-
```cmd/sh
185+
```bash
143186
journalctl -u iotedge --no-pager --no-full
144187
```
145188

146189
And, list running modules with:
147190

148-
```cmd/sh
191+
```bash
149192
sudo iotedge list
150193
```
151194

195+
## Tips and suggestions
196+
197+
You need elevated privileges to run `iotedge` commands. After installing the runtime, sign out of your machine and sign back in to update your permissions automatically. Until then, use **sudo** in front of any `iotedge` the commands.
198+
199+
On resource constrained devices, it is highly recommended that you set the *OptimizeForPerformance* environment variable to *false* as per instructions in the [troubleshooting guide][lnk-trouble].
200+
152201
## Next steps
153202

154203
If you are having problems with the Edge runtime installing properly, check out the [troubleshooting][lnk-trouble] page.

0 commit comments

Comments
 (0)