Running Linux on the Surface Pro 3

I have to say it’s quite disappointing to see that the Type Cover keyboard bug has still not been fixed in 16.10, while the fix itself has been known for a long time and is technically trivial.

I did want to say the PPA you got linked still works absolutely for SP3.
You do need follow the documentation which took me a second to realize.
I’ve had zero issues and are installed alongside Windows 10.

Thank you to Tigerite and this board for finding a good solution.

Oh yes it does, but only for the latest Long Term Supported version Ubuntu 16.04. No support has been added for 16.10.

This seems to be the most popular thread on this site, based on pages view. Thousands of people have found this somehow during the last 30 days. Thanks for the attention, and be sure to ask your questions and provide your input, so that we can spark up the conversation a bit.

###Fedora 25 on Surface Pro 3

As reported in the opening post, Fedora 24 was the first distribution with some level of Surface Pro support out of the box. On December 7th, the new Fedora 25 was released and I gave it a quick spin to verify that the support is still there. After all, Fedora 25 is the first Linux distro to use Wayland display server as the default.

And the good news is that Fedora still works on the Surfface Pro 3:

  • Type Cover
  • Touch screen
  • Suspend/resume
  • WiFi
  • HiDPI scaling is good

Thanks to Wayland, it runs buttery smooth too. The old issue of browsers not working without keyboard is unfortunately still there though, and also touch pad gestures are missing. As with Ubuntu, there are also non-official patched kernels to improve the support, for example the cass00’s repository. I have not tried it though, and as always with custom kernels - use at your own risk.

Fedora 25 is definitely worth a look on the Surface and this time on other hardware as well, to enjoy the benefits of Wayland. Grab the installation/live image from Getfedora.org.

###Quick test on Manjaro Linux

Manjaro Linux is a rolling release, based on Arch. It has a number features that make it a lot more user friendly than Arch itself and it is anoter good option for using Linux on the Surface Pro 3. The official versions come in KDE and Xfce variants, and community builds are available for just about every desktop available.

I did a quick test on Manjaro, using KDE 5.8 as the desktop and Linux 4.9 kernel. Manjaro as a super neat feature for quickly instaling and switchin in between kernel version. 4.9 is the new LTS kernel release, and Manjaro 17.01 will be based on that (now in beta). So I did a quick test on this beta release, but your results should be the same by installing the previous stable (16.10) and switching to kernel 4.9 - after all the core components here are the same (KDE version, Linux kernel)

####Quick test results: Manjaro 17.01 beta1

  • Type Cover: Keyboard and mouse features work. Advanced touchpad gestures do not (scrolling etc.). There are mixed reports whether this requires a patched kernel or just some configuration tweaks to get it right.
  • Hardware keys: Works fine.
  • Camera: Works fine
  • Touch screen: Seems to work fine - I was able to scroll and pinch-zoom with the QupZilla browser, that comes pre-installed with the beta. I have not tested with Firefox or Gnome yet.

####General tips for installing Manjaro

  • Secure boot needs to be disabled.
  • Installation of Powertop and launching it on boot is recommended for a better battery life.
  • KDE does not automatically scale to the UHD display resolution of the SP3, but there is a scaling setting where you can do this manually. Scale factor around 2x should work OK. KDE is also very flexible in customization, so you can size the desktop elements (panels, icons, widgets…) to your liking.

Other than that, it is pretty straight forward. Unfortunately the browser are still ignoring the possibility of on-screen keyboards, which cripples the usage of this device without the keyboard, as a tablet.

Now the cool thing is that since Manjaro is a rolling release, and comes with tools for easy switching of the kernel, one can very easily take advantage of the upcoming Linux 4.10 or any version after that. So if there are any Surface related improvements coming to the kernel (there are reports of added Surface 3 (non-pro) support in 4.10), you can immediately take them into good use.

Overall my quick test impression on Manjaro was so positive that I am now quite sure that I will install it to my SP3 permanently, replacing the previously installed Ubuntu Gnome + Tigerite’s patched kernel.

If someone has already figured out a tweak to enable gestures on the touchpad, please share them here!

I’ve been running Manjaro Gnome 17.01 Beta 2 for the last few days as my daily driver, and I can also confirm that it runs exceptionally well on the SP3 with the SP3 Type Cover. My only gripe is the lack of multitouch support on the trackpad… I’ve tried every which way to enable the functionality, but I can’t seem to get anywhere with it (also haven’t used Linux as a daily driver in years, so I could just be a bit rusty…)

I have a SP3 of the i3/4GB variety and it runs night and day better using Manjaro than it did when it was running Windows 10. Boot time is incredible, battery life is better, and just in general everything runs smoother. There doesn’t seem to be any wait time like I was having with Windows 10. I think under Windows 10 the 4GB of memory just wasn’t enough and my computer was having to write/read from the SSD quite a bit when the memory filled up (I’m a web developer, so I’m continually multitasking with multiple Chrome tabs, text editor, Grunt file watchers, etc.)

Stability wise, I haven’t experienced anything that you’d expect from a beta release. In my opinion, it runs extremely stable, and I’d go so far as to say it’s more of an RC release, at least for my SP3 variant.

Thank you for this informative report!

Which kernel version are you using? I just did some tests with Fedora 25, which acts pretty stable from the live media (Linux 4.8.x), but after installing and a huge bunch of updates (Linux 4.9.x), it started acting rather unstable.

The multitouch on the Type Cover apparently requires a kernel patch and some changes to configuration files.

I’m using 4.9.10-1-MANJARO, and after a few days of pretty stead use, it’s quite stable. Perhaps the Fedora 25 version has a few different patches applied that aren’t so SP3 friendly?

And something I forgot to mention earlier, Manjaro Gnome 17.01 (Beta 2) has a default display scaling of 2 applied for the SP3. This works, but everything is scaled a bit too big (at least for my personal preference.) I’m using the following two xrandr commands to zoom out on the scaling a bit:

xrandr --output eDP1 --scale 1.25x1.25
xrandr --output eDP1 --scale 1.25x1.25 --panning 2160x1440

That seems to get me back to what I was used to looking at in Windows :slight_smile: The first one zooms out, and the second one then adjusts the panning so the mouse can reach the edges of the screen. For some reason, if you just run the second command (which should, in theory anyways, do both at the same time), you end up with black bars on the right and bottom instead of a proper zoom out. Bizarre, but whatever.

And as for the multitouch, I was only working in the Xorg .conf files, which got me nowhere. Kinda sucks that the kernel needs patched… Do you know if anyone, perhaps even from the Arch team, has done anything there? I really miss my two-finger scrolling…

2 Likes

The Type Cover fixes are documented on the Arch wiki:

https://wiki.archlinux.org/index.php/Microsoft_Surface_Pro_3

The kernel development has been disappointingly slow for the SP3 support. Patches and patched kernels have been around for ages (Linux 4.3 or so). Now the kernel is approaching version 4.10 and still all of the patches have not made their way upstream. Many have but the Type Cover patches are still missing.

Ah, okay, So the kernel has to be patched then… Do you know of any how-to for patching and recompiling a kernel under Manjaro/Arch? I’ve tried searching, but I can’t seem to find much… I’ve also never patched/recompiled a kernel before, but I’m up for the challenge to see if that fixes the multitouch problem in Manjaro using the 4.9.x kernel :slight_smile:

There is a custom kernel available in AUR, but it is lagging behind - currently at 4.6. But I have not tried it personally.

https://aur.archlinux.org/packages/linux-surfacepro3/

I’d rather not downgrade the kernel so far… As I recall that the older kernels then have issues with the WiFi being unstable, slow, etc. I downloaded the source for the 4.9.11 kernel and patched it by hand (since all of the changes were rejected when trying to patch automatically, too much has changed since kernel 4.6), and I’m compiling now. I’ll try installing it later today and see if that does the trick. Unfortunately, it seems my dual-core i3 isn’t the most capable processor for compiling a kernel :stuck_out_tongue: I’m three hours in and still going…

Woot! The patched 4.9.11 kernel has multitouch support :slight_smile: I followed this Arch guide here for manual kernel compilation (Kernel/Traditional compilation - ArchWiki) with the exception that after the step $ make clean && make mrproper I patched the four driver files manually and then proceeded with compiling and installing. The kernel isn’t recognized under mhwd-kernel, but that isn’t a problem for me. I just select a different kernel from Grub at boot after manually updating the Grub config in the last step. Only possible problem is Manjaro nukes my Grub config after the next kernel update from the Manjaro repo, but that I’ll have to see.

So, with a few hours work (and a bit of learning by doing), Manjaro seems to offer full support for the Surface Pro 3 with the Type Cover 3.

1 Like

Okay, so you are hard core. How many patches were actually needed? I wonder if we could push these upstream to Manjaro…

Just the one Fedora patch to five of the driver files. Took me a whole of five minutes to patch it manually… Having it applied to the Manjaro kernels would be amazing and would make maintaining an installation much easier. Kinda sucks having to manually patch/compile anytime you want the updated stable kernel… I’ll try and post in their forums and see if anyone wants to patch it in the main repo for the next release.

Awesome. I am there with username @rewritable - ping me in your post and I will join the thread and try to write a case to support the cause. Based on Reddit groups and so many patched kernel projects, there is genuine SP3 interest in the Linux scene.

BTW, could you package the kernel and make it available for upload? Or share it with me and I’ll upload, making it available for others.

Is there info anywhere on how to package something like that for Manjaro?

Edit: I just posted in the Manjaro forums and tagged you in the post. I guess we’ll see if anyone else agrees :slight_smile:

1 Like

Just an update, looks promising that Manjaro will be patching their kernel versions :slight_smile: Could end up being the first Distro that supports the SP3 fully out-of-the-box, pretty cool!

Yes, I have been eyeballing that thread now. I am actually quite surprised that PhilM was so open towards your proposal. And Photon said he might package it and publish in AUR. That would a very good intermediate solution as well, and enable large scale user testing.

Fantastic. Looks like you made a little breakthrough with this one.

Yeah, I was pretty surprised too, but I think it’s a smart move on Manjaro’s part. From what I’ve seen doing Google searches over the last month or so before switching, people have wanted a solid Linux environment on the Surface line of devices for years… This could potentially drive a huge pool of people to the Manjaro distro :slight_smile:

No someone just needs to fix the longstanding on-screen keyboard not working with the internet browsers problem…