[INFO] Thread about Windows Surface

Must read
Post Reply
User avatar
Posts: 4678
Joined: Tue Nov 07, 2017 3:45 pm
Location: Belgium

[INFO] Thread about Windows Surface

Post by erikdubois »

TechXero brought to my attention that there is a specific kernel for Surface owners.

His documentation can be found here :


If the forum gets removed or is unreachable then here is a raw copy/paste.



Hey there,

It has recently come to my attention that some features don't work right out the box with XeroLinux on a Microsoft Surface series of devices. And that got me to look for a solution. Now this isn't one per say, but it is said to solve quite a few things, as well as adding TouchScreen support. And yeas I am talking about a Surface specific Kernel I found.

[Image: wmm48V7.jpeg]

I will post guide on how to install it verbatum from their site here, coz their GitHub can be a bit complex to go through as they cover other non-Arch distros too.. Am targeting XeroLinux in this post which is Arch-Based...

### The Guide ###

First you need to import the keys we use to sign packages.

$ curl -s https://raw.githubusercontent.com/linux ... urface.asc \
| sudo pacman-key --add -

Plain text

It is recommended to check and verify the fingerprint of the key and then locally sign it.

$ sudo pacman-key --finger 56C464BAAC421453
$ sudo pacman-key --lsign-key 56C464BAAC421453

Plain text

You can now add the repository by adding the following to the end of /etc/pacman.conf

Server = https://pkg.surfacelinux.com/arch/

Plain text

After doing that you need to refresh the repository metadata, then you can install the linux-surface kernel and its dependencies. You should also enable the iptsd service for touchscreen support.

NOTE: libwacom-surface is packaged through the AUR, so you need to install it from there via this command (replace paru with yay if using yay) (Answer yes to all prompts)

paru -S libwacom-surface

Plain text

$ sudo pacman -Syu
$ sudo pacman -S linux-surface linux-surface-headers iptsd
$ sudo systemctl enable iptsd

Plain text

After that you can install our secureboot key. This will import the key that the linux-surface kernel is signed with into your bootloader, so that the kernel is bootable without disabling secureboot. This package will print instructions to the terminal, so please install it on its own, not as part of a bigger batch of packages.

$ install linux-surface-secureboot-mok

Plain text

### NOTE: ###

Arch by default is not set up for **secureboot** at all! It neither includes a signed bootloader, nor does it include a shim-loader that was signed by Microsoft. You can get some of these through the AUR, but you will definitely need to generate your own keys and add them to shim. Only run the above command if all of this has been done!

For more information on secure boot, take a look at the ArchWik about secure boot.

The linux-surface kernel will be installed alongside the default kernel provided by the distribution. This way you have a backup kernel you can use if something goes wrong. GRUB will pick up the kernel by default, but you should update its configuration to make sure it was recognized. If you are not using GRUB, you might need to edit your bootloader configuration.

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Plain text

Finally, reboot your system and you should boot into the linux-surface kernel. Please make sure you are actually using the right kernel by checking if the output of uname -a contains the string surface. If it doesn't contain that string, you are still using the default kernel and need to configure your bootloader.

That's it ! I hope this guide helps all you Surface owners out there... For support check out the dev's GitHub as I do not own that device myself to provide it...

Let us know how it went for you...
Learn, have fun and enjoy.
But first use the power of the Arch Wiki
use the tutorials on https://www.youtube.com/erikdubois
then use the power of google
then use the power of our moderators.

Post Reply

Return to “Tips and Tricks”