Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
EthanChangAED committed Oct 5, 2022
1 parent e40e0eb commit fa25ecb
Showing 1 changed file with 24 additions and 23 deletions.
47 changes: 24 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
# Azure IoT Edge configuration tool V2
The configuration tool V2 is currently at **beta stage**. It is only applicable to the **NVIDIA Jetson device (Xavier/Orin)** as described in the following sections.

## Overview
The Azure Edge Installer is an onboarding tool that streamlines the provisioning process for edge devices. Developers can use the Installer to register their device to Azure IoT Hub and install core components for securing and managing intelligent edge devices.
The Installer offers the following benefits:
The Azure IoT Edge configuration tool V2 is an onboarding tool that streamlines the provisioning process for edge devices. Developers can use the configuration tool V2 to register their device to Azure IoT Hub and install core components for securing and managing intelligent edge devices.
The configuration tool V2 offers the following benefits:
1. Accelerates device onboarding to Azure
2. Installs base components for manageability and security
3. Establishes a device setup that can be scaled to production scenarios
4. Configures devices to begin Edge AI development


## Hardware Options
The Installer officially supports the following devices:
The configuration tool V2 officially supports the following devices:
- NVIDIA AGX Orin/Orin NX
- NVIDIA AGX Xavier/Xavier NX (only on Jetpack 5.0)

However, the Installer should work on other ARM64 devices with Ubuntu 20.0.4. If your device meets these requirements, feel free to try the Installer and report any feedback to our team.
However, the configuration tool V2 should work on other ARM64 devices with Ubuntu 20.0.4. If your device meets these requirements, feel free to try the configuration tool V2 and report any feedback to our team.

## Device Setup (for NVIDIA Xavier/Orin Devices)
For NVIDIA Jetson devices, you will need the following equipment:
Expand All @@ -25,19 +26,19 @@ For NVIDIA Jetson devices, you will need the following equipment:

**If you are setting up your device for the first time,** refer to this guidance:
- **Orin**: See [Getting Started with Jetson Orin guide](https://developer.nvidia.com/embedded/learn/get-started-jetson-agx-orin-devkit).
- **Xavier**: See [Getting Started With Jetson Xavier NX guide](https://developer.nvidia.com/embedded/learn/get-started-jetson-xavier-nx-devkit). Note that you will need to flash Jetpack 5.0 or later for your device to be compatible with Edge Installer.
- **Xavier**: See [Getting Started With Jetson Xavier NX guide](https://developer.nvidia.com/embedded/learn/get-started-jetson-xavier-nx-devkit). Note that you will need to flash Jetpack 5.0 or later for your device to be compatible with configuration tool V2.

**[Important]** When going through the Jetson device setup, make sure you include not only the Jetson Linux BSP but also the JetPack SDK if you plan to deploy DeepStream workloads to the device.

**If your DK is already setup but not registered to Azure**, refer to this guidance:
1. Check the OS of your device by running command **“lsb_release -a”**. Orin devices will likely be Ubuntu 20.0.4, which is sufficient for the Installer. Xavier devices will likely be Ubuntu 18.0.4, which needs to be upgraded to use the Installer.
2. For devices on ubuntu 18.04: You will need to flash Jetpack 5.0 or later for your device to be compatible with Edge Installer. Navigate to NVIDIA’s guidance for flashing your specific device.
3. For devices on ubuntu 20.04: You can proceed to run the installer. But it is recommended to install the latest version of Jetpack 5.0 by following Step 2 of [Getting Started with Jetson Orin guide](https://developer.nvidia.com/embedded/learn/get-started-jetson-agx-orin-devkit).
1. Check the OS of your device by running command **“lsb_release -a”**. Orin devices will likely be Ubuntu 20.0.4, which is sufficient for the configuration tool V2. Xavier devices will likely be Ubuntu 18.0.4, which needs to be upgraded to use the configuration tool V2.
2. For devices on ubuntu 18.04: You will need to flash Jetpack 5.0 or later for your device to be compatible with configuration tool V2. Navigate to NVIDIA’s guidance for flashing your specific device.
3. For devices on ubuntu 20.04: You can proceed to run the configuration tool V2. But it is recommended to install the latest version of Jetpack 5.0 by following Step 2 of [Getting Started with Jetson Orin guide](https://developer.nvidia.com/embedded/learn/get-started-jetson-agx-orin-devkit).

**If your DK is already registered to an IoT Hub/Edge account**, you can still follow the guidance of using connection string to run the installer and connect to the same IoTHub. The Installer should effectively install Defender for IoT and OSConfig.
**If your DK is already registered to an IoT Hub/Edge account**, you can still follow the guidance of using connection string to run the configuration tool V2 and connect to the same IoTHub. The configuration tool V2 should effectively install Defender for IoT and OSConfig.

## How to Install
1. **Make sure the developer kit is connected to the internet before executing the installer!**
1. **Make sure the developer kit is connected to the internet before executing the configuration tool V2!**
2. Set up Azure Basics
- If you do not have an IoT Hub, follow “Create an IoT Hub” in [Use the Azure portal to create an IoT Hub | Microsoft Docs](https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-create-through-portal). You can skip this step if you already have an IoT Hub.
- Once you have an IoT Hub, choose one of these two options:
Expand All @@ -46,25 +47,25 @@ For NVIDIA Jetson devices, you will need the following equipment:
- **[Option II] Provision with DPS**
Refer to the steps in appendix: How to setup IoT Hub with DPS.
3. Save the **connection string** to a .txt file (or if using DPS provisioning, save Registration_ID, Symmetric Primary Key, the IoT Hub host name, DPS Scope ID to a .txt file).
4. Download the installer .run file (ex: **eai-installer_1.2.2_arm64.run**)
5. Copy the **installer file** and the **txt file that contains provision info** to your NV developer kit by USB drive
- **[Alternate Method]** If you do not have a USB drive but the DK and PC are connected to the same network, there is a work around. Navigate to the PC command line, enter the directory where the installer is located, and run the following command to securely copy the installer to your DK.
4. Download the configuration tool V2 .run file (ex: **eai-installer_1.2.2_arm64.run**)
5. Copy the **configuration tool V2 file** and the **txt file that contains provision info** to your NV developer kit by USB drive
- **[Alternate Method]** If you do not have a USB drive but the DK and PC are connected to the same network, there is a work around. Navigate to the PC command line, enter the directory where the configuration tool V2 is located, and run the following command to securely copy the configuration tool V2 to your DK.

```
scp ~/Downloads/eai-installer_[VERSION]_arm64.run [DK desktop address]:~/[target directory]./e
```

6. Before running the installer, execute the following commands in the **command line of your DK**.
From the directory of the installer .run file, execute the following command:
6. Before running the configuration tool V2, execute the following commands in the **command line of your DK**.
From the directory of the configuration tool V2 .run file, execute the following command:
```
sudo chmod +x eai-installer_1.2.2_arm64.run; sudo ./eai-installer_1.2.2_arm64.run; cd /usr/local/microsoft/eai-installer
```
**[Note]** 1.2.2 is the current installer version, if you are using other versions, please modify the command accordingly.
[Optional] Use the following command if you want to verify the installer is correctly setup.
**[Note]** 1.2.2 is the current configuration tool V2 version, if you are using other versions, please modify the command accordingly.
[Optional] Use the following command if you want to verify the configuration tool V2 is correctly setup.
```
dpkg-query -s eai-installer
```
7. To execute the installer and set the developer kit Azure ready, you can choose one of the provisioning mechanisms below when executing the installer. Make sure you are under the directory of “/usr/local/microsoft/eai-installer” when executing the following command.
7. To execute the configuration tool V2 and set the developer kit Azure ready, you can choose one of the provisioning mechanisms below when executing the configuration tool V2. Make sure you are under the directory of “/usr/local/microsoft/eai-installer” when executing the following command.

**[Connection String]**
```
Expand All @@ -81,7 +82,7 @@ sudo ./azure-iot-edge-installer.sh -s <ID Scope> -r <Registration ID> -k <Symmet
sudo ./azure-iot-edge-installer.sh -h
```

## Post-Installer Experience
## Post-Install Experience
### Using the Services in the Fundamentals Package
- Defender for IoT
1. To configure the Defender for IoT agent-based solution, please follow [“Configure data collection” section and the “Log Analytics creation”](https://docs.microsoft.com/en-us/azure/defender-for-iot/device-builders/how-to-configure-agent-based-solution).
Expand All @@ -95,7 +96,7 @@ Refer to the following guidance to try the OSconfig features. (More scenarios ar
- [Reboot or shut down devices with Azure IoT and OSConfig](https://docs.microsoft.com/en-us/azure/osconfig/howto-rebootshutdown?tabs=portal%2Csingle)

### Updating Packages
The installer installs specific versions of Microsoft fundamental packages (IoTEdge, OSConfig, Defender for IoT). This is the verified known stable combination. Please refer to the release note for versions information. If for any reason you want to use the latest fundamental packages, run the following command AFTER you have successfully run the installer. This will trigger the update of those components.
The configuration tool V2 installs specific versions of Microsoft fundamental packages (IoTEdge, OSConfig, Defender for IoT). This is the verified known stable combination. Please refer to the release note for versions information. If for any reason you want to use the latest fundamental packages, run the following command AFTER you have successfully run the configuration tool V2. This will trigger the update of those components.
```
sudo ./azure-iot-edge-installer.sh -u
```
Expand All @@ -121,7 +122,7 @@ $ sudo reboot
### Edge runtime and module status
The expected status of IoT Edge runtime response is **“NA”** or **“417 – The device’s deployment configuration is not set”**. It will change to **“200 – OK”** after the first module deployment. (You can simply click the “Set Modules” to trigger an empty deployment.)

For **DefenderMicroAgent** and **OSConfig module**, it is expected to see the states show **“NA”**. As long as you get the following INFO notification from the installer output, you are good to go.
For **DefenderMicroAgent** and **OSConfig module**, it is expected to see the states show **“NA”**. As long as you get the following INFO notification from the configuration tool V2 output, you are good to go.

### Configuration Check
The IoT Edge Check is a useful tool for checking the status of edge agent and edge hub. Before you proceed to the check process, please double confirm if system time has been synchronized after network configured.
Expand Down Expand Up @@ -156,7 +157,7 @@ $ sudo systemctl restart docker
```

### Further IoT Edge diagnostic
For information about each of the diagnostic checks this tool runs, including what to do if you get an error or warning, see [IoT Edge troubleshoot checks](https://github.com/Azure/iotedge/blob/main/doc/troubleshoot-checks.md). The Edge Installer performs the installation and default setup process. However, there are other factors that impact the behavior of IoT Edge runtime/service (such as network configuration, firewall…). Therefore, please do check the following IoT Edge troubleshooting guidance if you encounter IoT Edge issues:
For information about each of the diagnostic checks this tool runs, including what to do if you get an error or warning, see [IoT Edge troubleshoot checks](https://github.com/Azure/iotedge/blob/main/doc/troubleshoot-checks.md). The configuration tool V2 performs the installation and default setup process. However, there are other factors that impact the behavior of IoT Edge runtime/service (such as network configuration, firewall…). Therefore, please do check the following IoT Edge troubleshooting guidance if you encounter IoT Edge issues:
- [Common errors – Azure IoT Edge | Microsoft Docs](https://docs.microsoft.com/en-us/azure/iot-edge/troubleshoot-common-errors?view=iotedge-2020-11)
- [Troubleshoot – Azure IoT Edge | Microsoft Docs](https://docs.microsoft.com/en-us/azure/iot-edge/troubleshoot?view=iotedge-2020-11)
- [Troubleshoot from the Azure portal – Azure IoT Edge | Microsoft Docs](https://docs.microsoft.com/en-us/azure/iot-edge/troubleshoot-in-portal?view=iotedge-2020-11)
Expand Down Expand Up @@ -199,7 +200,7 @@ Refer to [Create and provision an IoT Edge device on Linux using symmetric keys
4. **DPS Scope ID** (found in DPS overview page)

3. [Note] If the dropdown menu from the final field in the image above does not include an IoT Hub, still proceed to the next page – where the option will likely update.
4. [Note] The Installer does not support the following characters for DeviceID: `=, %, !, $`
4. [Note] The configuration tool V2 does not support the following characters for DeviceID: `=, %, !, $`
5. [Note] If you would like to utilize the hostname option (**-hn** or **--hostname**) to assign hostname as DeviceId, please also notice the following special characters do not comply with RFC 1035 for hostname naming: `+ _ # * ? ( ) , : @ '`


Expand Down

0 comments on commit fa25ecb

Please sign in to comment.