Deploy Reference Implementations to Azure* IoT Edge for Linux* on Windows* (EFLOW)

Published: 02/09/2022  

Last Updated: 02/09/2022

Overview

Learn how to deploy Intel® DevCatalog reference implementations to Azure* IoT Edge for Linux* on Windows* (EFLOW) †.

Azure IoT EFLOW allows you to run containerized Linux workloads alongside Microsoft* Windows applications in Windows IoT deployments. 


Icon for Cloud Connectors


Target System Requirements 

Find details on supported platforms on the Microsoft website.

By default, the Azure IoT EFLOW installation supports CPU only. To be able to utilize integrated Graphics (iGPU) through the Azure IoT EFLOW Virtual Machine environment, you must install the Intel® Graphics – Windows* DCH Drivers that correspond to the hardware being used.

Prerequisite Description
System Hardware
  • Recommended hardware for integrated Graphics (iGPU) acceleration: 9th Gen processors and above including Intel Atom® processor or Intel® Core™ processor (Products formerly codenamed Whiskey Lake, Elkhart Lake, Comet Lake-S, Tiger Lake-U, Tiger Lake-H, and Alder Lake-S with Intel® Virtualization Technology (Intel® VT) and Integrated GPU).
  • To run on CPU only (without iGPU acceleration): Intel Atom® processor or Intel® Core™ processor or Intel® Xeon® Scalable processor with Intel® VT. 
  • Minimum of 1 GB free memory 
  • Minimum of 30 GB free disk space
Operating System Microsoft Windows 10 IoT Enterprise Version 10.0.19044 or above

How It Works 

Through the Azure IoT EFLOW workflow, you can seamlessly deploy Linux-based Cloud native workloads from Azure to Windows IoT.

Azure IoT EFLOW is based on Microsoft* Hyper-V* technology. It is a virtual machine running a Microsoft* CBL-Mariner Linux distribution. To support AI acceleration using GPU, Azure IoT EFLOW has adopted the GPU-PV architecture used in Windows Subsystem for Linux (WSL) 2. 

 

Architecture diagram of the reference implementation
Figure 1: Architecture Diagram

 

Provision and Deploy an Application with Azure IoT EFLOW

There are three ways to provision and deploy the reference implementations to Azure IoT EFLOW:

  1. Use Azure IoT Hub:
    1. Deploy application containers from the Cloud into Azure IoT EFLOW virtual machine (VM) through Azure IoT Hub.
    2. Visualize the output on Windows, which hosts Azure IoT EFLOW, or select the visualization tool of your choice (Grafana, Power BI*, Custom UI*, etc.).
    3. To learn more about this method, see the Learn More section.
  2. Use Azure IoT Central:
    1. Deploy the application containers from the Cloud into Azure IoT EFLOW VM using the deployment manifest file and then provision it with Device ID, Scope ID and Primary Key of the edge device created on Azure IoT Central.
    2. Do the visualization on the same edge device on Azure IoT Central that was provisioned with Azure IoT EFLOW VM.
    3. To learn more about this method, see the Learn More section.
  3. Use Both Azure IoT Hub and Azure IoT Central:
    1. Deploy the application containers from the Cloud into Azure IoT EFLOW VM through Azure IoT Hub and visualize through Azure IoT Central.
    2. Do the deployment using a deployment manifest file or by explicitly going through the IoT Modules Container Create options for the IoT edge device created under Azure IoT Hub.
    3. An Azure IoT Central connection needs to be made before deploying the modules on Azure IoT EFLOW VM. The EFLOW VM does not need to be provisioned with the Azure IoT Central device.

In the section Deploy Reference Implementations to Azure IoT EFLOW, the deployment of the reference implementations to Azure IoT EFLOW is done using method three, Use Both Azure IoT Hub and Azure IoT Central.


Deploy Reference Implementations to Azure IoT EFLOW 

This section provides links to documentation about how to deploy specific Intel® DevCatalog reference implementations to Azure IoT EFLOW. To learn more about the individual reference implemenations, see the Learn More section. 

Intelligent Traffic Management

Intelligent Traffic Management is designed to detect and track vehicles as well as pedestrians and to estimate a safety metric for an intersection. The reference implementation also detects collisions and near misses. A real-time dashboard visualizes the intelligence extracted from the traffic intersection along with annotated video stream(s). Deploy with Azure IoT EFLOW

Social Distancing Detection for Retail Settings

A social distancing detection solution demonstrates an end-to-end analytics pipeline to detect people and calculates social distance between people from multiple input feeds. Frames are transformed, scaled and normalized into BGR images which can be fed to the inference engine in the Intel® Distribution of OpenVINO™ toolkit. Deploy with Azure IoT EFLOW.

Automated Checkout 

Learn how to integrate device services using sensor fusion and microservices with this automated checkout reference implementation. Automated checkout solution simulates the hardware components and user actions in a retail use case: monitoring the inventory and operating conditions of a retail cooler or cabinet. Deploy with Azure IoT EFLOW.


Summary and Next Steps 

You have successfully deployed Intelligent Traffic Management and/or Social Distancing Detection for Retail Settings reference implementations to Azure IoT EFLOW.

As a next step, try out the other examples on the Connect Edge Devices to Azure IoT use case.


Learn More 

To continue your learning, see the following guides and software resources:


Appendix

Azure IoT EFLOW installation alone allows users to run vision workloads on CPU only. To utilize integrated Graphics (iGPU), you must enable Hyper-V and Intel® Graphics Driver (with WSL GPU support) prior to installing Azure IoT EFLOW from Microsoft. Refer to the following sections for details. 

Enable Hyper-V 

If you have not already done so, enable Hyper-V to create virtual machines on Windows*. Follow the instructions below to enable the Hyper-V feature using PowerShell.

NOTE: This step is required for both CPU and iGPU. 

  1. Open an elevated PowerShell* console and run the following command: 
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

     

  2. You will be prompted to reboot. Enter Y to reboot. 
    Screenshot of PowerShell terminal for reboot

NOTE: Hyper-V can be enabled in many ways. Refer to Microsoft* Documentation for further details and options.

Install Intel® Graphics Driver (with WSL GPU support) 

Intel® Graphics Driver (version 30.0.100.9955 or later) is required to support WSL GPU. Follow the instructions below to update the Intel® Graphics Driver. 

  1. Download and install Intel® Graphics Driver (version 30.0.100.9955) from Intel® Graphics – Windows* DCH Drivers

NOTE: For Intel® pre-launch platforms, work with your Intel representative to create an account and get access to the platform BKC document (CCL#648433). 

WSL Installation 

WSL installation is needed as some libraries are shared between WSL and Azure IoT EFLOW runtime. Follow the instructions below to install WSL. 

  1. Open an elevated PowerShell console and run the following command: 
    wsl --install

    Screenshot of PowerShell terminal for wsl install

The system will be required to restart after WSL installation. By default, the installed Linux distribution is Ubuntu*. 

NOTE: WSL can be installed via another method; refer to Microsoft* Documentation for further details and more options.


Support Forum 

If you're unable to resolve your issues, contact the Support Forum.  

 

†You are responsible for payment of all third-party charges, including payment for use of Microsoft Azure services. 

For the most up-to-date information on Microsoft® Azure products, see the Microsoft Azure website.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.