Surface Pro 7+ Touchscreen and Stylus Configuration in Ubuntu 22.04

surface touch banner

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.

screenshot of surface pro 7plus running ubuntu

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.

Surface Pro 7+ running Ubuntu 22.10