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/includes/debug-without-container-setup.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
ms.topic: include
3
-
ms.date: 07/08/2022
3
+
ms.date: 06/10/2024
4
4
author: PatAltimore
5
5
ms.author: patricka
6
6
ms.service: iot-edge
@@ -22,7 +22,7 @@ IoT Edge modules need an IoT Edge environment to run and debug. You can use an I
22
22
23
23
1. In the Visual Studio Code command palette, run the command **Azure IoT Edge: Start IoT Edge Hub Simulator for Single Module**.
24
24
1. Provide the names of any inputs that you want to test with your module. If you're using the default sample code, use the value **input1**.
25
-
1. The command triggers the **iotedgehubdev** CLI and then starts the IoT Edge simulator and a testing utility module container. You can see the output similar to the following in the integrated terminal if the simulator has been started in single module mode successfully. The output includes an example `curl` command to send a message to the simulator. You'll use the `curl` command later.
25
+
1. The command triggers the **iotedgehubdev** CLI and then starts the IoT Edge simulator and a testing utility module container. You can see the output similar to the following in the integrated terminal if the simulator is started in single module mode successfully. The output includes an example `curl` command to send a message to the simulator. You'll use the `curl` command later.
Copy file name to clipboardExpand all lines: articles/iot-edge/includes/iot-edge-install-linux-on-windows.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
ms.topic: include
3
-
ms.date: 01/25/2022
3
+
ms.date: 06/10/2024
4
4
author: PatAltimore
5
5
ms.author: patricka
6
6
ms.service: iot-edge
@@ -57,7 +57,7 @@ Deploy Azure IoT Edge for Linux on Windows on your target device.
57
57
>
58
58
>You can customize the virtual machine's available resources using the `Deploy-Eflow` command's optional parameters. This is required to deploy EFLOW on a device with the minimum hardware requirements.
59
59
>
60
-
>For example, the command below creates a virtual machine with 1 vCPU core, 1 GB of RAM (represented in MB), and 2 GB of disk space:
60
+
>For example, the following command creates a virtual machine with 1 vCPU core, 1 GB of RAM (represented in MB), and 2 GB of disk space:
@@ -68,7 +68,7 @@ Deploy Azure IoT Edge for Linux on Windows on your target device.
68
68
>[!WARNING]
69
69
>By default, the EFLOW Linux virtual machine has no DNS configuration. Deployments using DHCP will try to obtain the DNS configuration propagated by the DHCP server. Please check your DNS configuration to ensure internet connectivity. For more information, see [AzEFLOW-DNS](https://aka.ms/AzEFLOW-DNS).
70
70
71
-
You can assign a GPU to your deployment to enable GPU-accelerated Linux modules. To gain access to these features, you will need to install the prerequisites detailed in [GPU acceleration for Azure IoT Edge for Linux on Windows](/azure/iot-edge/gpu-acceleration).
71
+
You can assign a GPU to your deployment to enable GPU-accelerated Linux modules. To gain access to these features, you need to install the prerequisites detailed in [GPU acceleration for Azure IoT Edge for Linux on Windows](/azure/iot-edge/gpu-acceleration).
72
72
73
73
To use a GPU passthrough, add the **gpuName**, **gpuPassthroughType**, and **gpuCount** parameters to your `Deploy-Eflow` command. For information about all the optional parameters available, see [PowerShell functions for IoT Edge for Linux on Windows](/azure/iot-edge/reference-iot-edge-for-linux-on-windows-functions#deploy-eflow).
Copy file name to clipboardExpand all lines: articles/iot-edge/includes/iot-edge-prerequisites-linux-on-windows.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
ms.topic: include
3
-
ms.date: 12/23/2022
3
+
ms.date: 06/10/2024
4
4
author: PatAltimore
5
5
ms.author: patricka
6
6
ms.service: iot-edge
@@ -27,7 +27,7 @@ A Windows device with the following minimum requirements:
27
27
* On a virtual machine, configure nested virtualization. For more information, see [nested virtualization](../nested-virtualization.md).
28
28
29
29
* Networking support
30
-
* Windows Server does not come with a default switch. Before you can deploy EFLOW to a Windows Server device, you need to create a virtual switch. For more information, see [Create virtual switch for Linux on Windows](../how-to-create-virtual-switch.md).
30
+
* Windows Server does not come with a default switch. Before you can deploy EFLOW to a Windows Server device, you need to create a virtual switch. For more information, see [Create virtual switch for Linux on Windows](../how-to-create-virtual-switch.md).
31
31
* Windows Desktop versions come with a default switch that can be used for EFLOW installation. If needed, you can create your own custom virtual switch.
Copy file name to clipboardExpand all lines: articles/iot-edge/reference-iot-edge-for-linux-on-windows-functions.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
---
2
-
title: PowerShell functions for Azure IoT Edge for Linux on Windows | Microsoft Docs
3
-
description: Reference information for Azure IoT Edge for Linux on Windows PowerShell functions to deploy, provision, and status IoT Edge for Linux on Windows virtual machines.
2
+
title: PowerShell functions for Azure IoT Edge for Linux on Windows
3
+
description: Reference information for Azure IoT Edge for Linux on Windows PowerShell functions to deploy, provision, and get status.
4
4
author: PatAltimore
5
5
6
-
ms.author: fcabrera
7
-
ms.date: 07/28/2022
6
+
ms.author: patricka
7
+
ms.date: 06/10/2024
8
8
ms.topic: reference
9
9
ms.service: iot-edge
10
10
ms.custom: linux-related-content
@@ -104,8 +104,8 @@ The JSON configuration file must have the following structure:
104
104
105
105
-**sharedFOlderRoot** : Path to the Windows root folder that contains all the folders to be shared with the EFLOW virtual machine.
106
106
-**hostFolderPath**: Relative path (to the parent root folder) of the folder to be shared with the EFLOW VM.
107
-
-**readOnly**: Defines if the shared folder will be writeable or read-only from the EFLOW virtual machine - Values: **false** or **true**.
108
-
-**targetFolderOnGuest** : Folder path inside the EFLOW virtual machine where Windows host OS folder will be mounted.
107
+
-**readOnly**: Defines if the shared folder is writeable or read-only from the EFLOW virtual machine - Values: **false** or **true**.
108
+
-**targetFolderOnGuest** : Folder path inside the EFLOW virtual machine where Windows host OS folder is mounted.
109
109
110
110
```json
111
111
[
@@ -420,7 +420,7 @@ For more information, use the command `Get-Help Stop-EflowVm -full`.
420
420
421
421
## Verify-EflowVm
422
422
423
-
The **Verify-EflowVm** command is an exposed function that checks whether the IoT Edge for Linux on Windows virtual machine was created. It takes only common parameters, and it will return**True** if the virtual machine was created and **False** if not.
423
+
The **Verify-EflowVm** command is an exposed function that checks whether the IoT Edge for Linux on Windows virtual machine was created. It takes only common parameters, and it returns**True** if the virtual machine was created and **False** if not.
424
424
425
425
For more information, use the command `Get-Help Verify-EflowVm -full`.
Copy file name to clipboardExpand all lines: articles/iot-edge/troubleshoot-iot-edge-for-linux-on-windows-networking.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
1
---
2
-
title: Troubleshoot your IoT Edge for Linux on Windows networking | Microsoft Docs
2
+
title: Troubleshoot your IoT Edge for Linux on Windows networking
3
3
description: Learn about troubleshooting and diagnostics for Azure IoT Edge for Linux on Windows (EFLOW), like retrieving component status and logs.
4
4
author: PatAltimore
5
5
6
-
ms.author: fcabrera
7
-
ms.date: 11/15/2022
8
-
ms.topic: conceptual
6
+
ms.author: patricka
7
+
ms.date: 06/10/2024
8
+
ms.topic: troubleshooting-general
9
9
ms.service: iot-edge
10
10
ms.custom: linux-related-content
11
11
services: iot-edge
@@ -30,9 +30,9 @@ For more information about EFLOW networking concepts, see [IoT Edge for Linux on
30
30
31
31
## Check IP addresses
32
32
33
-
Your first step when troubleshooting IoT Edge for Linux on Windows networking should be to check the VM IP address configurations. If IP communication is misconfigured, then all inbound and outbound connections will fail.
33
+
Your first step when troubleshooting IoT Edge for Linux on Windows networking should be to check the VM IP address configurations. If IP communication is misconfigured, then all inbound and outbound connections fail.
34
34
35
-
1. Start an elevated _PowerShell_ session using **Run as Administrator**.
35
+
1. Start an elevated *PowerShell* session using **Run as Administrator**.
36
36
1. Check the IP address returned by the VM lifecycle agent. Make note of the IP address and compare it with the one obtained from inside the VM in the later steps.
37
37
```powershell
38
38
Get-EflowVmAddr
@@ -41,11 +41,11 @@ Your first step when troubleshooting IoT Edge for Linux on Windows networking sh
41
41
```powershell
42
42
Connect-EflowVm
43
43
```
44
-
1. Check the _eth0_ VM network interface configuration.
44
+
1. Check the *eth0* VM network interface configuration.
45
45
```bash
46
46
ifconfig eth0
47
47
```
48
-
In the output, you should see the _eth0_ configuration information. Ensure that the _inet_ address is correctly set.
48
+
In the output, you should see the *eth0* configuration information. Ensure that the *inet* address is correctly set.
49
49
```Output
50
50
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
If the _inet_ IP address is blank or different from the one provided by using the `Get-EflowVmAddr` cmdlet, you need to troubleshoot why the EFLOW VM has an invalid or no IP address assigned. Use the following table to troubleshoot the issue:
60
+
If the *inet* IP address is blank or different from the one provided by using the `Get-EflowVmAddr` cmdlet, you need to troubleshoot why the EFLOW VM has an invalid or no IP address assigned. Use the following table to troubleshoot the issue:
61
61
62
62
| Virtual Switch | IP Address Assignation | Troubleshoot |
@@ -76,11 +76,11 @@ If you're still having issues with the IP address assignation, try setting up an
76
76
77
77
Your second step when troubleshooting IoT Edge for Linux on Windows networking should be to check the DNS servers assigned to the EFLOW VM. To check the EFLOW VM DNS configuration, see [Networking configuration for Azure IoT Edge for Linux on Windows](how-to-configure-iot-edge-for-linux-on-windows-networking.md). If address resolution is working, then the issue is likely related to firewall or security configurations on the network.
78
78
79
-
The EFLOW VM uses the _systemd-resolved_ service to manage the DNS resolution. For more information about this service, see [Systemd-resolved](https://wiki.archlinux.org/title/Systemd-resolved). To set up a specific DNS server address, you can use the `Set-EflowVmDnsServers` cmdlet. If you need further information about the DNS configuration, you can check the _/etc/systemd/resolved.conf_ and the _system-resolved_ service using the `sudo systemctl status systemd-resolved` command. Also, you can set a specific DNS server as part of the module configuration, see [Option 2: Set DNS server in IoT Edge deployment per module](troubleshoot-common-errors.md).
79
+
The EFLOW VM uses the *systemd-resolved* service to manage the DNS resolution. For more information about this service, see [Systemd-resolved](https://wiki.archlinux.org/title/Systemd-resolved). To set up a specific DNS server address, you can use the `Set-EflowVmDnsServers` cmdlet. If you need further information about the DNS configuration, you can check the */etc/systemd/resolved.conf* and the *system-resolved* service using the `sudo systemctl status systemd-resolved` command. Also, you can set a specific DNS server as part of the module configuration, see [Option 2: Set DNS server in IoT Edge deployment per module](troubleshoot-common-errors.md).
80
80
81
81
The address resolution could fail for multiple reasons. First, the DNS servers could be configured correctly, however they can't be reached from the EFLOW VM. If the DNS servers respond to ICMP ping traffic, you can try pinging the DNS servers to check network connectivity.
82
82
83
-
1. Start an elevated _PowerShell_ session using **Run as Administrator**.
83
+
1. Start an elevated *PowerShell* session using **Run as Administrator**.
84
84
1. Connect to the EFLOW virtual machine.
85
85
```powershell
86
86
Connect-EflowVm
@@ -94,7 +94,7 @@ The address resolution could fail for multiple reasons. First, the DNS servers c
94
94
95
95
Second, some network environments will limit the access of the DNS servers to specific allowlist addresses. If so, first make sure that you can access the DNS server from the Windows host OS, and then check with your networking team if you need to add the EFLOW IP address to an allowlist.
96
96
97
-
Finally, some network environment will block public DNS servers, like Google DNS (_8.8.8.8_ and _8.8.4.4_). If so, talk with your network environment team to define a valid DNS server, and then set it up using the `Set-EflowVmDnsServers` cmdlet.
97
+
Finally, some network environments block public DNS servers, like Google DNS (*8.8.8.8* and *8.8.4.4*). If so, talk with your network environment team to define a valid DNS server, and then set it up using the `Set-EflowVmDnsServers` cmdlet.
98
98
99
99
## Check your firewall and port configuration rules
100
100
@@ -106,14 +106,14 @@ The IoT Edge for Linux on Windows is still dependent on the underlying Windows h
106
106
|--|--|--|--|--|
107
107
|MQTT|8883|BLOCKED (Default)|BLOCKED (Default)| Configure *Outgoing (Outbound)* to be *Open* when using MQTT as the communication protocol. <br><br> 1883 for MQTT isn't supported by IoT Edge. - Incoming (Inbound) connections should be blocked.|
108
108
|AMQP|5671|BLOCKED (Default)|OPEN (Default)| Default communication protocol for IoT Edge. <br><br> Must be configured to be *Open* if Azure IoT Edge isn't configured for other supported protocols or AMQP is the desired communication protocol. <br><br>5672 for AMQP isn't supported by IoT Edge.<br><br>Block this port when Azure IoT Edge uses a different IoT Hub supported protocol.<br><br>Incoming (Inbound) connections should be blocked.|
109
-
|HTTPS|443|BLOCKED (Default)|OPEN (Default)|Configure *Outgoing (Outbound)* to be *Open* on port 443 for IoT Edge provisioning. This configuration is required when using manual scripts or Azure IoT Device Provisioning Service (DPS). <br><br><a id="anchortext">*Incoming (Inbound)* connection</a> should be *Open* only for two specific scenarios: <br>1. If you have a transparent gateway with downstream devices that may send method requests. In this case, port 443 doesn't need to be open to external networks to connect to IoT Hub or provide IoT Hub services through Azure IoT Edge. Thus the incoming rule could be restricted to only open *Incoming (Inbound)* from the internal network.<br>2. For *client to device (C2D)* scenarios.<br><br>80 for HTTP isn't supported by IoT Edge.<br><br>If non-HTTP protocols (for example, AMQP or MQTT) can't be configured in the enterprise; the messages can be sent over WebSockets. Port 443 will be used for WebSocket communication in that case.|
109
+
|HTTPS|443|BLOCKED (Default)|OPEN (Default)|Configure *Outgoing (Outbound)* to be *Open* on port 443 for IoT Edge provisioning. This configuration is required when using manual scripts or Azure IoT Device Provisioning Service (DPS). <br><br><a id="anchortext">*Incoming (Inbound)* connection</a> should be *Open* only for two specific scenarios: <br>1. If you have a transparent gateway with downstream devices that may send method requests. In this case, port 443 doesn't need to be open to external networks to connect to IoT Hub or provide IoT Hub services through Azure IoT Edge. Thus the incoming rule could be restricted to only open *Incoming (Inbound)* from the internal network.<br>2. For *client to device (C2D)* scenarios.<br><br>80 for HTTP isn't supported by IoT Edge.<br><br>If non-HTTP protocols (for example, AMQP or MQTT) can't be configured in the enterprise; the messages can be sent over WebSockets. Port 443 is used for WebSocket communication in that case.|
110
110
111
111
>[!NOTE]
112
112
> If you are using an external virtual switch, make sure to add the appropriate firewall rules for the module port mappings you're using inside the EFLOW virtual machine.
113
113
114
114
For more information about EFLOW VM firewall, see [IoT Edge for Linux on Windows Security](./iot-edge-for-linux-on-windows-security.md). To check the EFLOW virtual machine rules, use the following steps:
115
115
116
-
1. Start an elevated _PowerShell_ session using **Run as Administrator**.
116
+
1. Start an elevated *PowerShell* session using **Run as Administrator**.
117
117
1. Connect to the EFLOW virtual machine.
118
118
```powershell
119
119
Connect-EflowVm
@@ -125,12 +125,12 @@ For more information about EFLOW VM firewall, see [IoT Edge for Linux on Windows
125
125
126
126
To add a firewall rule to the EFLOW VM, you can use the [EFLOW Util - Firewall Rules](https://github.com/Azure/iotedge-eflow/tree/main/eflow-util#get-eflowvmfirewallrules) sample PowerShell cmdlets. Also, you can achieve the same rules creation by following these steps:
127
127
128
-
1. Start an elevated _PowerShell_ session using **Run as Administrator**.
128
+
1. Start an elevated *PowerShell* session using **Run as Administrator**.
129
129
1. Connect to the EFLOW virtual machine
130
130
```powershell
131
131
Connect-EflowVm
132
132
```
133
-
1. Add a firewall rule to accept incoming traffic to _\<port\>_ of _\<protocol\>_ ( _udp_ or _tcp_) traffic.
133
+
1. Add a firewall rule to accept incoming traffic to *\<port\>* of *\<protocol\>* ( *udp* or *tcp*) traffic.
134
134
```powershell
135
135
sudo iptables -A INPUT -p <protocol> --dport <port> -j ACCEPT
0 commit comments