Hi, using a new search engine with zen browser, perplexity, gives this (note Zorin 18 is a fork of Ubuntu 24.04 which I used as part of the search criteria):
"Touch on a Surface Pro 4 under Ubuntu 24.04 normally only works reliably if you use the Linux Surface kernel and input stack; if you upgraded from an older Ubuntu or are on the stock kernel, the touchscreen often stops working completely.
What is going on
Surface devices use Intel Precise Touch & Stylus (IPTS), which the stock Ubuntu 24.04 kernel does not fully support on older models like the Surface Pro 4.
The usual fix is to replace the stock kernel with the community-maintained Linux Surface kernel and then install the IPTS userspace daemon and/or ITHC driver as documented in the Linux Surface project.
Steps that usually restore touch
From a working keyboard/mouse session:
Check the Linux Surface feature matrix
Go to the Linux Surface GitHub project and confirm that Surface Pro 4 is supported and which driver (IPTS vs ITHC) it uses.
Install the Linux Surface kernel
Follow the official “Installation and Setup” guide from Linux Surface for Ubuntu; this typically involves:
Adding the Linux Surface APT repo and key.
Installing the linux-image-surface and matching headers for Ubuntu 24.04.
Rebooting into the new kernel.
Install the touchscreen stack
Depending on what the guide says for Surface Pro 4 and current kernels:
Either install and enable iptsd (for IPTS-based devices) or
Build and install the ithc DKMS module and then load it with modprobe ithc.
Add the GRUB parameter
Edit /etc/default/grub and change the line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
to include:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intremap=nosid splash"
Run sudo update-grub and reboot.
This parameter is needed on several Surface generations so the touch controller initializes correctly on boot.
If you recently upgraded to 24.04
An in-place upgrade can switch you back to the stock Ubuntu kernel or break your previously installed Surface-specific modules, which makes touch disappear.
Re-run the Linux Surface installation steps for the new Ubuntu release, reinstall any DKMS modules, and recheck that GRUB_CMDLINE_LINUX_DEFAULT still contains intremap=nosid.
When touch partly works or is erratic
If you get ghost touches or only single-touch:
Adjust iptsd.conf as suggested in Linux Surface issue discussions; some users regained stable single-touch by uninstalling or reconfiguring iptsd.
Others achieved multitouch and pen by keeping iptsd but tweaking configuration and ensuring the correct version for their kernel.
If you share what you did just before losing touch (fresh install vs upgrade, whether you ever installed the Linux Surface kernel, and output of uname -r), more concrete commands can be suggested."