Running Linux on the Surface Pro 3

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…

Yeah. That is a huge turn-off and basically eliminates 99% of chances using these devices in tabled mode, without a keyboard. I don’t know whats up with that - apparently browsers don’t trigger appropriate desktop events when the URL text field is enabled.

I wonder does this work in touch enabled Chromebooks? Chrome OS is Linux after all.

Alright folks - this is the big one. This is what we have been waiting for.

###Manjaro 17.02 supports Surface Pro 3

The back story is this - our buddy @slaneaw here did the heavy lifting and applied the missing Type Cover touchpad patch on top of Manjaro’s Linux 4.9 kernel, and it worked. I suggested that this should be proposed for Manjaro kenel maintainers, which he did. The Manjaro project lead and kernel maintainer Philipp Müller welcomed the patch, and it is now integrated to a release.

As of today, the Manjaro 17.02 is at a release candidate phase and the final release is due in no time. The second release candidate now has the Surface Pro 3 Type Cover patches included, along with some SP4 stuff which I can’t personally test as I only have the SP3 in my possession. The RC2 is already quite stable and totally usable as the daily driver. KDE and Xfce candidate images have been released and Gnome edition, along with many other Manjaro variants, should follow soon after the 17.02 stable version is out.

Update 07.03.2017: Manjaro 17.0 stable version has been released: Download

####What we have now working staight off the live media:

  • Hardware keys: Volume up/down, power key :white_check_mark:
  • Touch screen :white_check_mark:
  • Windows Button :white_check_mark:
  • Type Cover keyboard :white_check_mark:
  • Type Cover touchpad, with two finger scrolling :white_check_mark:
    • Using KDE, the mouse emulation needs to be enabled for tap to click functionality.

The KDE is not a bad deskop for the Surface Pro 3, even though it is totally desktop/mouse oriented. You can scale the screen elemets larger for the SP3 ultra-HD display, and strech the panels and widgets to a comportable size. It runs super smooth on the SP3 hardware.

Many may prefer Gnome over KDE though, as it has certain design decisions that are better suited for touch screen usage, including the Onboard virtual keyboard. If you can’t wait for the official Manjaro Gnome 17.02 release, you can download the current stable version 16.10, enable the testing repositories and upgrade the kernel. Switch to Linux kernel 4.9.x using the Manjaro Settings Manager.

Enable testing repository:

sudo pacman-mirrors -g -b testing

Update to RC2 kernel:

sudo pacman -S linux49

And thats it! Happy testing for all Surface Pro 3 owners and kudos to @slaneaw and Manjaro developers.

Manjaro has released the new stable version as 17.0, so a change in version numbering system. The official Xfce and KDE versions are now available - waiting for the Gnome community edition. So no need to use experimental builds anymore.

https://manjaro.org/get-manjaro/

If you already installed with a release candidate build, it can be upgraded to the stable branch. See Manjaro Wiki for more details. The following command will switch to stable repositories:

 sudo pacman-mirrors -g -b stable

###Some updates to this super popular thread:

  • Manjaro Gnome 17.0.1 is out and it has been promoted to an official version of the dsitribution. This is the obvious choice for Surface users, as Gnome’s design has a level of touch screen friendliness.
  • Ubuntu 17.04 is just about to get released, scheduled for today, U.S. time. It runs the Linux kernel 4.10, featuring a rather good Surface Pro support, which the exception of Type Cover multi-touch. To get it working, you need to upgrade to mainline kernel version 4.11.
    • Download (Should be released on 13th of April 2017)
    • Information regarding the mainline kernel upgrades from here

Hi, i tried to install Manjaro Gnome 17.0.1 (see Post before mine) on my Surface Pro 3. Starting the surface with a bootable USB Stick, grup starts with an error “unknown filesystem”. Google does not help me. Does anyone know how to solve this problem?