Contents

Dell Edge Gateway 3200 Gateway Software User's Guide PDF

1 of 88
1 of 88

Summary of Content for Dell Edge Gateway 3200 Gateway Software User's Guide PDF

Dell EMC Edge Gateway 3200 Software User's Guide

Regulatory Model: EGW-3200 Regulatory Type: EGW-3200-NA August 2022 Rev. A00

Notes, cautions, and warnings

NOTE: A NOTE indicates important information that helps you make better use of your product.

CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid

the problem.

WARNING: A WARNING indicates a potential for property damage, personal injury, or death.

2022 Dell Inc. or its subsidiaries. All rights reserved. Dell Technologies, Dell, and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be trademarks of their respective owners.

Chapter 1: Introduction................................................................................................................. 6

Chapter 2: Setting Up the Windows 10 Operating System............................................................. 8 Boot up and log in................................................................................................................................................................8 Factory reset........................................................................................................................................................................ 9 System restore and backup recovery.............................................................................................................................9

Create a recovery drive................................................................................................................................................9 Create a system image.................................................................................................................................................9 Recover from system image.......................................................................................................................................11

Security Baseline settings................................................................................................................................................ 12 Windows 10 IoT Enterprise LTSC basic functions..................................................................................................... 12

UART controller............................................................................................................................................................ 12 TPM support................................................................................................................................................................. 12 RHProxy driver - I2C and GPIO................................................................................................................................ 12 System shutdown and restart...................................................................................................................................13 Configure LAN network.............................................................................................................................................. 13 Optional expansion modules...................................................................................................................................... 14 Configure WWAN network........................................................................................................................................ 14 Configure Bluetooth.................................................................................................................................................... 14 Cellular network configuration.................................................................................................................................. 15 Accessing GPS..............................................................................................................................................................15

5G module firmware update procedure........................................................................................................................15 Download Firmware Selector Tool and driver....................................................................................................... 15 Remove old and install new drivers......................................................................................................................... 16 Update 5G firmware in Windows..............................................................................................................................17

4G module firmware update procedure....................................................................................................................... 20 BMC firmware update procedure...................................................................................................................................21 Accessing and updating the BIOS.................................................................................................................................25

Access the BIOS settings..........................................................................................................................................25 Update the BIOS using UEFI capsule update from Windows........................................................................... 25

SuperIO Function Library................................................................................................................................................ 26 Windows SIO API.........................................................................................................................................................27 Build the SIO sample application..............................................................................................................................28 Execute the SIO sample application....................................................................................................................... 28

Digital Input/Output Function of the Intel PCH Controller.....................................................................................29 Build the GPIO sample application.......................................................................................................................... 29 Execute the GPIO sample application.................................................................................................................... 30

Digital Input/Output Function from PCA9535 GPIO............................................................................................... 30 PCA9535 GPIO Expander API..................................................................................................................................30 Build the PCA9535 sample application................................................................................................................... 31 Execute the PCA9535 sample application............................................................................................................ 32

Hardware monitor API......................................................................................................................................................32 EApiLibInitialize............................................................................................................................................................ 33 int EApiLibInitialize ()..................................................................................................................................................33

Contents

Contents 3

EApiBoardGetValue.....................................................................................................................................................33 int EApiBoardGetValue (int parameter).................................................................................................................33 EApiUnInitialize.............................................................................................................................................................33

Humidity and temperature sensor setup..................................................................................................................... 33 Build the sample application......................................................................................................................................33 Create the MSIX package......................................................................................................................................... 36 Import the certificate................................................................................................................................................. 38 Install the application...................................................................................................................................................41 Run the temperature sensor application................................................................................................................43

Pressure sensor setup......................................................................................................................................................44 Run the pressure sensor application.......................................................................................................................44

Accelerometer sensor setup...........................................................................................................................................45 Run the accelerometer sensor application............................................................................................................ 45

Intel OOB............................................................................................................................................................................. 47 Host and target setup................................................................................................................................................ 47 Perform changes in the BIOS...................................................................................................................................48 Cloud setup and configuration................................................................................................................................. 48 OOB service provisioning.......................................................................................................................................... 53 Activate OOB commands using Azure................................................................................................................... 53

COM Port and Ethernet Names for Mini PCIe Cards ............................................................................................. 56 Sensor APIs.........................................................................................................................................................................57

Chapter 3: Setting Up the Ubuntu Operating System.................................................................. 59 Boot up and log in............................................................................................................................................................. 59 Create bootable USB stick for factory reset..............................................................................................................59 Back up and restore Ubuntu 20.04 LTS...................................................................................................................... 60 Update BIOS capsule........................................................................................................................................................ 61 Update LiteBMC firmware...............................................................................................................................................61 Update 4G module firmware...........................................................................................................................................62 Update 5G module firmware.......................................................................................................................................... 65 Ubuntu 20.04 LTS basic functions................................................................................................................................67

System shutdown and restart.................................................................................................................................. 67 Ubuntu OTA update.................................................................................................................................................... 67 List installed packages................................................................................................................................................67 Update the system name...........................................................................................................................................67 Change the time zone................................................................................................................................................ 67 Root user credential................................................................................................................................................... 68 Create new user.......................................................................................................................................................... 68 Select language............................................................................................................................................................68 Display............................................................................................................................................................................ 69 USB.................................................................................................................................................................................69 Configure humidity, pressure, and accelerometer sensors............................................................................... 69 Configure Ethernet...................................................................................................................................................... 71 Configure the WiFi network...................................................................................................................................... 72 Configure Bluetooth....................................................................................................................................................73 Connect 4G or 5G WWAN........................................................................................................................................ 74 Access GPS...................................................................................................................................................................75 Remote login................................................................................................................................................................. 76 Set up audio and microphone................................................................................................................................... 76 SSD security-erase......................................................................................................................................................76

4 Contents

Connect to the serial port......................................................................................................................................... 78 Connect to the Canbus.............................................................................................................................................. 79 Mount USB storage.................................................................................................................................................... 79 Configure watchdog................................................................................................................................................... 80 Configure GPIO.............................................................................................................................................................81 TPM tasks..................................................................................................................................................................... 82 Wake events................................................................................................................................................................. 84

Isolated Canbus uFM expansion module......................................................................................................................85 EMP2-X2S1 card with isolated RS-232 uFM expansion module........................................................................... 86 EMP2-X4S2 card with isolated RS-422/485 uFM expansion module................................................................. 87

Contents 5

Introduction The Dell EMC Edge Gateway 3200 supports Windows 10 IoT Enterprise 2019 and Ubuntu 20.04 LTS. The setup procedures for each of these operating systems are detailed in the following chapters.

Figure 1. System block diagram

The following table defines the acronyms and abbreviations used throughout this document.

Table 1. Acronyms and abbreviations

Acronym or abbreviation Definition

API Application Programming Interfaces

BIOS Basic Input Output System

CPU Central Processing Unit

DI Digital Input

DO Digital Output

GPIO General Purpose Input Output

HWMon Hardware Monitor

I2C Inter Integrated Circuit

LAN Local Area Network

LTSC Long Term Servicing Channel

1

6 Introduction

Table 1. Acronyms and abbreviations (continued)

Acronym or abbreviation Definition

PCI Peripheral Component Interconnect

USB Universal Serial Bus

WDT WatchDog Timer

Introduction 7

Setting Up the Windows 10 Operating System

This chapter serves as a guide to install and use the Windows 10 IoT Enterprise 2019 operating system on the EGW-3200 hardware.

For more information on the Windows 10 operating system, see https://support.microsoft.com.

NOTE: For proper Windows boot up, please ensure the BIOS version used is 0.14.10 or above.

Topics:

Boot up and log in Factory reset System restore and backup recovery Security Baseline settings Windows 10 IoT Enterprise LTSC basic functions 5G module firmware update procedure 4G module firmware update procedure BMC firmware update procedure Accessing and updating the BIOS SuperIO Function Library Digital Input/Output Function of the Intel PCH Controller Digital Input/Output Function from PCA9535 GPIO Hardware monitor API Humidity and temperature sensor setup Pressure sensor setup Accelerometer sensor setup Intel OOB COM Port and Ethernet Names for Mini PCIe Cards Sensor APIs

Boot up and log in

Steps

1. Connect a keyboard, mouse, and monitor to the EGW-3200.

2. Power on the system. The system boots to the Windows 10 IoT Enterprise LTSC 2019 operating system.

3. Select your regional settings and keyboard layout. If needed, select the second keyboard layout. Otherwise, skip this step.

4. Connect to an available wireless or wired network. After the internet connection is established, the Windows license key is activated.

5. Read and Agree to the End User License Agreement.

6. Create a user account with a password.

7. After login, the system will reboot once for the settings to take effect.

2

8 Setting Up the Windows 10 Operating System

Factory reset

About this task

Users can perform a factory reset of the Windows 10 IoT Enterprise 2019 LTSC on the EGW-3200 using the recovery operating system image on the boot partition. This resets the run-time image back to the standard Windows system, which does not contain any ODM-installed drivers. Users can download the necessary drivers from the Dell Technologies Support Site.

Steps

1. Connect a keyboard, mouse, and monitor to the system.

2. Power on the Edge Gateway and boot to the operating systems desktop.

3. Click the Start icon, hold the Shift key and click Restart.

4. Select Troubleshoot > Reset this PC.

5. Select Reset this PC > Remove everything.

6. Select Fully clean the drive > Reset.

System restore and backup recovery

Create a recovery drive

About this task

To recover from a major issue such as hardware failure, a recovery drive is needed to reinstall Windows 10. This section explains how to create a USB recovery drive. Personal files and any applications that did not come with the system will not be backed up.

Use a minimum of 4 GB USB storage and all data in the USB storage will be deleted. Perform the following steps to create a USB-based recovery drive.

Steps

1. In the search box next to the Start button, search for Create a recovery drive and then select it. You might be asked to enter an admin password or confirm your selection.

2. When the tool opens, make sure Back up system files to the recovery drive is selected and then select Next.

3. Connect a USB drive to your PC, select it, and then select Next.

4. Select Create. Many files need to be copied to the recovery drive, so this might take a while. After successfully creating the recovery drive, click Finish.

Create a system image

About this task

After successfully logging into Windows 10, the user can create a system image which can be used to restore the system in case of a Windows OS crash or hard disk failure.

Steps

1. Select Control Panel and Navigate to Control Panel\System and Security\Backup and Restore (Windows 7).

2. In the Backup and Restore (Windows 7) window, click Create a system image in the upper-left corner.

Setting Up the Windows 10 Operating System 9

Figure 2. Create a system image

3. Windows looks for a backup destination on a hard drive, DVD, or network location. Choose an appropriate destination. Click Next.

NOTE: In the following screenshot, a second SSD storage is used to create the backup.

Figure 3. Backup destination

4. Confirm which areas or partitions of your hard drive will be included in the image file, then click the Start Backup button.

10 Setting Up the Windows 10 Operating System

Figure 4. Confirm backup

Results

Windows creates the system image file.

Figure 5. Backup completed successfully

Recover from system image

Steps

1. Connect the USB storage device that was created in Create a recovery drive on page 9.

2. Connect the hard drive or SSD that was used in Create a system image on page 9.

3. After power on, keep pressing Delete and go to the BIOS settings.

4. From Save and Exit, in Boot Override, select the USB storage device and press Enter.

5. At theChoose your Keyboard layout page, select the appropriate keyboard layout.

6. In the Choose an option window, go to Troubleshoot > Advanced Options > System Image Recovery. Follow the prompts in Windows to restore the system image file.

Results

Once the process is complete, the system restarts and boots into the updated system image.

Setting Up the Windows 10 Operating System 11

Security Baseline settings The security settings in the image for the EGW-3200 default to those in the standard Windows 10 IoT Enterprise release. However, it is recommended to install Microsoft-provided security policies on top of this to enhance the security features in the device. Microsoft provides a set of policies called the Security Baseline with each Windows 10 release. Installing this Security Baseline is a good way to quickly enable recommended security settings on IoT devices. The Security Baseline is delivered as part of the Security Compliance Toolkit and can be downloaded from Microsoft's download center: https:// www.microsoft.com/download/details.aspx?id=55319. Detailed installation and customization instructions are available in the toolkit package.

Windows 10 IoT Enterprise LTSC basic functions The EGW-3200 provides various interfaces. The following sections provide further details on these interfaces.

UART controller

For setting the port type of serial ports 1 and 2, change the BIOS settings as detailed in the following table.

Table 2. UART controller settings

S. No Port type Connector Device node BIOS setting configuration

1 RS232/422/485 DB9 COM1 Advanced > Onboard Devices Configuration > COM1 Control, select RS232/422/485

2 RS232/422/485 DB9 COM2 Advanced > Onboard Devices Configuration > COM2 Control, select RS232/422/485

TPM support

Windows 10 IoT Enterprise LTSC 2019 supports TPM 2.0. For more information on TPM resources, see https:// docs.microsoft.com/windows/security/information-protection/tpm/trusted-platform-module-overview.

RHProxy driver - I2C and GPIO

The RHProxy driver enables user mode access to I2C and GPIO (GPIO from the Intel chipset). For details about Windows RHProxy, refer to Enable user mode access to GPIO, I2C, and SPI. The BIOS of the EGW-3200 is already updated with the necessary changes for enabling RHProxy for the I2C and GPIO pins.

The following table shows the I2C and GPIO-friendly names and pin mappings.

Table 3. I2C and GPIO names and pin mappings

S No. Peripheral detail Hardware signal name Name/Number to use with RHProxy

Comments

1 GPIO Pin 0 DO2 0 GPIO number to use for RHProxy: 0

2 GPIO Pin 1 DO3 1 -

3 GPIO Pin 2 DO1 2 -

4 GPIO Pin 3 DO0 3 -

5 GPIO Pin 4 I2C1_GPIO 4 I2C1 (CN13) interrupt pin

6 GPIO Pin 5 I2C0_GPIO 5 I2C0 (CN13) interrupt pin

12 Setting Up the Windows 10 Operating System

Table 3. I2C and GPIO names and pin mappings (continued)

S No. Peripheral detail Hardware signal name Name/Number to use with RHProxy

Comments

7 GPIO Pin 6 User LED 1 6 -

8 GPIO Pin 7 User LED 2 7 -

9 GPIO Pin 8 User LED 3 8 I2C0 (CN43) interrupt pin

10 GPIO Pin 9 DI0 9

11 GPIO Pin 10 DI1 10 -

12 GPIO Pin 11 DI2 11 -

13 GPIO Pin 12 DI3 12 -

14 GPIO Pin 13 DI4 13 -

15 GPIO Pin 14 DI5 14 -

16 GPIO Pin 15 DO4 15 -

17 GPIO Pin 16 DO5 16 -

System shutdown and restart

Steps

1. Click the Start icon.

2. Click Power, then select Restart or Shut down.

Configure LAN network

Steps

1. Connect an Ethernet cable to the Ethernet port.

The following prompt is displayed:

Figure 6. Prompt for discoverable in network

2. Select Yes.

Setting Up the Windows 10 Operating System 13

Optional expansion modules

The EGW-3200 supports several expansion modules, in mini PCI express (mPCIe), M.2, and I2C formats. The required Windows software package is already installed in the Windows image for the following modules. Refer to the website of the manufacturer for more details.

Table 4. Optional expansion modules

S No. Format Interface details Reference link

1 mPCIe EMUC-B202 (Isolated Canbus) https://www.innodisk.com/en/products/embedded-peripheral/ communication/emuc-b202

2 mPCIe EMPL-G2P1 (Isolated GbE with PoE out)

https://www.innodisk.com/en/products/embedded-peripheral/ communication/empl-g2p1

3 mPCIe EMP2-X4S2 (Isolated RS-422 and RS-485)

https://www.innodisk.com/en/products/embedded-peripheral/ communication/emp2-x4s2

4 mPCIe EMP2-X2S1 (Isolated RS-232) https://www.innodisk.com/en/products/embedded-peripheral/ communication/emp2-x2s1

5 mPCIe EMPL-G202 (Isolated GbE LAN) https://www.innodisk.com/en/products/embedded-peripheral/ communication/empl-g202

6 M.2 2230 Intel WiFi AX210 https://ark.intel.com/content/www/us/en/ark/products/ 204836/intel-wifi-6e-ax210-gig.html

7 M.2 3042 Sierra EM7565 (4G) https://www.sierrawireless.com/iot-solutions/products/em7565/

8 M.2 3042 Thales MV31-W (5G) https://www.thalesgroup.com/en/markets/digital-identity-and- security/iot/iot-connectivity/products/iot-products/mv31-w- ultra-high

9 Internal I2C wafer

ADLINK 55-49071 (Isolated DI/O)

N/A

Configure WWAN network

Prerequisites

Follow the procedures in the service manual to install and configure the WWAN module and the corresponding carrier USIM card for the system.

About this task

After the WWAN module and the SIM cards are installed, perform the following steps.

Steps

1. Click the Start icon.

2. Type Settings and click the Settings app.

3. Select Network & Internet.

4. Locate the WWAN connection in the WiFi section and select the entry to connect and disconnect from the WWAN adapter.

Configure Bluetooth

Steps

1. Click the Start icon.

2. Type Settings and click Settings.

3. Select Devices from the Settings menu, then select Bluetooth from the menu on the left panel.

14 Setting Up the Windows 10 Operating System

Cellular network configuration

If the optional cellular network (4G or 5G) is used, see the following link for information about configuration and usage.

https://support.microsoft.com/en-us/windows/cellular-settings-in-windows-905568ff-7f31-3013-efc7-3f396ac92cd7

Accessing GPS

Go to the following link for information about accessing the GPS and for various Windows settings.

https://support.microsoft.com/en-us/windows/windows-location-service-and-privacy-3a8eee0a-5b0b-dc07- eede-2a5ca1c49088

5G module firmware update procedure

Download Firmware Selector Tool and driver

Steps

1. Download the Firmware Selector Tool from the EGW-3200 page of the Dell Technologies Support Site.

2. Unzip the files and open the unzipped folder.

Figure 7. Firmware tool and driver file

3. Save the driver to the following folder: \F0.1.0.0.9_AP077\SDX55_Thales_USB_x64_20220208_V023_WHQL_INF_Injection\.

Figure 8. 5G firmware driver

4. Save the Firmware Selector Tool to the following folder: \F0.1.0.0.9_AP077 \x64-F0.1.0.0.9 (AP077)_FST_Thales_20220119\Utilities\x86-Firmware Selector Tool (V2.0.3.3)_Thales.

Setting Up the Windows 10 Operating System 15

Figure 9. Firmware Selector Tool

Remove old and install new drivers

About this task

MV31-W modules require the (20200804_V007) WIN10 driver. However, this driver must be installed after removing old USB drivers that were automatically installed by WIN10 PC.

Steps

1. Before connecting the MV31-W module, open the Device Manager, click View, and select Show hidden devices.

Figure 10. Show hidden devices

2. Remove (Uninstall) all devices that start with: Cinterion PID 0x00B3.

16 Setting Up the Windows 10 Operating System

Figure 11. Uninstall Cinterion devices

3. Open the driver package folder (SDX55_Thales_USB_x64_20220208_V023_WHQL_INF_Injection) and run install_Thales.cmd as administrator.

Figure 12. Run driver command

Update 5G firmware in Windows

About this task

After all the required drivers have been updated, use the Firmware Selector Tool provided by Thales DIS AIS to update the firmware.

Steps

1. Go to Utilities > Firmware, and select the Firmware Selector Tool.

Setting Up the Windows 10 Operating System 17

Figure 13. Firmware Selector Tool

2. The tool will automatically select the ATT T99W175 firmware version to update.

Figure 14. Firmware to update

3. Wait for the firmware download to finish.

18 Setting Up the Windows 10 Operating System

Figure 15. Firmware download status bar

4. Once complete, the Firmware upgrade success message will appear. Click OK.

Setting Up the Windows 10 Operating System 19

Figure 16. Firmware upgrade success

4G module firmware update procedure

Steps

1. Download the firmware update tool (.exe) from the Sierra website at: https://source.sierrawireless.com/resources/ airprime/minicard/75xx/em_mc75xx-approved-fw-packages/#sthash.nOT5xBmR.a4H4BqL8.dpbs.

20 Setting Up the Windows 10 Operating System

Figure 17. 4G firmware update tool

2. Right-click the .exe file and run as administrator. The firmware update runs automatically.

BMC firmware update procedure

Steps

1. Confirm that the Intel Serial IO - I2C and GPIO drivers are installed.

If the I2C driver is not installed, there will be a yellow triangle with an exclamation point over the menu icon in System devices > Resource Hub proxy device in the Device Manager.

Setting Up the Windows 10 Operating System 21

Figure 18. I2C controller not found

If this is the case, perform the following steps:

a. Download both drivers from the EGW-3200 page of the Dell Technologies Support Site. b. Install the drivers. When all the required drivers are installed, there is no yellow triangle with an exclamation point over

the icon in the device manager.

22 Setting Up the Windows 10 Operating System

Figure 19. Drivers installed

c. When prompted, reboot the system.

Figure 20. Reboot system

2. Execute ad-litbmc-fwupd.exe in command prompt to show usage of the tool.

Setting Up the Windows 10 Operating System 23

Figure 21. Show usage

3. Update the firmware version by using the ad-litbmc-fwupd.exe -u command. After the update, a message shows that it is mandatory to reboot the system for changes to take affect. The tool also prints this message.

Figure 22. Reboot message

Reading the firmware version without rebooting will not show the updated version.

Figure 23. Updated version not shown

4. Reboot the device.

24 Setting Up the Windows 10 Operating System

Figure 24. Reboot device

5. After the reboot is complete, read the firmware version to confirm that it shows in the output.

Figure 25. Update successful

Accessing and updating the BIOS Basic Input/Output System (BIOS) is a program that provides a basic level of communication between the processor and peripherals. In addition, the BIOS also contains codes for various advanced features applied to the EGW-3200. The BIOS setup program includes menus for configuring settings and enabling features of the EGW-3200. Most users do not need to use the BIOS setup program, as the EGW-3200 ships with default settings that work well for most configurations.

Access the BIOS settings

Steps

1. Enter the BIOS setup by pressing the Delete key on the keyboard when the system is powered on. The POST (Power On Self Test) message is displayed.

NOTE: The EGW-3200 controller supports a one-time boot menu allowing the selection of the boot device.

2. Enter the Boot Menu by selecting F7 at POST.

Update the BIOS using UEFI capsule update from Windows

About this task

The EGW-3200 supports UEFI capsule updates and can be updated natively within the Windows OS.

NOTE: Windows allows updating of the BIOS only if it is a newer version of the BIOS than what is already on the system.

The BIOS version number is available from the BIOS Main tab.

Setting Up the Windows 10 Operating System 25

Figure 26. BIOS version number under Main tab

Steps

1. Download the newer version of the BIOS in .msi format from the Dell Technologies Support Site and run the executable from an elevated command prompt with administrator privileges. Windows prompts to restart the system for a firmware change.

Figure 27. Restart computer

2. Click Restart Now to restart the system. The system will start the BIOS firmware update process.

Figure 28. System update progress bar

Results

After the update is complete, the BIOS screen will show the newer version details.

SuperIO Function Library This section describes use of the SuperIO (SIO) function library for the EGW-3200. The SIO function library includes the watchdog timer function and the hardware monitor function. The watchdog timer is a hardware mechanism provided to reset the system if the operating system or an application stalls. After starting, the watchdog timer in the application must be periodically reset before the timer expires. Once the watchdog timer expires, a hardware-generated signal is sent to reset the system. The hardware monitor is a mechanism provided to collect the wide range of information related to hardware health, including CPU temperature, board temperature, and various voltage values.

26 Setting Up the Windows 10 Operating System

Windows SIO API

The SIO API library files and a demo program (including source code) are part of the board support package for the EGW-3200 (BSP/Sample_App_Source/SuperIO) and can be downloaded from the Dell Technologies Support Site.

SIO_WDT_Set

Sets the timeout value of the watchdog timer. SIO_WDT_Stop should be called before the expiration of watchdog timer, or the system will reset.

I32 SIO_WDT_Set (unsigned char val, int mode)

Parameters valSpecifies the value for the watchdog timer. A valid value is 1 - 255.

modeSpecifies the mode of the timeout value. The valid mode of the timeout value is seconds (0) or minutes (1).

Return codes 0 if timeout value of watchdog timer is successfully set.

Negative errno if timeout value of watchdog timer is failed to set.

SIO_WDT_GetCurrentTime

Gets the current timeout value of the watchdog timer, gives remaining watchdog timer timeout value and mode.

I32 SIO_WDT_GetCurrentTime (unsigned char* pTime, int* mode)

Parameters pTImePointer variable to return the remaining watchdog time for expiry.

ModePointer variable to return the current watchdog mode.

Return codes 0 if timeout value of watchdog timer is available.

Negative errno if failed to get the current timeout value and mode of the watchdog timer.

SIO_WDT_Stop

Stops the watchdog timer.

I32 SIO_WDT_Stop ()

Parameters None

Return codes 0 if watchdog timer is successfully stopped.

Negative errno if watchdog timer fails to stop.

GetCurrentCPUTemp

Gets the hardware monitor values.

Setting Up the Windows 10 Operating System 27

I32 GetCurrentCPUTemp (int *temp)

Parameters tempInteger pointer for getting the CPU temperature.

Return codes 0 if temperature is read successfully.

Negative errno if failed to get the data from hardware monitor.

Error codes

For the various functions previously listed, the following is the Errno values in case of failure.

enum SIO_ERRORS_LIST{ ERROR_SIO_INVALID_DEVICE_HANDLE = -100, ERROR_SIO_IOCTL, ERROR_SIO_INVALID_RW_SEL, ERROR_SIO_INVALID_MODE_SEL, ERROR_SIO_WDT_NOT_ENABLED };

Build the SIO sample application

Prerequisites

Visual Studio 2019 is required for this task. Do download and install, perform the following steps:

1. Select Workloads. 2. Open Visual Studio Installer and click Modify to customize your installation. 3. Select Desktop development with C++ workload. 4. Select UWP. 5. Select Individual components, and under Complier, build tools, and runtimes, make sure that the following boxes are

checked: a. MSVC v142 -VS 2019 C++ x64/x86 buildtools (latest) is checked. b. MSVC v142 -VS 2019 C++ x64/x86 Spectre-mitigated libs (latest) is checked.

6. Make sure the SDK is installed. Download and install the corresponding WDK version. 7. Install the latest supported English (en-us) Microsoft Visual C++ redistributable packages for Visual Studio 2015, 2017, 2019,

and 2022 from the following URL: https://aka.ms/vs/17/release/vc_redist.x64.exe.

About this task

NOTE: The sample executable binaries are built with SDK-10.0.19041.685 and WDK-10.0.19041.685 versions. The procedure

may vary slightly if using other versions.

To build the sample application, perform the following steps.

Steps

1. Open Sample_App_Source/SuperIO/superior_nct.sln in Visual Studio.

2. Change Solution configuration to Release and Solution platform to x64.

3. Under the Build menu, select Build Solution.

Execute the SIO sample application

About this task

The EGW-3200 Windows image includes pre-installed sample application binaries.

Steps

1. Open the command prompt in administrator mode.

28 Setting Up the Windows 10 Operating System

2. Change to the following directory: C:\Program Files\Dell\EGW3200 Software tools\Application Binaries

3. Use the following commands to execute the SIO sample application:

a. To set the watchdog timer:

> superiotest wdtset

Where time is between 1 to 255, and mode is seconds or minutes.

b. To stop the watchdog timer:

> superiotest wdtstop

c. To get the remaining watchdog time and mode:

> superiotest wdtgettime

d. To get CPU temperature:

> superiotest getcputemp

Digital Input/Output Function of the Intel PCH Controller The EGW-3200 uses Microsofts RHProxy interface for accessing the GPIO pins from PCH chipset. All the necessary changes are done in the BIOS. For a sample program, the below Microsoft supplied source code can be used.

https://github.com/microsoft/Windows-iotcore-samples/tree/develop/BusTools/GpioTestTool

The EGW-3200 has six DI pins, six DO pins, and three user LEDs. For the pin details and pin numbers to be used for the sample application, refer the table in RHProxy driver - I2C and GPIO on page 12.

Build the GPIO sample application

Prerequisites

Visual Studio 2019 is required for this task. Do download and install, perform the following steps:

1. Select Workloads. 2. Open Visual Studio Installer and click Modify to customize your installation. 3. Select Desktop development with C++ workload. 4. Select UWP. 5. Select Individual components, and under Complier, build tools, and runtimes, make sure that the following boxes are

checked: a. MSVC v142 -VS 2019 C++ x64/x86 buildtools (latest) is checked. b. MSVC v142 -VS 2019 C++ x64/x86 Spectre-mitigated libs (latest) is checked.

6. Make sure the SDK is installed. Download and install the corresponding WDK version. 7. Install the latest supported English (en-us) Microsoft Visual C++ redistributable packages for Visual Studio 2015, 2017, 2019,

and 2022 from the following URL: https://aka.ms/vs/17/release/vc_redist.x64.exe.

About this task

NOTE: The sample executable binaries are built with SDK-10.0.19041.685 and WDK-10.0.19041.685 versions. The procedure

may vary slightly if using other versions.

To build the sample application, perform the following steps.

Setting Up the Windows 10 Operating System 29

Steps

1. Open Sample_App_Source/GPIOTestTool/windows-iot-bus-tools.sln in Visual Studio.

2. Change Solution configuration to Release and Solution platform to x64.

3. Under the Build menu, select Build Solution.

Execute the GPIO sample application

About this task

The EGW-3200 Windows image includes pre-installed sample application binaries.

Steps

1. Open the command prompt in administrator mode.

2. Change to the following directory: C:\Program Files\Dell\EGW3200 Software tools\Application Binaries

3. Use the following commands to execute the GPIO sample application:

a. To open the pin connection:

> GpioTestTool.exe

b. To set the drive mode to output:

> setdrivemode output

c. To set the DO0 pin to low:

> write 0

d. To set the DO0 pin to high:

> write 1

Similarly, the pin can be opened and set to drive mode input and the current value can be read using a read command. Use the help command for detailed usage.

Digital Input/Output Function from PCA9535 GPIO Users can opt to connect a PCA9535 GPIO expander module to one of the I2C buses of the EGW-3200.

PCA9535 GPIO Expander API

The PCA9535 GPIO modules API library files and a demo program (including source code) are included in the board support package for the EGW-3200.

PCA9535Init

This funcrtion is used to initialize the directions of the GPIO pins. Also, it opens the handle to the I2C bus and it is necessary to call this function before executing any of the other APIs.

int PCA9535Init (unsigned int i2cnumber)

Parameters i2cnumberThe I2C bus number to which the PCA9535 board is connected. Can be 0 or 1.

Return codes 0 if the initialization is successful.

30 Setting Up the Windows 10 Operating System

Negative errno if failed.

DioSetLevel

Sets the GPIO level for output pins.

int DioSetLevel (unsigned char data, unsigned char mask)

Parameters dataThe new GPIO level to be set for the output pins.

maskGPIO output pins are changed only for those corresponding to the bits that are set to 1 in the mask. Other pin values remain unchanged.

Return codes 0 if the initialization is successful.

Negative errno if failed.

DioGetLevel

Gets the current GPIO level for both input and output pins.

int DioGetLevel (unsigned int mask, unsigned int* GetPinLevel)

Parameters maskThe GPIO input pins are updated in the GetPinLevel only for the bits which are set to 1 in the mask.

GetPinLevelPointer to store the read value. The first eight bits (Bit 0 to 7) contain the GPIO input pins voltage level. The second eight bits (Bit 8 to 15) contain the GPIO output pins voltage level.

Return codes 0 if the initialization is successful.

Negative errno if failed.

Error codes

For the various functions previously listed, the following is the Errno values in case of failure.

enum errorcodes { Error_Pointer_Invalid = -100, Error_I2C_controller_NotFound, Error_I2C_Open_Failed, Error_I2C_Bus_Invalid, Error_Mutex_Failed, Error_I2CTransfer_Partial, Error_I2CTransfer_SlaveAddressNotAcknowledged, Error_I2CTransfer_ClockStretchTimeout, Error_I2CTransfer_UnknownError };

Build the PCA9535 sample application

Prerequisites

Visual Studio 2019 is required for this task. Do download and install, perform the following steps:

1. Select Workloads. 2. Open Visual Studio Installer and click Modify to customize your installation.

Setting Up the Windows 10 Operating System 31

3. Select Desktop development with C++ workload. 4. Select UWP. 5. Select Individual components, and under Complier, build tools, and runtimes, make sure that the following boxes are

checked: a. MSVC v142 -VS 2019 C++ x64/x86 buildtools (latest) is checked. b. MSVC v142 -VS 2019 C++ x64/x86 Spectre-mitigated libs (latest) is checked.

6. Make sure the SDK is installed. Download and install the corresponding WDK version. 7. Install the latest supported English (en-us) Microsoft Visual C++ redistributable packages for Visual Studio 2015, 2017, 2019,

and 2022 from the following URL: https://aka.ms/vs/17/release/vc_redist.x64.exe.

About this task

NOTE: The sample executable binaries are built with SDK-10.0.19041.685 and WDK-10.0.19041.685 versions. The procedure

may vary slightly if using other versions.

To build the sample application, perform the following steps.

Steps

1. Open Sample_App_Source/PCA9535/PCA9535_I2C.sln in Visual Studio.

2. Change Solution configuration to Release and Solution platform to x64.

3. Under the Build menu, select Build Solution.

Execute the PCA9535 sample application

About this task

The EGW-3200 Windows image includes pre-installed sample application binaries.

Steps

1. Open the command prompt in administrator mode.

2. Change to the following directory: C:\Program Files\Dell\EGW3200 Software tools\Application Binaries

3. Use the following commands to execute the PCA9535 sample application:

a. Use the following command to execute the pca9535_interrupt.exe with two arguments ( and ):

> pca9535_interrupt.exe 0 8

b. Execute the pca9535App.exe for write functionality:

Pca9535App.exe i2c write

> pca9535App.exe i2c 0 write 0xff 0xff

c. Execute the pca9535App.exe for read functionality:

pca9535App.exe i2c read

> Pca9535App.exe i2c 0 read 0xff

Hardware monitor API The EGW-3200 has various hardware monitor features which can be retrieved by using the following function parameters.

32 Setting Up the Windows 10 Operating System

EApiLibInitialize

Initialize function. Call this function before accessing any of the API.

int EApiLibInitialize ()

Parameters None

Return codes 0 if the initialization is a success.

Negative errno if failed.

EApiBoardGetValue

Gets the hardware monitor (current/voltage/temperature) values.

int EApiBoardGetValue (int parameter)

Parameters The parameters could be one of the following, and the macro is self-explanatory.

EAPI_ID_HWMON_SYSTEM_TEMP EAPI_ID_HWMON_VOLTAGE_VBAT EAPI_ID_HWMON_VOLTAGE_5VSB EAPI_SEMA_ID_BOARD_MAIN_CURRENT EAPI_SEMA_ID_HWMON_VOLTAGE_VIN

Return codes 0 if the initialization is a success.

Negative errno if failed.

EApiUnInitialize

Un-initialize function. Call this function before exiting the application.

Humidity and temperature sensor setup

Prerequisites

Windows standard APIs: FromIdAsync(String), GetCurrentReading(), and GetDeviceSelector(Guid interfaceId) are used for accessing the sensor. For details, go to https://docs.microsoft.com/en-us/uwp/api/windows.devices.sensors.custom? view=winrt-22000.

About this task

The HDC1010 humidity and temperature sensor is connected to I2C bus 2 of the EGW-3200. This sensor is detected as a custom sensor and follows Windows sensor framework.

Build the sample application

Prerequisites

Visual Studio 2019 is required for this task. To download and install, perform the following steps:

1. Select Workloads. 2. Open Visual Studio Installer and click Modify to customize your installation.

Setting Up the Windows 10 Operating System 33

3. Select Desktop development with C++ workload. 4. Select UWP. 5. Select Individual components, and under Complier, build tools, and runtimes, make sure that the following boxes are

checked: a. MSVC v142 -VS 2019 C++ x64/x86 buildtools (latest) is checked. b. MSVC v142 -VS 2019 C++ x64/x86 Spectre-mitigated libs (latest) is checked.

6. Make sure the SDK is installed. Download and install the corresponding WDK version. 7. Install the latest supported English (en-us) Microsoft Visual C++ redistributable packages for Visual Studio 2015, 2017, 2019,

and 2022 from the following URL: https://aka.ms/vs/17/release/vc_redist.x64.exe.

About this task

To build the sample application, perform the following steps.

Steps

1. Open the solution file of the source code in Visual Studio.

2. Change Solution configuration to Release and Solution platform to x64.

3. In the Solution Explorer pane, right-click on the project and select Properties.

Figure 29. Solution Explorer - Properties

4. Change the Target Platform Version and Target Platform Min. Version to 10.0.17763.0 and Platform Toolset to the Visual Studio version used. Set the Configuration to Release and Platform to x64. Click Apply and OK.

34 Setting Up the Windows 10 Operating System

Figure 30. Properties - Platform Toolset

5. Select Build > Build Solution to build the project.

Figure 31. Build Solution

Setting Up the Windows 10 Operating System 35

Create the MSIX package

Steps

1. Place the Assets folder in the current directory (Path: x64/Release/ilc/in).

2. Right-click on the project and Select Publish > Create App Packages.

3. Enable Side-loading in the first page of the wizard and then click Next.

4. On the Select signing method page, select whether to skip packaging signing or select a certificate for signing. For an MSIX package to be installed, it must be signed with a certificate that is trusted on the machine. The certificate is password-protected. It is imported to the certificate store for package signing.

Figure 32. Create Certificate

36 Setting Up the Windows 10 Operating System

Figure 33. Certificate Trust

5. In Select and configure packages wizard, select the Architecture as x64 and Solution Configuration as Release (x64) and click Next.

6. Provide the path for the Installer location (where the app is published) and select Create.

Results

The project builds and App bundle is created. The package summary appears.

Setting Up the Windows 10 Operating System 37

Figure 34. Finished creating package

Import the certificate

Steps

1. Unzip the folder Sensor Applications.7z containing the MSIX bundle.

2. Locate the certificate files for this application in folder HDC1010.

3. Go to Start > Manage computer certificates. On the left pane of the certIm wizard, select Trusted People.

4. Select Action > All Tasks > Import. The Certificate Import Wizard appears. Click Next.

38 Setting Up the Windows 10 Operating System

Figure 35. Import Certificate

5. Include the path where the certificate is located. Click Next.

6. The certificate is imported. Click Finish.

Setting Up the Windows 10 Operating System 39

Figure 36. Completing the Certificate Import Wizard

7. The imported certificate is added in the Certificates directory under Trusted People. If not, select Action > Refresh, and the certificate is added.

40 Setting Up the Windows 10 Operating System

Figure 37. Certificates

Install the application

About this task

The example referred to in the following steps is for the HDC1010 humidity sensor application. The same steps are applicable for other two sensors.

Steps

1. Install the App Installer from the Microsoft store. To do this, open the POWERSHELL in ADMINISTRATOR Mode and execute the following command:

Get-AppXPackage*WindowsStore* -AllUsers| Foreach {Add-AppxPackage-DisableDevelopmentMode-Register "$($_.InstallLocation)\AppXManifest.xml"}

2. Run the .msixbundle file. A window appears prompting to install the application. Click Install.

Setting Up the Windows 10 Operating System 41

Figure 38. Install prompt

The application is installed and the UWP application appears.

3. Click Start. The application name appears.

Figure 39. Application name in Start Menu

42 Setting Up the Windows 10 Operating System

Run the temperature sensor application

About this task

Two events are registered for the application: DataEvents and Polling.

Steps

1. Select DataEvents > Enable. Temperature and Relative Humidity values are displayed.

2. Select DataEvents > Disable and follow Step 1 to obtain the next set of readings.

Figure 40. DataEvents

3. Select Polling and repeat Steps 1 and 2.

Figure 41. Polling

Setting Up the Windows 10 Operating System 43

Pressure sensor setup

Prerequisites

Windows standard APIs: FromIdAsync(String), GetCurrentReading(), GetDefault(), and GetDeviceSelector(Guid interfaceId) are used for accessing the sensor. For details, go to https://docs.microsoft.com/en-us/uwp/api/windows.devices.sensors.custom? view=winrt-22000.

About this task

The DPS310 pressure sensor is connected to I2C bus 2 of the EGW-3200. This sensor is detected as a barometer sensor and follows Windows sensor framework.

See the Humidity and temperature sensor setup on page 33 section for the following tasks:

Build the sample application Create the MSIX package Import the certificate Install the application

Run the pressure sensor application

About this task

Two events are registered for the application: DataEvents and Polling.

Steps

1. Select DataEvents > Enable. The Pressure value is displayed in hectopascals.

2. Select DataEvents > Disable and follow Step 1 to obtain the next set of readings.

Figure 42. DataEvents

3. Select Polling > Get Data and repeat Steps 1 and 2.

44 Setting Up the Windows 10 Operating System

Figure 43. Polling

Accelerometer sensor setup

Prerequisites

Windows standard APIs: FromIdAsync(String), GetCurrentReading(), GetDefault(), and GetDeviceSelector(Guid interfaceId) are used for accessing the sensor. For details, go to https://docs.microsoft.com/en-us/uwp/api/windows.devices.sensors.custom? view=winrt-22000.

About this task

The ADXL345 accelerometer sensor is connected to I2C bus 2 of the EGW-3200. This sensor is detected as a accelerometer sensor and follows Windows sensor framework.

See the Humidity and temperature sensor setup on page 33 section for the following tasks:

Build the sample application Create the MSIX package Import the certificate Install the application

Run the accelerometer sensor application

Steps

1. Choose accelerometer: Click the Standard type of accelerometer.

Setting Up the Windows 10 Operating System 45

Figure 44. Choose accelerometer

2. Data Events: Click Enable. The corresponding x, y, and z values are displayed as you change the position of the sensor.

Figure 45. Data Events

3. Polling: Click Enable. Acceleration values at a particular time interval are displayed.

46 Setting Up the Windows 10 Operating System

Figure 46. Polling

4. OrientationChanged: Click Enable to display the accelerometer readings with and without the transformation.

Figure 47. OrientationChanged

Intel OOB Out-of-Band (OOB) is the service that is performed if the processor platform runs on the ARM Cortex-M7 processor that is independent of the systems main CPU complex and host OS. The OOB service is enabled through PSE and allows users to execute cloud-initiated commands such as reboot, shutdown, and powerup, and to decommission device operations using the scalable device management clouds as the Azure IOT central cloud.

Table 5. Hardware requirements

Device Specification

Linux OS (development machine) Ubuntu OS version 18.04 LTS installed with display monitor, keyboard, and mouse

Edge Gateway 3200 (target board) Windows 10 OS installed with display monitor, keyboard, and mouse

Other hardware A router with ethernet LAN cable (wired)

Host and target setup

Host setup

The development machine (host) should have the Linux Ubuntu OS (version 18.04 LTS and above) installed.

Setting Up the Windows 10 Operating System 47

NOTE: We have used Ubuntu version 20.04 LTS.

Target setup

The Dell EMC Edge Gateway 3200 with the Elkhart Lake Platform and with Windows 10 Enterprise LTSC 2019 installed.

Perform changes in the BIOS

Steps

1. At the BIOS menu, select Chipset > PCH-IO Configuration > PSE Configuration > OOB [Enabled].

2. Set this OOB to be Enabled. OOB provisioning will fail in OOB service provisioning if this is not set to Enabled.

3. At the BIOS menu, select Chipset > PCH-IO Configuration > PSE Configuration > GBE0 [PSE owned with pin muxed].

Figure 48. Configure OOB enabled

4. Press the Esc button to return to the main menu. When prompted with Save Changes and exit?, press Y to save the settings.

5. Perform a hard reset by turning the power off and on again. This is necessary when changing a PSE-related setting.

6. Connect an Ethernet cable to PSE GbE0.

Results

You have now set up hardware network connectivity on the target board, which is now ready to connect with the Cloud Service Provider (CSP), as detailed in the following sections.

Cloud setup and configuration

About this task

The cloud adapter module maps specific cloud functions based on the cloud service provider and implements specific cloud customizations such as Message Queuing Telemetry Transport (MQTT) topics and message formats.

48 Setting Up the Windows 10 Operating System

Set up Azure IoT Central for device management

About this task

Intel provides the connectivity reference implementation for the Microsoft Azure device management solution.

Steps

1. Create an Azure account and an Azure IoT Central application for the device to connect to its intended portal customers. Refer to the instructions on the Azure website to create an Azure account.

2. Create an IoT Central application by importing the reference template from the Azure IoT Central site.

3. Create a template application name and URL, then click Create to create an IoT central application template.

Figure 49. Azure IoT central application template

4. After creating the Azure portal and template, add a new device. Click the Devices tab, select the Intel template, and then click the + symbol to create a real device.

Setting Up the Windows 10 Operating System 49

Figure 50. Create a new device

5. Copy the connectivity credentials for the device to connect back to the portal. Copy the connection credentials by clicking the Connect button. The following screen appears.

50 Setting Up the Windows 10 Operating System

Figure 51. Device connection

6. Keep a copy of the following data. Use these data to create credentials for the target device to connect to the portal over the MQTT protocol. Intel provides a sample script that gives the credentials by invoking the Azure IoT Hub Device Provisioning Service (DPS).

ID scope Device ID Primary key

Create an OOB capsule binary

About this task

In this task, the user generates the OOB credentials capsule binary in the host machine.

Steps

1. Prepare the OOB credentials capsule from the host machine.

2. Get the Intel Programmable Service Engine SDK source code.

3. Download the Firmware and BIOS Utilities (FBU), which is the configuration tool for provisioning data into BIOS subregions. The latest open-source FBU release package can be downloaded from the iotg-fbu page at the GitHub software development platform.

Setting Up the Windows 10 Operating System 51

4. Copy all files from the pse-dev-code-base/tools/capsule_script folder to the scripts folder of the FBU tool. This ensures that you have all of the files needed to generate the MAC and OOB credentials capsules in the correct location:

cp ~/intelpse/pse_sdk/code/pse-dev-code-base/tools/capsule_scripts/* ~/intelpse/fbu/ siiptool/scripts/

5. Go to the scripts folder of the FBU tool:

cd ~/intelpse/fbu/siiptool/scripts

6. Confirm that the files were added to the scripts folder, as shown in the following figure.

Figure 52. Capsule script file

7. Run the user script using the following commands:

chmod +x capsule_json_script.sh

8. Launch the script according to your cloud certificate:

./capsule_json_script.sh azure.pem

NOTE: azure.pem is the cloud certificate.

9. The script will prompt for the following user inputs:

a. Select Capsule Type: Type 1 for OOB.

b. Enter Capsule file name: Type a filename for the capsule binary, for example OobCapsule.

c. Select Cloud Provider: Type 2 for Azure.

d. Enter Scope ID: Provide the scope ID copied in the previous task, Set up Azure IoT Central for device management on page 49.

e. Enter Device ID: Provide the device ID copied in the previous task, Set up Azure IoT Central for device management on page 49.

f. Enter Primary Key: Provide the primary key copied in the previous task, Set up Azure IoT Central for device management on page 49.

g. Enter Proxy (SOCKS5) IP: Enter the proxy address of your organization. Press Enter for a blank field entry if there is no proxy address.

10. At completion, a JSON file (.json) and its capsule binary file (.bin) are created.

11. Copy the .bin file to the USB flash drive.

Results

The flash drive now includes the MAC capsule (Phy.zip) and OOB credentials capsule files.

52 Setting Up the Windows 10 Operating System

OOB service provisioning

About this task

In this task, the user connects the USB flash drive with the capsule files from the host machine, inserts the flash drive to a USB port on the EGW-3200 target board, and updates the MAC capsule and OOB capsule binary files.

Update the MAC capsule

Steps

1. To update the MAC capsule, use the tool (Phy.zip) and update the MAC address under UEFI Shell.

2. Use CapsuleApp.efi to update the MAC capsule under UEFI Shell directly.

Usage: CapsuleApp.efi capsule.out.bin

3. Perform a hard reset by turning the power off and on after updating the MAC address.

Update the OOB credentials capsule

Steps

1. To update the OOB capsule, use CapsuleApp.efi with capsule binary under UEFI Shell directly.

Usage: CapsuleApp.efi OobCapsule.bin

2. Perform a hard reset by turning the power off and on after updating the OOB capsule.

3. At the BIOS menu, select Chipset, as shown in the following figure.

4. Find the OOB Cloud Type, OOB Cloud URL, and OOB Cloud Port information. The OOB feature state and provisioning state should be Enabled, as shown in the following figure.

Figure 53. BIOS menu

Activate OOB commands using Azure

Prerequisites

A device management cloud account is created and the EGW-3200 is successfully provisioned with the OOB credentials to connect to the cloud.

Setting Up the Windows 10 Operating System 53

About this task

In this task, the user sends an OOB command from the Azure IoT Central portal.

Steps

1. After provisioning and connecting the device to the Azure IoT Central portal, the device status changes to provisioned.

2. Click on the device and then navigate to the following for more information:

a. Overview: To view the Device Properties.

Figure 54. Overview

b. Commands: to send OOB power control commands to the device.

3. The OOB service, enabled through the PSE, allows the user to execute the following commands:

Reboot: Reboots platform. Shutdown: Puts the platform in a low power state. Power Up: Brings the platform out of low power state. Decommission: Un-registers the platform, withdrawing the device from remote management using the cloud.

54 Setting Up the Windows 10 Operating System

Figure 55. Commands

4. The user can view the device events and responses under the Events View or Raw data tabs.

Figure 56. Events View

Setting Up the Windows 10 Operating System 55

Figure 57. Raw data

COM Port and Ethernet Names for Mini PCIe Cards Table 6. Mini PCIe card details

S.No mPCie module Isolated COM A (port type)

Isolated COM B (port type)

Remarks

1 EMP2-X4S2 RS422/RS485 RS422/RS485 Total of four COM ports are detected in the Device Manager. However, only two COM ports can be accessed. Assume that the first COM port of EMP2- X4S2 is COM X, as seen in the device manager, then, based on the cable tag:

RS-422 A - COM X

RS-422 B - COM X+1

RS-485 A - COM X+2

RS-485 B - COM X+3

2 EMP2-X2S1 RS232 RS232 Total of two COM ports are detected in the Device Manager. Assume that the first COM port of EMP2-X2S1 is COM X, then, based on the cable tag:

Isolated COM A - COM X

Isolated COM B - COM X+1

For EMP2-X2S1:

Both EMP2-X2S1 and EMP2-X4S2 use the same VID and DID. By default, the EMP2-X2S1 module uses the driver files of the EMP2-X4S2 module, and so the device manager shows four COM ports. To overcome this issue, manually install the EMP2-X2S1 Windows 10 64-bit driver package.

56 Setting Up the Windows 10 Operating System

For EMPL-G2P1 and EMPL-G202:

Get the Ethernet name from Control Panel > Network and Internet > Network Connections, based on the MAC address of the Ethernet ports.

Sensor APIs The sensors of the EGW-3200 use Microsoft default sensor APIs. This section serves as a programming reference of the Win32 API. For more detail, see https://docs.microsoft.com/en-us/windows/win32/api/sensorsapi/.

Table 7. Console application APIs for ADXL345/HDC1010/DPS310

S.No Console application APIs

Description Supported/not supported

1. GetSensorsByType Retrieves a collection containing all sensors associated with the specified type.

Supported

2. GetData Retrieves the most recent sensor data report. Supported

3. GetAt Retrieves the sensor at the specified index in the collection.

Supported

4. GetCategory Retrieves the identifier of the sensor category. Supported

5. GetSensorValue Retrieves a single data field value from the data report. Supported

6. GetSensorValues Retrieves a collection of data field values. Supported

7. GetCount Retrieves the count of sensors in the collection. Supported

8. GetFriendlyName Retrieves the sensor name that is intended to be seen by the user.

Supported

9. GetState Retrieves the current operational state of the sensor. Supported

10. SetEventSink Specifies the interface through which to receive sensor event notifications.

Supported

11. GetSensorByID Retrieves a pointer to the specified sensor. Supported

12. GetProperties Retrieves multiple sensor properties. Supported

13. GetProperty Retrieves a property value. Supported

14. GetSupportedDataFields Retrieves a set of PROPERTYKEYs that represent the data fields the sensor can provide.

Supported

15. SetProperties Specifies sensor properties. Supported

16. Add Adds a sensor to the collection. Supported

17. GetTimestamp Retrieves the time at which the data report was created.

Supported

18. OnDataUpdated Provides sensor event data. Supported

19. OnEvent Provides custom event notifications. Supported

20. OnLeave Provides notification that a sensor device is no longer connected.

Supported

21. OnStateChanged Provides a notification that a sensor state has changed.

Supported

22. GetEventInterest Retrieves the current event interest settings. Supported

23. SetEventInterest Specifies the list of sensor events to receive. Supported

24. SupportsEvent Indicates whether the sensor supports the specified event.

Supported

Setting Up the Windows 10 Operating System 57

Table 8. UWP application APIs for ADXL345/HDC1010/DPS310

S.No UWP application APIs Description Supported/not supported

1. FromIdAsync Asynchronously obtains the sensor from its identifier. Supported

2. GetCurrentReading Gets the current sensor reading.

3. GetDefault Returns the default sensor type.

4. GetDeviceSelector(Guid interfaceId)

Gets the device selector.

Table 9. UWP application sensor events for ADXL345

S.No Event name Supported/not supported

1. Choose accelerometer Supported

2. Data Events

3. Polling

4. OrientationChanged

5. Shake Events Not supporteda, b

6. Data Events Batching

a. The interrupts which can be enabled from the driver side are Single tap, Double tap, Activity, Inactivity, and Free fall (in INT_ENABLE register). The detection of Shake events is not supported.

b. Data Events Batching is not supported due to the fact that the driver does not implement it.

Table 10. UWP application sensor events for DPS310

S.No Event name Supported/not supported

1. Data Events Supported

2. Polling

Table 11. UWP application sensor events for HDC1010

S.No Event name Supported/not supported

1. Data Events Supported

2. Polling

58 Setting Up the Windows 10 Operating System

Setting Up the Ubuntu Operating System This chapter serves as a guide to install and use the Ubuntu 20.04 LTS operating system on the EGW-3200 hardware.

For more information on the Ubuntu 20.04 LTS operating system, see https://releases.ubuntu.com/20.04/.

Topics:

Boot up and log in Create bootable USB stick for factory reset Back up and restore Ubuntu 20.04 LTS Update BIOS capsule Update LiteBMC firmware Update 4G module firmware Update 5G module firmware Ubuntu 20.04 LTS basic functions Isolated Canbus uFM expansion module EMP2-X2S1 card with isolated RS-232 uFM expansion module EMP2-X4S2 card with isolated RS-422/485 uFM expansion module

Boot up and log in

Steps

1. Connect a keyboard, mouse, and monitor to the EGW-3200.

2. Power on the system. The system boots to the Ubuntu 20.04 LTS operating system.

3. Log in to the sysem. At initial login, the user must change the password of the default account.

NOTE: The default username/password is ubuntu/ubuntu.

Create bootable USB stick for factory reset

About this task

Perform this task for recovery of the system.

Steps

1. Install the image. Download the Ubuntu desktop image 21.10 or a newer version from the Canonical website:

https://ubuntu.com/download/desktop

2. To create a bootable USB stick on Ubuntu, perform the steps in the following tutorial:

https://ubuntu.com/tutorials/create-a-usb-stick-on-ubuntu#1-overview

To create a bootable USB stick on Windows, perform the steps in the following tutorial:

https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview

3

Setting Up the Ubuntu Operating System 59

Back up and restore Ubuntu 20.04 LTS

Steps

1. Prepare two USB sticks as follows:

a. Prepare one USB stick to store the target Ubuntu image. Use the following command to back up your SSD data as an image on the USB stick:

$ sudo dd if=/dev/sdx of=/meida/ubuntu/ / status=progress

b. Prepare another USB stick as Ubuntu Desktop live USB, with the 21.10 or newer version, as detailed in Create bootable USB stick for factory reset on page 59.

2. Use Ubuntu Desktop live USB to boot up the device by BIOS, and then select Try Ubuntu.

Figure 58. Try Ubuntu

3. Clear the target SSD. For secure-erase supported SSD, see SSD security-erase on page 76. Or use the basic clear command:

$ sudo dd if=/dev/zero of=/dev/sdx bs= count= status=progress

4. Plug in the USB stick that contains the backup image file, then open the Ubuntu terminal.

5. Use the following command to flash the backup image from the USB stick to the target SSD.

$ sudo dd if=/media/ubuntu/ / of=/dev/sdx status=progress

NOTE: Typically, the image USB stick is mounted under /media/ubuntu/ , and the target SSD is

mounted as /dev/sdx.

6. When finished, reboot the platform and boot up with the target SSD, and then you can return to your backup environment.

60 Setting Up the Ubuntu Operating System

Update BIOS capsule

Prerequisites

Use the following command to ensure that the fwupd and libjcat1 versions are compatible:

$ apt list --installed | grep -e fwupd -e libjcat1

The fwupd should be v1.7.5 or later, and the libjcat1 should be v0.1.4. If either installed version is lower, use the following command for an Ubuntu OTA update:

$ sudo apt update; sudo apt upgrade

Steps

1. Download the BIOS capsule file from the Dell Technologies Support Site and save it to the USB disk.

2. Boot to Ubuntu and open the terminal. Enter the following command and press y to restart the system after update.

To update with the same version:

$ fwupdmgr install --allow-reinstall

To update to a newer version:

$ fwupdmgr install

3. The system starts to install the firmware update, as shown in the following figure:

Figure 59. Firmware update

4. Wait for the update to finish, and then the system BIOS updates to the version specified.

Update LiteBMC firmware

Steps

1. Check the LiteBMC firmware version:

$ sudo litebmc-fwupd -d -t

Setting Up the Ubuntu Operating System 61

2. Download the LiteBMC firmware file from the Dell Technologies Support Site and then update. This includes a firmware (.bin) and a public key (.pem):

$ sudo litebmc-fwupd -u

Update 4G module firmware

Prerequisites

Download the driver and tool from the Dell Technologies Support Site, and download the firmware from the following link:

https://source.sierrawireless.com/resources/airprime/minicard/75xx/em_mc75xx-approved-fw-packages/ #sthash.DxsNfHsT.K35MNaDH.dpbs

Steps

1. Unzip and copy the package on your platform with the Ubuntu environment:

$ sudo apt install unzip $ unzip .zip -d $ tar zxvf MBPL_Drivers_R24_ENG3_qcserial-src.tar.gz $ tar zxvf MBPL_SDK_R26_ENG2-fwdwl.bin.tar.gz

2. Build the driver and install it:

$ cd MBPL_Drivers_R24_ENG3_qcserial-src $ sudo apt install make gcc $ make clean $ make $ openssl req -new -x509 -newkey rsa:2048 -nodes -days 36500 -outform DER -keyout "MOK.priv" -out "MOK.der" -subj "/CN=$(hostname) module signing key/" $ kmodsign sha512 MOK.priv MOK.der qcserial.ko

$ sudo make install $ sudo mokutil --import MOK.der

3. Enter a password twice:

$ sudo reboot

4. Before the BIOS loads GRUB, the device shows a blue screen called MOK management. Press any key to continue.

62 Setting Up the Ubuntu Operating System

Figure 60. MOK management

5. Select Enroll MOK and follow the menus to finish the enrolling process.

Figure 61. Enroll MOK

Figure 62. Enroll MOK Continue

Setting Up the Ubuntu Operating System 63

Figure 63. Enroll the keys

6. The MOK Management screen prompts for the password that was provided when running mokutil, and then saves the key. Once complete, reboot again.

Figure 64. MOK management Reboot

7. Upgrade the firmware:

$ sudo systemctl stop ModemManager $ cd SampleApps/lite-fw-download/bin

$ sudo ./fwdwl-litehostx86_64 -d /dev/ttyUSB0 -p /dev/cdc-wdm0 -f -t 1 -w .cwe -n .nvu $ sudo reboot

Use $ sudo mmcli -m to confirm the firmware revision.

8. Disable b30, b42, and b48 bands (optional).

64 Setting Up the Ubuntu Operating System

Some regions require operators to disable b30, b42, and b48 bands. The disabled bands are reopened after the firmware upgrade. Use the following commands to disable them again.

$ sudo apt install minicom $ sudo minicom -D /dev/ttyUSB2 $ at!entercnd="A710" $ at!band=0A,"Disable b30 b42 b48",100600000EC00000,000025009A0E19DF,0000000000000002 $ at!band=0A $ at!impref="AUTO-SIM" $ at!reset

Wait for the modem to answer AT commands:

$ at!band?

Confirm the disabled bands:

Update 5G module firmware

Steps

1. Firmware update:

a. Download the mbimcli tool and firmware file from the Dell Technologies Support Site:

$ sudo systemctl stop ModemManager $ tar Jxvf mbimcli.tar.xz $ cd mbimcli $ sudo ./mbimcli -d /dev/cdc-wdm0 --qdu-ota-update=ota.bin

NOTE: The ota.bin is in the Firmware folder.

b. Reboot:

$ reboot

2. Switch carrier:

Setting Up the Ubuntu Operating System 65

a. Run the following command:

$ sudo apt install minicom $ sudo minicom -D /dev/ttyUSB0

b. Check the profile list:

$ at^mcfg=?

c. Select your target, then the modem will auto reset. For example, select T-mobile.

$ at^mcfg=0 $ at^mcfg?

3. Disable b30, b42, and b48 bands (optional).

Some regions require operators to disable b30, b42, and b48 bands. The disabled bands are reopened after the firmware upgrade. Use the following commands to disable them again.

$ sudo apt install minicom $ sudo minicom -D /dev/ttyUSB0 $ at^slband=LTE,1,30,42,48 $ at^slband?

66 Setting Up the Ubuntu Operating System

Ubuntu 20.04 LTS basic functions

System shutdown and restart

Steps

1. Shutdown command:

$ sudo shutdown -h now

2. Reboot command:

$ sudo shutdown -r now

Ubuntu OTA update

About this task

OTA update command:

$ sudo apt update $ sudo apt upgrade

List installed packages

About this task

List installed packages command:

$ apt list --installed

Update the system name

About this task

Update system name command:

$ sudo nmcli general hostname

Change the time zone

About this task

Reference the time and date help information with the following command:

$ sudo timedatectl --help

Setting Up the Ubuntu Operating System 67

Root user credential

About this task

Root user credential command:

$ sudo su -

Create new user

About this task

Add user command:

$ sudo adduser

Select language

Steps

1. Use the following command to select your preferred language, then select .

$ sudo dpkg-reconfigure locales

Figure 65. Configuring locales

2. Select your target language and select again.

68 Setting Up the Ubuntu Operating System

Figure 66. Default locale for system environment

3. Log out and log in, then use the $ locale command to confirm your language settings.

Figure 67. Confirm locale

Display

About this task

Acquire screen output from the D-SUB/DVI/DP ports.

USB

About this task

The Ubuntu OS detects USB devices from the six USB ports on the front I/O panel.

Use the dmesg | grep usb command to check USB devices status.

Configure humidity, pressure, and accelerometer sensors

About this task

Three sensors are ready under the Linux iio interface with specific Linux kernel versions.

NOTE: The humidity and pressure sensors require a kernel version 5.13.0-1011-intel or later.

NOTE: The accelerometer sensor requires a kernel version 5.13.0-1014-intel or later.

NOTE: The x.x.x-10xx-intel kernel is only for the Ubuntu-specific version released by Dell.

Setting Up the Ubuntu Operating System 69

Steps

1. To upgrade the kernel, use the following command:

$ sudo apt update $ sudo apt upgrade $ reboot

2. After rebooting, use the following command to confirm the kernel version:

$ uname -r

3. Use libiio-utils to fetch sensor data:

$ sudo apt install libiio-utils

4. Use iio utility commands to fetch sensor data. For example, use the following command:

$ iio_info

Example

Figure 68. Pressure sensor example

Figure 69. Accelerometer sensor example

70 Setting Up the Ubuntu Operating System

Figure 70. Humidity sensor example

Configure Ethernet

Steps

1. The Ethernet cards function in DHCP client mode by default. Use the $ip addr command to confirm.

NOTE: The Ethernet card names for port1, port2, and port3 are enp3s0, enp0s29f1, and enp0s29f2, respectively.

2. To set up a static IP address, use the following commands:

a. nmcli con down b. nmcli con mod ipv4.addresses /24 c. nmcli con mod ipv4.gateway d. nmcli con mod ipv4.dns e. nmcli con mod ipv4.method manual f. nmcli con up

3. To roll back to dynamic IP by DHCP, use the following commands:

a. nmcli con down b. nmcli con mod ipv4.method auto c. nmcli con up

NOTE: port2 and port3 ETH PHY LED have different definitions when the ports are assigned to Ubuntu than when they

are assigned to Intel PSE. Make this selection under the BIOS menu by clicking Chipset > PSE Configuration > GBE0

or GBE1. GBE0 is port2 and the GBE1 is port3. When Host owned with pin muxed is selected, the port is assigned to

Ubuntu.

Setting Up the Ubuntu Operating System 71

Figure 71. BIOS setting

Table 12. LAN LED behavior for both LAN ports

OS LAN controller 1 G/100 MbE 1 G/100 MbE 10 MbE 10 MbE

LED[1] LED[0] LED[1] LED[0]

Ubuntu Linux

LED[1]: 0110

LED[0]: 0001

enp0s29f1 and enp0s29f2

Link: solid green

No-Link: off

No traffic: solid yellow

Traffic: blink yellow

Off No traffic: solid yellow

Traffic: blink yellow

Intel PSE

LED[1]: 0011

LED[0]: 0000

Traffic: blink green

No traffic: off

No traffic: solid yellow

Traffic: blink yellow

Traffic: blink green

No traffic: off

Link: solid yellow

NOTE: The Ubuntu Linux LED behavior requires a kernel version 5.13.0-1014-intel or later.

NOTE: The x.x.x-10xx-intel kernel is only for the Ubuntu-specific version released by Dell.

Configure the WiFi network

About this task

Use the following commands to connect an AP using a WiFi interface (wlp2s0).

Steps

1. Scan APs:

$ nmcli dev wifi list

72 Setting Up the Ubuntu Operating System

2. Create a connection to the target SSID. If the AP requires a password, add a password parameter:

$ sudo nmcli dev wifi connect $ sudo nmcli dev wifi connect password " "

3. To disconnect from the target SSID:

$ sudo nmcli con down

Next steps

If required, use the following command to set up a Wi-Fi hotspot using the Wi-Fi interface (wlp2s0).

1. Use nmcli to create the hotspot connection:

$ sudo nmcli dev wifi hotspot ifname con-name ssid password " "

The IF NAME should be the wlp2s0 on EGW3200. The CONNECTION NAME is assigned by the user for management. The SSID is assigned by the user for Wi-Fi client device connection.

2. Use the PASSWORD to connect the Wi-Fi client device to the SSID.

NOTE: To delete the hotspot connection, run the following command:

$ sudo nmcli c delete

Configure Bluetooth

About this task

Use the following commands to power on Bluetooth and scan target devices.

Steps

1. Enter bluetoothctl mode:

$ bluetoothctl

2. Power on Bluetooth:

$ power on

3. Scan Bluetooth devices:

$ scan on

Figure 72. Scan Bluetooth devices

Setting Up the Ubuntu Operating System 73

4. Trust target device by MAC address:

$ trust

5. Pair with target device by MAC address:

$ pair

6. Connect target device by MAC address:

$ connect

7. Disconnect target device by MAC address:

$ disconnect

8. Unpair with target device by MAC address:

$ remove

Connect 4G or 5G WWAN

Steps

1. Insert your USIM card into the SIM 2 slot. Use the following commands to check the modem status:

$ mmcli -L

Figure 73. Check modem status

In this example, the modem number is 0.

$ mmcli -m 0

Figure 74. Modem 0 status

2. If your USIM card requires a PIN code, the Status is locked. Use the following command to enter your PIN code, change the state to registered, and allow the USIM card to access a cell site.

$ sudo mmcli -i --pin=

3. Use the following nmcli command to register an auto connection for the target modem and the USIM card:

$ sudo nmcli c add type gsm ifname con-name apn

Use the following settings: The IF NAME is the primary port of the mmcli modem log.

74 Setting Up the Ubuntu Operating System

The CONNECTION NAME is assigned by the user. The APN NAME must be provided by your USIM card ISP owner.

If the Telecom provider is emome:

$ sudo nmcli c add type gsm ifname cdc-wdm0 con-name cdc-wdm0 apn emome

4. Use the following command to remove auto connection by CONNECTION NAME:

$ sudo nmcli c delete

5. Use the following commands to enable and disable the WWAN service of nmcli:

Enable:

$ nmcli r wwan0 on

Disable:

$ nmcli r wwan0 off

Next steps

If your USIM card is not detected by the 5G modem module, it may be misaligned with the eSIM slot. Perform the following steps to switch to the physical slot (SIM 2).

1. Use the following commands:

$ sudp apt install minicom $ sudo minicom -D /dev/ttyUSB0

2. Use the following AT command to switch the SIM slot:

AT^SWITCH_SLOT=0

NOTE: Value 0: physical USIM slot (SIM 2); Value 1: physical USIM slot (SIM1).

Access GPS

Steps

1. Access the modem console (ttyUSB0) using minicom:

$ sudp apt install minicom $ sudo minicom -D /dev/ttyUSB0

2. Enter the following AT commands to enable the GPS function:

AT+GPS?

Return result of 1 indicates that the modem module supports the GPS function.

AT+GPS=1

If modem feedback is GPS is enabled, module reboot, reboot device one and use the $ sudo minicom -D /dev/ ttyUSB0 command a second time.

3. To access TTFF and CN GPS data, use the following AT commands:

AT^GPS_START=0 AT+GPS_INFO

Setting Up the Ubuntu Operating System 75

Remote login

About this task

The SSH server runs by default on port 22. Use your PC/NB to open a SSH connection (using terminal tools such as PuTTY or MobaXterm) to the EGW-3200. The PC/NB and EGW-3200 share a network connection under a local network.

Set up audio and microphone

Steps

1. Install ALSA utilities:

$ sudo apt install alsa-utils

2. Adjust audio and microphone volume by alsamixer:

$ alsamixer

3. Prepare an audio .wav file and connect to the speaker on the device:

$ aplay xxx.wav

4. Connect to the microphone on the device and start to record audio after entering the following command. Use ctrl + c to stop the recording.

$ arecord xxx.wav

5. To replay the .wav file recording:

$ aplay xxx.wav

SSD security-erase

About this task

CAUTION: Performing this task will permanently swipe the disk content.

Steps

1. Check out your target disk to be mounted as /dev/sdx:

$ sudo lshw

76 Setting Up the Ubuntu Operating System

Figure 75. $ sudo lshw

2. Confirm that the target disk is not frozen. To check:

$ sudo hdparm -I /dev/sdx

Figure 76. Example: target disk is frozen

If the target disk is frozen,

a. Use the following commands to enter the system into standby mode:

$ sudo su - $ echo -n mem > /sys/power/state

The power button LED blinks when the system is in standby mode. b. Press the power button once to wake up the system. c. Use the hdparm command a second time, and status is now not frozen, as shown in the following figure:

Figure 77. Disk not frozen

3. Set up a security password before executing the security-erase:

$ sudo hdparm --user-master u --security-set-pass /dev/sdx

Figure 78. Set security password

Setting Up the Ubuntu Operating System 77

4. Run the security-erase command with the password:

$ sudo hdparm --user-master u --security-erase /dev/sdx

Figure 79. Security erase

Results

When the security-erase is finished, all data on the /dev/sdx disk is swiped (0x00).

Connect to the serial port

Steps

1. Connect suitable DB9 cables to the device COM ports.

Map COM1 port to /dev/ttyS0. Map COM2 port to /dev/ttyS1.

2. Set the control mode as RS232/RS422/RS485 from the BIOS menu. Map the pins according to the following table:

Table 13. DB9 connector pin definitions

Pin Signal name

RS-232 RS-422 RS-485

1 DCD TXD422 485DATA

2 RXD TXD422+ 485DATA+

3 TXD RXD422+ N/S

4 DTR RXD422- N/S

5 GND N/S N/S

6 DSR N/S N/S

7 RTS N/S N/S

8 CTS N/S N/S

9 RI N/S N/S

3. Execute the following command on two systems, where # is the port number corresponding to the port being used:

$ sudo chmod 777 /dev/ttyS#

4. To test COM port loopback, use the following commands.

a. Data receive command:

$ cat < /dev/ttyS#

b. Data transmit command:

$ echo "test" > /dev/ttyS#

NOTE: The port number (#) must be different between data receive and data transmit.

78 Setting Up the Ubuntu Operating System

Connect to the Canbus

Steps

1. Install the tool:

$ sudo apt install can-utils

2. Enable the Canbus interfaces:

$ sudo ip link set can0 type can bitrate 500000 $ sudo ip link set up can0 $ sudo ip link set can1 type can bitrate 500000

3. Receive can frame from a terminal:

$ candump can1

4. Send can frame from another terminal:

$ cansend can0 123#9995 $ cansend can0 123#9996 $ cansend can0 123#9997 $ cansend can0 123#9998 $ cansend can0 123#9999

Mount USB storage

Steps

1. Plug your USB storage into the device and use the following command to identify the disk as /dev/sdxx:

$ sudo fdisk -l

Figure 80. Identify USB storage

2. Create a directory to be the mount point:

$ mkdir /tmp/storage

Setting Up the Ubuntu Operating System 79

3. Mount storage on /tmp/storage:

$ sudo mount /dev/sdb1 /tmp/storage $ sudo umount /tmp/storage

Figure 81. Mount USB storage

Configure watchdog

Steps

1. Install watchdog service:

$ sudo apt update $ sudo apt install watchdog

2. Edit /etc/default/watchdog:

$ sudo vim /etc/default/watchdog

Edit watchdog_module parameter as below:

#load module before starting watchdog watchdog_module="w83627hf_wdt"

3. Edit /etc/watchdog.conf:

$ sudo vim /etc/watchdog.conf

Ensure that the following parameters exist in the configuration and are not disabled as comment code.

retry-timeout = 60 repair-maximum = 1 watchdog-device = /dev/watchdog interval = 1 logtick = 1 log-dir = /var/log/watchdog realtime = yes priority = 1

Add a new parameter:

# To set the watchdog device timeout, default is 60 seconds watchdog-timeout = 20

4. Reboot the device once, then use the following commands to confirm that the driver and service are working:

$ dmesg | grep -i w83627hf_wdt

Figure 82. View watchdog

$ modinfo w83627hf_wdt

80 Setting Up the Ubuntu Operating System

Figure 83. Watchdog info

$ service watchdog status

Figure 84. Watchdog status

5. To test the watchdog device, force the Linux kernel to crash:

$ sudo sysctl -w kernel.sysrq=1 $ sudo su - $ echo c > /proc/sysrq-trigger

The system hangs and watchdog reboots the system after 20 seconds (if watchdog-timeout = 20).

Configure GPIO

About this task

The EGW-3200 is equipped with six Digital in and six Digital out. To access the registers to read and write to them, perform the following steps.

Steps

1. Run the following command:

$ sudo su -

2. Export GPIO:

$ echo 369 > /sys/class/gpio/export

369 GPIO is USER_LED_1, 370 GPIO is USER_LED_2, and 371 GPIO is USER_LED_3.

Figure 85. Export GPIO

Setting Up the Ubuntu Operating System 81

3. Check the GPIO direction and value using the following commands:

$ cat /sys/class/gpio/gpio369/direction $ cat /sys/class/gpio/gpio369/value

4. Set the GPIO value using the following command:

$ echo {0 or 1} > /sys/class/gpio/gpio369/value

Figure 86. Set GPIO value

Results

The low level triggers the USER_LEDs. When the value is 0, the USER_LED is illuminated, as shown in the following figure.

Figure 87. GPIO USER_LED illuminated

TPM tasks

About this task

If TPM is turned on, the device node (/dev/tpm0) exists.

Figure 88. TPM on

82 Setting Up the Ubuntu Operating System

If TPM is turned off, the device node (/dev/tpm0) does not exist.

Figure 89. TPM off

TPM can be enabled/disabled from the BIOS Advanced menu > TPM 2.0 Configuration > Security Device Support.

Clear TPM

About this task

If a tpm2_clear command fails, use the following command to make the BIOS reset TPM:

$ echo 5 | sudo tee /sys/class/tpm/tpm0/ppi/request $ reboot

Then try the tpm2_clear command again.

List PCR values

About this task

Use the following command:

$ sudo tpm2_pcrread

Results

The tpm2_pcrlist is renamed to tpm2_pcrread.

Get random data by TPM

About this task

Use the following command:

$ sudo tpm2_getrandom -o

For example:

$ sudo tpm2_getrandom -o random.out 20

Get hash by TPM

About this task

Use the following command:

sudo tpm2_hash -g -o

For example:

$ echo "Dell" > message $ sudo tpm2_hash -g sha1 -o hash.bin message

Setting Up the Ubuntu Operating System 83

Wake events

Trigger Ubuntu OS to enter S3 status

Steps

1. Use the following command:

$ sudo su

2. Use the following command:

$ echo mem > /sys/power/state

3. Use a USB keyboard to enter any key to wake up the Ubuntu OS.

NOTE: Use a physical keyboafd to wake up the system. If the keyboard is on a remote SSH session, the box does not

wake up.

Use RTC as wake event

Steps

1. Use the following command:

$ sudo rtcwake -u -s -m

2. The can use the mem parameter to enter S3, and the off parameter can enter S5.

Wake-on-LAN

Steps

1. Make Ubuntu OS of target device enter S3 or S5.

2. Using another Ubuntu OS device that is working under the same local network, use the following commands:

$ sudo apt install wakeonlan $ wakeonlan

For example:

$ wakeonlan 00:30:64:3a:ad:80

Results

The target device is waked up as a result of the WoL function.

Wake-on-WLAN

Steps

1. Use the following command to check the AX210 WiFi card WoWLAN status:

$ iw phy0 wowlan show

84 Setting Up the Ubuntu Operating System

2. If WoWLAN is disabled, use the following command to enable it:

$ sudo iw phy0 wowlan enable magic-packet

3. Use the ifconfig command to make sure your WiFi card (wlp6s0) is connected on a SSID to get an IP address. Record the IP and WiFi MAC address.

4. Use another WiFi client device that is connected to the same SSID and trigger WoL magic packet to wake up the target device. For example, use an Android smart phone to install the WoL tool (https://play.google.com/store/apps/details? id=de.ralischer.wakeonlan&hl=zh_TW&gl=US), then enter the IP and MAC address of the WiFi card of the target device. Trigger the WoL magic packet using the tool to wake up the target device.

Isolated Canbus uFM expansion module

Steps

1. Download the utility tool (EMUC-B202.zip) from the Innodisk official website: EMUC-B202 Driver

2. Unzip the file and copy the driver package onto your platform with the Ubuntu environment.

3. Unzip Linux/EMUC-B202_API_Linux_ .zip, using the following commands:

$ cd EMUC-B202-W1_CAN_API_V2.3.7_Linux/Loopback_EMUC2 $ sudo chmod +x emuc_64 $ sudo ./emuc_64

Figure 90. EMUC-B202 API

4. Edit the setup.ini file for different test cases, as detailed in the following table.

Table 14. Setup.ini settings

Parameter Settings

COM Port 0 = auto scan (Windows), 1 = auto scan (Linux)

Baud rate 4 = 100K, 5 = 125K, 6 = 250K, 7 = 500K, 8 = 800K, 9 = 1M

Interval 1, 2, ..., 1000 [ms], sending interval between each frame

Test time 0 = once, 1, 2, ..., 60 [min], length of test time

Test file Pattern.txt file includes ID and data used for sending test frames.

Setting Up the Ubuntu Operating System 85

Table 14. Setup.ini settings

Parameter Settings

Log file Log.txt is used for saving the test result.

5. Before starting the test, prepare a special port cable that can jump each pin. Connect cable-A and cable-B as below:

Cable-A-pin2 and cable-B-pin2 are connected using a cable.

Cable-A-pin7 and cable-B-pin7 are connected using a cable.

EMP2-X2S1 card with isolated RS-232 uFM expansion module

About this task

Map the pins according to the following table.

Table 15. RS-232 pin assignment

Signal Pin

CD 1

RXD 2

TXD 3

DTR 4

GND 5

DSR 6

RTS 7

CTS 8

RI 9

The EMP2-X2S1 uFM card supports two RS-232 ports, however there are four ports from the OS, as shown in the red box in the following figure:

Figure 91. RS-232 ports

Use the first two ports, ttyS6 and ttyS7, as shown in the red square in the previous figure, for the RS-232 port function. The test method references the "serial port" section.

86 Setting Up the Ubuntu Operating System

EMP2-X4S2 card with isolated RS-422/485 uFM expansion module

About this task

Map the pins according to the following table.

Table 16. RS-422/485 pin assignment

RS-422 full duplex Pin RS-485 half duplex

- 1 -

TX+ 2 D+

RX+ 3 -

- 4 -

GND 5 GND

- 6 -

RX 7 -

TX 8 D

- 9 -

Steps

1. Download the latest driver (EMP2-X4S2_Linux_driver_ .zip) from the Dell Technologies Support Site. Unzip the file and copy the driver package on your platform with the Ubuntu environment.

2. Use the following cd commands in the driver directory.

$ sudo apt install make gcc $ sudo make clean $ sudo make $ openssl req -new -x509 -newkey rsa:2048 -nodes -days 36500 -outform DER -keyout "MOK.priv" -out "MOK.der" -subj "/CN=$(hostname) module signing key/" $ kmodsign sha512 MOK.priv MOK.der xr17v35x.ko $ sudo make install $ sudo vim /etc/modules-load.d/modules.conf

3. Add xr17v35x into the file to make Ubuntu auto load this driver during boot up.

$ sudo vim /etc/modules-load.d/modules.conf

4. Add blacklist 8250_exar into the file to make the standard serial port driver not conflict with xr17v35x.

$ sudo vim /etc/modprobe.d/blacklist.conf

NOTE: This step is to roll back the modifications of modules.conf/blacklist.conf by the EMP2-X2S1 driver if you

previously used the EMP2-X2S1 card.

$ sudo mokutil --import MOK.der

Enter your password twice.

$ sudo reboot

While the BIOS loads GRUB, the device displays a blue screen for MokManager. On this screen, perform the following

steps:

a. Select Enroll MOK.

Setting Up the Ubuntu Operating System 87

b. Use the menus to finish the enrolling process.

c. Use the same password used when running mokutil.

d. Save the key.

e. Reboot again.

5. For RS-422, use RS-422 cables with the EMP2-X4S2 card.

For the RS-422 port-to-port test, connect the RS-422-A and RS-422-B as detailed in the following: RS-422-A-pin2 and RS-422-B-pin3 are connected with a cable. RS-422-A-pin3 and RS-422-B-pin2 are connected with a cable. RS-422-A-pin7 and RS-422-B-pin8 are connected with a cable. RS-422-A-pin8 and RS-422-B-pin7 are connected with a cable.

6. After the RS-422 hardware is prepared, open two terminal windows.

For the first terminal window:

$ sudo minicom -D /dev/ttyXR0

For the second terminal window:

$ sudo minicom -D /dev/ttyXR1

Type some words in the first terminal to confirm that you can see the words displayed in the second terminal.

7. For RS-485, use RS-485 cables with the EMP2-X4S2 card.

For the RS-485 port-to-port test, connect the RS-485-A and RS-485-B as detailed in the following: RS-485-A-pin2 and RS-485-B-pin2 are connected with a ca

Manualsnet FAQs

If you want to find out how the Edge Gateway 3200 Dell works, you can view and download the Dell Edge Gateway 3200 Gateway Software User's Guide on the Manualsnet website.

Yes, we have the Software User's Guide for Dell Edge Gateway 3200 as well as other Dell manuals. All you need to do is to use our search bar and find the user manual that you are looking for.

The Software User's Guide should include all the details that are needed to use a Dell Edge Gateway 3200. Full manuals and user guide PDFs can be downloaded from Manualsnet.com.

The best way to navigate the Dell Edge Gateway 3200 Gateway Software User's Guide is by checking the Table of Contents at the top of the page where available. This allows you to navigate a manual by jumping to the section you are looking for.

This Dell Edge Gateway 3200 Gateway Software User's Guide consists of sections like Table of Contents, to name a few. For easier navigation, use the Table of Contents in the upper left corner.

You can download Dell Edge Gateway 3200 Gateway Software User's Guide free of charge simply by clicking the “download” button in the upper right corner of any manuals page. This feature allows you to download any manual in a couple of seconds and is generally in PDF format. You can also save a manual for later by adding it to your saved documents in the user profile.

To be able to print Dell Edge Gateway 3200 Gateway Software User's Guide, simply download the document to your computer. Once downloaded, open the PDF file and print the Dell Edge Gateway 3200 Gateway Software User's Guide as you would any other document. This can usually be achieved by clicking on “File” and then “Print” from the menu bar.