How to enable the Surface Laptop keyboard during MDT deployment
This article addresses a deployment approach that uses Microsoft Deployment Toolkit (MDT). You can also apply this information to other deployment methodologies. On most types of Surface devices, the keyboard should work during Lite Touch Installation (LTI). However, Surface Laptop requires some extra drivers to enable the keyboard. For Surface Laptop (1st Gen) and Surface Laptop 2 devices, you must prepare the folder structure and selection profiles that allow you to specify keyboard drivers for use during the Windows Preinstallation Environment (Windows PE) phase of LTI. For more information about this folder structure, see Deploy a Windows 10 image using MDT: Step 5: Prepare the drivers repository.
Tip
When using keyboard drivers for Surface Laptop 2 and Surface Laptop 3 in the same Windows PE boot instance, you may need to manually reset the firmware if the keyboard or touchpad don’t work in Windows PE:
- Press and hold the Power button for 30 seconds. If you are connected to a power supply unit (PSU), press and hold the Power button until you see the light at the end of the PSU cord briefly turn off before turning back on.
Important
If you are deploying a Windows 10 image to a Surface Laptop that has Windows 10 in S mode preinstalled, see KB 4032347, Problems when deploying Windows to Surface devices with preinstalled Windows 10 in S mode.
Add keyboard drivers to the selection profile
Download the latest Surface Laptop .msi file from the following page: Manage & deploy Surface driver & firmware updates.
Extract the contents of the Surface Laptop .msi file to a folder that you can easily locate (for example, c:\surface_laptop_drivers). To extract the contents, open an elevated Command Prompt window and run the command from the following example:
Msiexec.exe /a SurfaceLaptop_Win10_15063_1703008_1.msi targetdir=c:\surface_laptop_drivers /qn
Open the Deployment Workbench and expand the Deployment Shares node and your deployment share, then navigate to the WindowsPEX64 folder.
Right-click the WindowsPEX64 folder and select Import Drivers.
Follow the instructions in the Import Driver Wizard to import the driver folders into the WindowsPEX64 folder.
Note
Check the downloaded .msi package to determine the format and directory structure. The directory structure will start with either SurfacePlatformInstaller (older .msi files) or SurfaceUpdate (newer .msi files) depending on when the .msi file was released.
Import drivers for Surface devices
Import the following folders as appropriate for your Surface Laptop device.
Device | Import folders | More information |
---|---|---|
Surface Laptop 6 | ialpss2gpio2mtl ialpss2i2cmtl ialpss2spimtl ialpss2uart2mtl intcpmt intelquickspi msu53cx22x64sta msu56cx22x64sta surfaceacpiplatformextension surfacebattery surfacebutton surfacedockintegration surfacehidminidriverwinre surfacehotplug surfaceintegrationdriver surfacepanel surfacepen217integration surfacepenblelcaddradaptationdriver surfaceserialhub surfaceservicenulldriver surfacesptclient surfacetimealarmacpifilter surfacetouchpenprocessor0c88update surfacetouchpenprocessor0c89update surfaceucmucsihidclient tbtslimhostcontroller |
If you're using a Windows 10 version of Windows PE and you need Surface Ethernet connectivity, you also need to import the folder “msump64x64sta” from the Windows 10 MSI. |
Surface Pro 10 | acpiplatformextension Battery DockIntegration HidMini HotPlug ialpss2gpio2mtl ialpss2i2cmtl ialpss2spimtl ialpss2uart2mtl Integration IntelQuickSPI msu53cx22x64sta msu56cx22x64sta penwirelesschargerhotkey SarManager SerialHub Service SMFClient smfdisplayclient timealarmacpifilter UcmUcsiHidClient |
If you're using a Windows 10 version of Windows PE and you need Surface Ethernet connectivity, you also need to import the folder “msump64x64sta” from the Windows 10 MSI. |
Surface Pro 9 with Intel processor | adlserial alderlakepchpsystem alderlakesystem gna intelprecisetouch managementengine msump64x64sta surfaceacpiplatformextension surfacebattery surfacedockintegration surfacehidmini surfacehotplug surfaceintegrationdriver surfacesarmanager surfaceserialhubdriver surfaceservicenulldriver surfacetimealarmacpifilter surfaceucmucsihidclient tbtslimhostcontroller |
n/a |
Surface Laptop Studio 2 | Adl-rplserialLPSS cardreader heci intelquickspi msu53cx22x64sta realtekEthernet surfaceacpiplatformextension surfacebattery surfacedockintegration surfacehidminidriver surfacehotplug surfaceintegrationdriver surfacepenwirelesschargerhotkey surfacesarmanager surfaceserialhub surfacesptclient surfacetimealarmacpifilter surfaceucmucsihidclient surfacewakeontouchcontrol wotquickspiextensionport1 |
n/a |
Surface Laptop Studio | intelthcbase managementengine surfaceacpiplatformextension surfacebattery SurfaceEthernetAdapter surfacehidmini surfacehotplug surfaceintegration surfacesar surfaceserialhub surfacesmfclient surfacesmfdisplayclient surfacesptclient surfacetimealarmacpifilter surfacevirtualfunctionenum tbtslimhostcontroller tglchipset tglserial |
n/a |
Surface Pro 8 | intelthcbase ManagementEngine surfaceacpiplatformextension SurfaceBattery SurfaceCoverClick SurfaceEthernetAdapter SurfaceHidMini SurfaceHotPlug surfaceintegrationdriver SurfaceSar SurfaceSerialHub surfacetimealarmacpifilter surfacetypecoverv7fprude SurfaceUcmUcsiHidClient surfacevirtualfunctionenum tbtslimhostcontroller TglChipset TglSerial |
n/a |
Surface Laptop 5 with Intel processor | adlserial alderlakepchpsystem gna heci intelprecisetouch msump64x64sta surfaceacpiplatformextensiondriver surfacebattery surfacebutton surfacedockintegration surfacehidminidriver surfacehotplug surfaceintegration surfaceserialhubdriver surfacetimealarmacpifilter tbtslimhostcontroller |
n/a |
Surface Laptop 4 with Intel processor | TglSerial IntelPreciseTouch SurfaceEthernetAdapter SurfaceBattery SurfaceHidMini SurfaceHotPlug SurfaceSerialHub SurfaceTconDriver surfacetimealarmacpifilter surfacevirtualfunctionenum TglChipset ManagementEngine |
n/a |
Surface Laptop 4 with AMD processor | U0361415 AMDfendr AMDGpio2 AMDI2c AMDLpcFilterDriverAMDMicroPEP AMDPsp AMDSmf AMDSpi AMDUart SurfaceEthernetAdapter SMBUS SurfaceBattery SurfaceButton SurfaceDigitizerHidSpiExtnPackage SurfaceHIDFriendlyNames SurfaceHidMini SurfaceHotPlug SurfaceOemPanel SurfacePowerMeter SurfacePowerTrackerCore SurfaceSerialHub SurfaceSMFClient SurfaceSmfDisplayClient SurfaceSystemManagementFramework SurfaceTconDriver SurfaceThermalPolicy Surfacetimealarmacpifilter SurfaceUcmUcsiHidClient |
n/a |
Surface Laptop 3 with Intel processor | SurfaceUpdate\SerialIOGPIO SurfaceUpdate\SerialIOI2C SurfaceUpdate\SerialIOSPI SurfaceUpdate\SerialIOUART SurfaceUpdate\SurfaceHidMini SurfaceUpdate\SurfaceSerialHub SurfaceUpdate\SurfaceHotPlug SurfaceUpdate\Itouch |
Importing the following folders will enable full keyboard, trackpad, and touch functionality in PE: SerialIOGPIO SerialIOI2C SerialIOSPI SerialIOUART itouch Chipset ChipsetLPSS ChipsetNorthpeak ManagementEngine SurfaceAcpiNotify SurfaceBattery SurfaceDockIntegration SurfaceHidMini SurfaceHotPlug SurfaceIntegration SurfaceSerialHub SurfaceService SurfaceStorageFwUpdat |
Surface Laptop 2 | SurfacePlatformInstaller\Drivers\System\GPIO SurfacePlatformInstaller\Drivers\System\SurfaceHIDMiniDriver SurfacePlatformInstaller\Drivers\System\SurfaceSerialHubDriver SurfacePlatformInstaller\Drivers\System\I2C SurfacePlatformInstaller\Drivers\System\SPI SurfacePlatformInstaller\Drivers\System\UART SurfacePlatformInstaller\Drivers\System\PreciseTouch |
For newer .msi files beginning with "SurfaceUpdate", use: SurfaceUpdate\SerialIOGPIO SurfaceUpdate\serialioi2c SurfaceUpdate\SerialIOSPI SurfaceUpdate\SerialIOUART SurfaceUpdate\SurfaceHidMini SurfaceUpdate\SurfaceSerialHub SurfaceUpdate\Itouch |
Surface Laptop (1st Gen) | SurfacePlatformInstaller\Drivers\System\GPIO SurfacePlatformInstaller\Drivers\System\SurfaceHidMiniDriver SurfacePlatformInstaller\Drivers\System\SurfaceSerialHubDriver SurfacePlatformInstaller\Drivers\System\PreciseTouch |
For newer .msi files beginning with "SurfaceUpdate", use: SurfaceUpdate\SerialIOGPIO SurfaceUpdate\SurfaceHidMiniDriver SurfaceUpdate\SurfaceSerialHubDriver SurfaceUpdate\Itouch |
Tip
Check the downloaded .msi package to determine the format and directory structure. The directory structure will start with either SurfacePlatformInstaller (older .msi files) or SurfaceUpdate (Newer .msi files) depending on when the .msi was released.
Verify imported drivers & configure Windows PE properties
Verify that the WindowsPEX64 folder now contains the imported drivers, as shown in the following figure:
Configure a selection profile that uses the WindowsPEX64 folder, as shown in the following figure:
Configure the Windows PE properties of the MDT deployment share to use the new selection profile, as follows:
- For Platform, select x64.
- For Selection profile, select the new profile.
- Select Include all drivers from the selection profile.
Verify that you have configured the remaining Surface Laptop drivers by using either a selection profile or a DriverGroup001 variable.
- For Surface Laptop (1st Gen), the model is Surface Laptop. The remaining Surface Laptop drivers should reside in the \MDT Deployment Share\Out-of-Box Drivers\Windows10\X64\Surface Laptop folder as shown in the following figure.
- For Surface Laptop 2, the model is Surface Laptop 2. The remaining Surface Laptop drivers should reside in the \MDT Deployment Share\Out-of-Box Drivers\Windows10\X64\Surface Laptop 2 folder.
- For Surface Laptop 3 with Intel processor, the model is Surface Laptop 3. The remaining Surface Laptop drivers are located in the \MDT Deployment Share\Out-of-Box Drivers\Windows10\X64\Surface Laptop 3 folder.
After configuring the MDT Deployment Share to use the new selection profile and related settings, continue the deployment process as described in Deploy a Windows 10 image using MDT: Step 6: Create the deployment task sequence.