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-edge/how-to-install-iot-edge-linux-arm.md
+56-22Lines changed: 56 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,23 @@
1
1
---
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
4
4
author: kgremban
5
5
manager: timlt
6
6
# this is the PM responsible
7
7
ms.reviewer: veyalla
8
8
ms.service: iot-edge
9
9
services: iot-edge
10
10
ms.topic: conceptual
11
-
ms.date: 08/14/2018
11
+
ms.date: 08/27/2018
12
12
ms.author: kgremban
13
13
---
14
14
# Install Azure IoT Edge runtime on Linux (ARM32v7/armhf)
15
15
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.
17
17
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.
19
21
20
22
>[!NOTE]
21
23
>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
26
28
27
29
Commands below install both the Moby-based engine and command-line interface (CLI). The CLI is useful for development but optional for production deployments.
28
30
29
-
```cmd/sh
31
+
```bash
30
32
31
33
# You can copy the entire text from this code block and
32
34
# paste in terminal. The comment lines will be ignored.
@@ -44,7 +46,10 @@ sudo apt-get install -f
44
46
45
47
## Install the IoT Edge Security Daemon
46
48
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
48
53
# You can copy the entire text from this code block and
49
54
# paste in terminal. The comment lines will be ignored.
Configure the IoT Edge runtime to link your physical device with a device identity that exists in an Azure IoT hub.
63
69
64
70
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.
65
71
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
+
66
81
```bash
67
82
sudo nano /etc/iotedge/config.yaml
68
83
```
69
84
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.
73
86
74
87
```yaml
75
88
provisioning:
@@ -83,7 +96,27 @@ The edge device can be configured manually using a [device connection string][ln
83
96
# registration_id: "{registration_id}"
84
97
```
85
98
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.
87
120
88
121
```yaml
89
122
# provisioning:
@@ -101,43 +134,44 @@ Save and close the file.
101
134
102
135
`CTRL + X`, `Y`, `Enter`
103
136
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:
105
138
106
-
```cmd/sh
139
+
```bash
107
140
sudo systemctl restart iotedge
108
141
```
109
142
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.
112
143
113
144
## Verify successful installation
114
145
115
146
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).
116
147
117
148
You can check the status of the IoT Edge Daemon using:
118
149
119
-
```cmd/sh
150
+
```bash
120
151
systemctl status iotedge
121
152
```
122
153
123
154
Examine daemon logs using:
124
155
125
-
```cmd/sh
156
+
```bash
126
157
journalctl -u iotedge --no-pager --no-full
127
158
```
128
159
129
160
And, list running modules with:
130
161
131
-
```cmd/sh
162
+
```bash
132
163
sudo iotedge list
133
164
```
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]
136
165
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].
137
171
138
172
## Next steps
139
173
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.
Copy file name to clipboardExpand all lines: articles/iot-edge/how-to-install-iot-edge-linux.md
+67-18Lines changed: 67 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,23 +8,27 @@ ms.reviewer: veyalla
8
8
ms.service: iot-edge
9
9
services: iot-edge
10
10
ms.topic: conceptual
11
-
ms.date: 08/14/2018
11
+
ms.date: 08/27/2018
12
12
ms.author: kgremban
13
13
---
14
14
# Install the Azure IoT Edge runtime on Linux (x64)
15
15
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.
17
17
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.
19
21
20
22
>[!NOTE]
21
23
>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.
22
24
23
25
## Register Microsoft key and software repository feed
24
26
27
+
Depending on your operating system, choose the appropriate scripts to prepare your device for the IoT Edge runtime installation.
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.
77
85
78
86
```bash
79
87
sudo apt-get update
88
+
```
89
+
90
+
Install the security daemon. The package is installed at `/etc/iotedge/`.
91
+
92
+
```bash
80
93
sudo apt-get install iotedge
81
94
```
82
95
83
96
## Configure the Azure IoT Edge Security Daemon
84
97
98
+
Configure the IoT Edge runtime to link your physical device with a device identity that exists in an Azure IoT hub.
99
+
85
100
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.
86
101
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
+
87
111
```bash
88
112
sudo nano /etc/iotedge/config.yaml
89
113
```
90
114
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.
94
116
95
117
```yaml
96
118
provisioning:
@@ -104,7 +126,27 @@ The edge device can be configured manually using a [device connection string][ln
104
126
# registration_id: "{registration_id}"
105
127
```
106
128
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.
108
150
109
151
```yaml
110
152
# provisioning:
@@ -118,37 +160,44 @@ The edge device can be configured manually using a [device connection string][ln
118
160
registration_id: "{registration_id}"
119
161
```
120
162
121
-
After entering the provisioning information in the configuration, restart the daemon:
163
+
Save and close the file.
122
164
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
124
170
sudo systemctl restart iotedge
125
171
```
126
172
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
-
130
173
## Verify successful installation
131
174
132
175
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).
133
176
134
177
You can check the status of the IoT Edge Daemon using:
135
178
136
-
```cmd/sh
179
+
```bash
137
180
systemctl status iotedge
138
181
```
139
182
140
183
Examine daemon logs using:
141
184
142
-
```cmd/sh
185
+
```bash
143
186
journalctl -u iotedge --no-pager --no-full
144
187
```
145
188
146
189
And, list running modules with:
147
190
148
-
```cmd/sh
191
+
```bash
149
192
sudo iotedge list
150
193
```
151
194
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
+
152
201
## Next steps
153
202
154
203
If you are having problems with the Edge runtime installing properly, check out the [troubleshooting][lnk-trouble] page.
0 commit comments