I have a number of problems with Windows 10 IoT Core on i.MX 8M Mini EVK. I managed to build with BSP from the solution in W1860_1_0_1_IMX-IOTCORE-B191011.zip. Using the documentation included in the zip (i.MX_Win10_User's_Guide.pdf)
When i try to create a ffu using the iot-adk-addonkit i get an error when building all packages:
buildpkg All
Processing Appx.Certs.wm.xml
Processing Custom.BCD.wm.xml
Processing Custom.OOBEApp.wm.xml
Processing Custom.Settings.wm.xml
Processing Device.SystemInformation.wm.xml
Processing DeviceLayout.GPT4GB.wm.xml
Processing DeviceLayout.GPT8GB-R.wm.xml
Processing DeviceLayout.MBR4GB.wm.xml
Processing DeviceLayout.MBR8GB-R.wm.xml
Processing Recovery.GPT-BCD.wm.xml
Processing Recovery.GPT-BcdEdit.wm.xml
Processing Recovery.MBR-BCD.wm.xml
Processing Recovery.MBR-BcdEdit.wm.xml
Processing Registry.Version.wm.xml
Processing Security.Bitlocker.wm.xml
Processing Security.DeviceGuard.wm.xml
Processing Security.DeviceGuardTest.wm.xml
Processing Security.SecureBoot.wm.xml
Processing Security.SecureBootTest.wm.xml
Processing Settings.HotKey.wm.xml
Processing OEM.Sample.wm.xml
Processing Arm64CRTRuntime.wm.xml
(PkgBldr.Common) : error : Undefined variable _Redist
Error: C:\IoT\iMX8MMini\Source-arm64\BSP\NXPEVK_iMX8M_Mini_2GB\Packages\Arm64CrtRuntime\Arm64CRTRuntime.wm.xml pkggen failed
False
IoTCorePShell arm64 10.0.0.0 Test
The file Arm64CRTRuntime.wm.xml looks like this:
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<identity
xmlns="urn:Microsoft.CompPlat/ManifestSchema.v1.00"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="Arm64CRTRuntime"
namespace="Platform"
owner="NXP"
legacyName="IOT.Arm64.Crt.Runtime"
>
<!-- workaround to drop VC runtime 140 to system32 directory since it isn't part of
Arm64 IoT image -->
<files>
<file source="$(_Redist)vcruntime140.dll" destinationDir="$(runtime.system32)" />
<file source="$(_Redist)vccorlib140.dll" destinationDir="$(runtime.system32)" />
<file source="$(_Redist)msvcp140.dll" destinationDir="$(runtime.system32)" />
</files>
</identity>
Which I solved by replacing "$(_Redist)" with "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Redist\MSVC\14.16.27012\arm64\Microsoft.VC141.CRT\". I can't find any documentation about it.
Next up the when trying to build the image:
buildimage iMX8MMini_test Test
ADK_VERSION : 10.0.17763.1
IOTCORE_VER : 10.0.17763.253
BSP_VERSION : 10.0.0.0
ADDONKITVER : 6.0.191010.1210
HostOS Info : Microsoft Windows 10 Enterprise - 10.0.18362 - en-US
Validating product feature ids
Reading feature ids in C:\IoT\iMX8MMini\Source-arm64\BSP\NXPEVK_iMX8M_Mini_2GB\Packages\NXPEVK_iMX8M_Mini_2GB_DeviceFM.xml
Reading feature ids in C:\IoT\iMX8MMini\Common\Packages\OEMCommonFM.xml
Reading feature ids in C:\IoT\iMX8MMini\Source-arm64\Packages\OEMFM.xml
Checking Microsoft features in OEMInput file..
Checking OEM features in OEMInput file..
Building product specific packages
Processing Registry.Version.wm.xml
Processing Custom.Cmd.wm.xml
Processing Provisioning.Auto.wm.xml
Processing Recovery.WinPE.wm.xml
Building FM files..
Exporting OEM FM files..
Processing OEMFMList..
Exporting NXPEVK_iMX8M_Mini_2GB BSP FM files
Processing NXPEVK_iMX8M_Mini_2GBFMFileList.xml
Error: FeatureMerger failed to process . See C:\IoT\iMX8MMini\Build\arm64\FIPPackage_NXPEVK_iMX8M_Mini_2GB.log
Error: Failed to create FIP packages
False
IoTCorePShell arm64 10.0.0.0 Test
FIPPackage_NXPEVK_iMX8M_Mini_2GB.log:
info: Trying to load file 'C:\IoT\iMX8MMini\Build\arm64\InputFMs\NXPEVK_iMX8M_Mini_2GBFMFileList.xml' as a FM file list ...
fatal error : Error: Missing package: C:\IoT\iMX8MMini\Build\arm64\pkgs\NXP.iMX.imxdod.cab
So I found the file in the "imx-iotcore\build\solution\iMXPlatform\Build\FFU\bspcabs\ARM64\Release" and copied it to my adk workspace "Build\arm64\pkgs". Wich made the image building work. After that I'm able to boot the device from an mSD card, the win logo is shown as well as some default app and I am able to reach the device's web portal and connect via ssh to it.
Other problems:
Powershell seems to be missing, even with the feature IOT_POWERSHELL specified. I can't connect with remote powershell and I can't call powershell when connected with ssh. I've looked for a powershell.exe (not sure if there should be one) which I can't find.
The web portal doesn't list installed apps. When connecting to the device via ssh and try to start the installed app:
administrator@MINWINPC C:\Data\Users\administrator>iotstartup list
Headed : DefaultApp_a0hbgz1ps3rka!Appadministrator@MINWINPC C:\Data\Users\administrator>iotstartup run defaultapp
ERROR: failed to activate(DefaultApp_a0hbgz1ps3rka!App): 0x80070005
I have tried to add the app via the web portal and adding it to the ffu with the fga flag. The result is the same
the app never starts.
I'm unable to remote debug my apps on the device. I'm using Visual Studio 2019.
Hi,
the Arm64CRTRuntime problem should be fixed in next release. You can also find the patch in archived Windows 10 IoT Core BSP for NXP i.MX Processors repository here: IMX8: Fix BSP generation for iMX8M (#147) · ms-iot/imx-iotcore@a67a12f · GitHub .
Hi,
regarding powershell support for 64-bit platform - I have received following from Microsoft team:
Here is -
Register-WinRmPlugin $pluginPath Microsoft.PowerShell
You should now be able to use PowerShell remote like other architectures.
best
Vojtech Filip