Note: This repository will no longer be updated. Please refer to github.com/linux-surface/surface-ipts-firmware instead.
Intel Precise Touch & Stylus (IPTS) linux firmware for the Microsoft Surface Book 2 with 8th gen Kaby Lake CPU.
This Package only provides the IPTS firmware.
Separate GuC firmware for i915
and a compatible kernel (e.g. this one) are required for full functionality.
This should usually be provided by your Linux distribution, i.e. for Arch Linux via the linux-firmware
package (or equivalent).
Specifically, the required files are
kbl_dmc_ver1_01.bin
kbl_dmc_ver1_04.bin
kbl_guc_ver9_14.bin
kbl_guc_ver9_39.bin
kbl_huc_ver02_00_1810.bin
and
kbl_dmc_ver1.bin
, which is a symlink tokbl_dmc_ver1_01.bin
and is apparently required for some kernels.
These files can be found in the linux firmware repository or via the official intel page and should be placed under /lib/firmware/i915/
.
Note: These files are for kaby-lake as indicated by the kbl
prefix.
Other processor families require different firmware.
Simply use the provided PKGBUILD
, i.e. clone this repository and then, inside this source directory, run
makepkg -si
If not present, install linux-firmware
or an equivalent package as mentioned above.
Copy the *.bin
files to /lib/firmware/intel/ipts/
and create the following symlinks
cd /lib/firmware/intel/ipts
ln -s SurfaceTouchServicingDescriptorMSHW0137.bin vendor_desc.bin
ln -s SurfaceTouchServicingKernelMSHW0137.bin vendor_kernel.bin
ln -s SurfaceTouchServicingSFTConfigMSHW0137.bin config.bin
ln -s iaPreciseTouchDescriptor.bin intel_desc.bin
This package is based on the following documentation, credits apply:
As described here, the firmware files can be obtained from a Windows installation.
They are placed in %WINDIR%\INF\PreciseTouch\Intel\
.
For some versions, the iaPreciseTouchDescriptor.bin
does not seem to be present.
If this is the case, it can be obtained from here or here:
See the Intel IPTS for Linux wiki.
Basically, obtain the respective firmware files from a Windows installation as described above.
The only difference should be the names of the files, they can be installed equivalently.
You can alternatively consult Jake Day's linux-surface repo, specifically the setup.sh
script and firmware
directory.
This package is provided under the GPLv2 license, except for the actual firmware files (*.bin
) bundeled with it.
All rights to these files lay with Microsoft and/or their respecitve vendors.
They are only bundeled for convenience.
Anyone who can make use of these files needs specific hardware, which inherently provides access to these files through the included windows installation (see above).