Surface Pro 7+ Touchscreen and Stylus Configuration in Ubuntu 22.04
I installed Fedora 37 and Manjaro first but settled on Ubuntu 22.04 running Gnome for this. Either way, touch did not work on those operating systems either after following the instructions at surface Linux. I believe they can work following this, just change it up for those OSes. Ubuntu just seemed easier and likely most stable for this. These instructions might/should work for the Surface Pro 8 also.
I won’t walk you through the Ubuntu install. There are plenty of videos and instructions on that. It was pretty uneventful.
Alright you got Ubuntu installed and it runs great but no touch screen even though you followed the instructions at https://github.com/linux-surface/linux-surface/wiki/Installation-and-Setup
If you followed the above instructions go ahead and apt purge iptsd and install dkms. If you have not go ahead and follow those instructions just swap iptsd for dkms when it has you execute that install line. If you have issues building you might need to install build-essential.
Before we get started there are a couple things that need installed:
$ sudo apt install git build-essential meson
Single Touch ITHC (required for multi-touch also)
The github is here: https://github.com/quo/ithc-linux
Open the terminal and cd in to Downloads.
Then clone the code with:
$ git clone https://github.com/quo/ithc-linux.git
cd into ithc-linux
As the instructions say run:
$ sudo make dkms-install
$ sudo modprobe ithc
Now verify single touch works. If so you can go ahead and install.
Before touch will work after booting you need to edit grub:
$ sudo /etc/default/grub
You will see a line:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
Change to:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet intremap=nosid splash”
Save the file and issue this command to set it:
$ sudo update-grub
Reboot and you should have single touch enabled.
Multi-touch and Stylus IPTSD
The github is here: https://github.com/quo/iptsd
Alright, cd back into Downloads – get out of ithc if still in that directory. Grab the source with:
$ git clone https://github.com/quo/iptsd.git
cd into iptsd
Issue the following commands to build:
$ meson build
$ ninja -C build
Test it with:
$ sudo build/src/daemon/iptsd
If three fingers moves you left and right you alright. You can control+z out and run the install.
$ sudo ninja -C build install
This is where it went to shit. None of the below worked for me but give it a try, it might for you.
This is from the documentation on the iptsd git page.
$ sudo systemctl daemon-reload
$ sudo systemctl disable iptsd
$ sudo systemctl start iptsd
I attempted to systemctl enable iptsd and it failed saying it could not be found or some shit. If that happens just create the service manually…
$ sudo nano /lib/systemd/system/iptsd.service
Then saved the file with the following contents:
[Unit] Description=Intel Precise Touch & Stylus Daemon Documentation=https://github.com/linux-surface/iptsd [Service] Type=simple ExecStart=/usr/local/bin/iptsd [Install] WantedBy=default.target
Once that is saved you can…
$ sudo systemctl enable iptsd
and reboot. You should have multi-touch and pen should work too At least it worked for me. Good luck.
Bonus: Upgrade to 22.10 now?
I upgraded to 22.10 running Gnome 43 to get some of those tablet niceties. Touch works just fine and required no intervention. If you want to upgrade before 22.10 shows up in updates just enable “For Any New Version” under the Updates tab in Software & Updates. Once you update open the terminal and issue the following command if you want it now or wait for it to show up in the updater:
$ sudo do-release-upgrade -d
It was fast for me. Do not interrupt or shut down during this process or you’ll make work for yourself. FYI: You will need to re-enable PPAs and thrid party repos.