/linux-firmware-ipts-surfacebook2-kbl8

Note: This repository will no longer be updated. Please refer to https://github.com/linux-surface/surface-ipts-firmware instead.

Primary LanguageShellGNU General Public License v2.0GPL-2.0

IPTS Firmware for the Microsoft Surface Book 2 (Kaby Lake, 8th Gen)

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 to kbl_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.

Instructions

Arch Linux

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.

Manual Installation

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

Sources

This package is based on the following documentation, credits apply:

Obtaining the Firmware Files

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:

Different Surface Book Versions

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.

License

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).