Deploying Windows 11 for ARM64 using ConfigMgr Current Branch

Here is a guide on setting up ConfigMgr 2403 or later to deploy Windows 11 for ARM64 to a compatible device. In my case I was deploying the Lenovo X13s Gen 1 laptop that is a ARM64 device (the CPU is a Qualcomm Snapdragon 8cx Gen 3, and the GPU is a Qualcomm Adreno 690).

Credits: Extra thanks to Joe Parker and Philip Jorgensen with Lenovo for putting up with all my ARM64 hardware questions 🙂

Prerequisites

First of all, you need to be on ConfigMgr 2403 Current Branch or later, since that's the first Current Branch version supporting OSD for ARM64 devices. Second you need to do the following:

  • Install Windows ADK 10.1.25398 or later. While currently not officially supported according to the Microsoft Docs, this is the first version having the x64 Emulator optional component for WinPE, required by the new ConfigMgr OSD binaries (the ConfigMgr team took the easy route instead of compiling native arm64 code).
The ARM64 boot image showing the x64 emulator added in ADK 10.1.25398.1 (September 2023).
  • Download the Windows 11 for ARM64 media or later from Microsoft. I recommend version 23H2 or later.

    Note: The Windows 11 for ARM64 media is a separate ISO for volume license customers, or index 1 of the Windows 11 IoT Enterprise media if using Visual Studio for downloading ISOs.
  • Download and extract the ARM64 drivers for the Lenovo X13s Gen 1 model, then create a WIM file of the extracted drivers.
WIM File containing the drivers for the Lenovo X13s Gen 1 model.
  • For network boot support, configure your distribution points with PXE support. I recommend the WDS-less PXE responder (the native ConfigMgr responder), but I have seen others having success with the WDS-based PXE responder too.
Configure a distribution point with native PXE support.

Configuring ConfigMgr for ARM64 OSD

Here follows the steps to configure ConfigMgr for ARM64 OSD.

  1. Import the Qualcomm boot critical drivers into your arm64 boot image. Import the drivers from the Chipset/N3HQC12W folder only.

    Note: Adding these drivers will make the boot image un-usable for other ARM64 deployments, for example Hyper-V VMs when running Hyper-V on an ARM64 device. For now, I used a dedicated arm64 boot image for my testing. I have a feeling the Qualcomm boot critical drivers have way more driver than actually needed. Will do some research on this.
  2. Create a legacy package containing the arm64 drivers for WIM file only.
  3. Import the Windows 11 Enterprise edition from the Windows 11 for ARM64 media.
  4. Create a bare metal deployment task sequence, and configure it to use the arm64 boot image, the arm64 media, and a step to download the legacy package containing the drivers to a path in the TS cache (I used %_SMSTSMDataPath%\DriverPackage).
  5. Add a PowerShell script that will extract and stage (inject) the drivers from the WIM file in the WinPE phase. To avoid having the TS fail if deployed to an ARM64 device you haven't added drivers to, set a condition to only run the script if the drivers folder is there (again, in my case I used %_SMSTSMDataPath%\DriverPackage).

    Script to extract and inject drivers from a WIM file:
    https://github.com/DeploymentResearch/DRFiles/tree/master/Scripts/ConfigMgr/ARM64OSD
  6. Deploy the newly created Task Sequence to your favorite OSD collection.
The finished ConfigMgr Task Sequence.

Deploying Windows 11 for ARM64

Here follows the steps to start the Windows 11 ARM64 deployment of the Lenovo X13s.

  1. Start the Lenovo X13s device, and press F12 to get to the boot menu. I have only tested with the standard Lenovo USB-C dongle (40B70090US), but others may work.

    Note: Due to a known resolution issue, the Lenovo X13s screen will look quite messy during the WinPE phase, and you'll have to Zoom in quite a lot if trying to read log files etc. Hopefully that will be fixed soon.
  2. Select the Task Sequence you deployed earlier.
PXE Booting the Lenovo ThinkPad X13s Gen 1 machine.
The machine being deployed (with the very strange resolution issue).
Device Manager after a successful deployment.

Additional Resources

ARM-based Operating System Deployment – By Lenovo
https://blog.lenovocdrt.com/#/2024/arm_osd?id=arm-based-operating-system-deployment

About the author

Johan Arwidmark

5 4 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

>