NOTE: This driver is included in the Linux Surface kernel.
The ithc kernel module provides support for the Intel Touch Host Controller, which is used for the touchscreens in some newer Intel-based devices, such as the Surface Pro 7+, Surface Pro 8, X1 Fold, etc.
The module works as an HID transport driver. For Surface devices, you will also need to install IPTSD to enable multi-touch and pen support. Without IPTSD, only single touch will work. Non-Microsoft devices use standard HID data, and don't need IPTSD.
dkms
and linux-headers-amd64
)sudo make dkms-install
sudo modprobe ithc
(or reboot)build-essential
and linux-headers-amd64
)make && sudo make install
sudo modprobe ithc
(or reboot)On Lakefield and Tiger Lake devices (SP7+/SP8/SLS/SL4/X1Fold) the driver may fail to start correctly, and you will see the following error in dmesg: "Blocked an interrupt request due to source-id verification failure".
To fix this, apply one of the following workarounds:
intremap=nosid
and reboot.
If you're using GRUB on Debian/Ubuntu, you can do this with
sudo make set-nosid
.intel-iommu.patch
to your kernel.poll
module parameter.
Run echo options ithc poll | sudo tee /etc/modprobe.d/ithc-poll.conf
and reload the module or reboot.Public domain/CC0. (Files are marked GPL/BSD since that is preferred for the kernel.)