How to build a custom Windows 10 IoT Enterprise Image

Preparation

Setup

  • Set up your build environment as described in chapter 2 of the i.MX Windows 10 IoT User’s Guide.
    (Visual Studio 2019, ADK + WinPE addon for ADK + WDK)

  • Extract the WIN10_<version>_SOURCE.zip

  • Execute the Init.bat

  • For the first setup follow the steps in Chapter 2.2.3 of the User’s Guide to set up the build environment and the test code signing certificates

  • Open the solution <path>\imx-windows-iot\build\solution\iMXPlatform\iMXPlatform.sln and build it for ARM64/Debug

Custom SECO drivers/changes

  • Copy the <path>\imx-windows-iot\BSP\IoTEntOnNXP\ folder to
    <path>\imx-windows-iot\BSP\IoTEntOnSECO\

  • Download the SECO-specific modifications from this wiki page and extract them into the new IoTEntOnSECO folder.
    The archive contains SECO specific changes to the BSP, the installation scripts, the drivers used and the customized bootloader with the i.MX Firmware.

 

Latest:

BSP Version 1-5-0: IoTEntOnSECO_1-5-0_20240503

 

Older versions:

BSP Version 1-5-0: IoTEntOnSECO_1-5-0_20240412

BSP Version 1-4-0: IoTEntOnSECO_1-4-0_20231218

 

Building the WinPE SD Card

Execute one of the following commands in the IoTEntOnSECO directory directory in an elevated command prompt (launched as administrator) depending on your module.
Trizeps8Mini, eMMC:

make-winpe-enterprise.cmd /disable_updates /test_signing /module trizeps8mini

Trizeps8Mini, SD Card:

make-winpe-enterprise.cmd /disable_updates /test_signing /sdcard /module trizeps8mini

Trizeps8Plus, eMMC:

make-winpe-enterprise.cmd /disable_updates /test_signing /module trizeps8plus

Trizeps8Plus, SD Card:

 

  • Apply the Image to an SD Card with the following command (diskmgmt.msc displays the drive numbers)

Updating the Bootloader & i.MX Firmware

It is recommended that you use the method described in section 8.2 of the i.MX Windows 10 IoT Quick Start Guide to update the Firmware.

There is an alternative way that allows you to update the firmware from the SD card in the bootloader:

 

Note: Flashing a bootloader for the wrong RAM configuration will cause your device to not start up properly anymore. Avoid doing that. If you do not know which firmware binary to flash ask for help.

 

  • Hold <esc> in the terminal emulator of your choice (e.g. TeraTerm or PuTTY) while powering up the system with the WinPE SD card inserted in the device.

  • The following series of commands will allow you to load the firmware binary from the SD card and write it to the boot partition 1 of the eMMC:

  • Select the sd card socket

  • View the contents of the SD Card, verify that the firmware you want to write to the eMMC is present on the SD card

  • Load the firmware binary you want to apply (In this example we use firmware.tr8m_v2r1.bin

  • Select the boot partition 1 of the eMMC

  • Write the firmware to the selected partition with the i.MX8M Mini specific offset

  • Select the eMMC Boot Partition as boot partition

  • Erase the bootloader environment

  • Restart the device. It should reboot into the applied bootloader version.
    The first line of the serial output contains the build date of the bootloader.