Running Linux on the Surface Pro 3

Fedora Linux 24 was released yesterday. To my knowledge, this is the first fixed release Linux distribution which has all of the Surface Pro 3 basic functionality supported out-of-the-box, most likely thanks to the Linux 4.5 kernel. Things I have tested to work:

  • Type Cover, mouse and keyboard features.
  • Touch, with Onboard touch screen keyboard enabled when Type Cover is removed.
    • Note: For some reason the browsers (Firefox, Chrome) do not work properly with on-screen keyboard. This is really a shame and limits keyboardless usage.
  • Wifi works as expected.
  • Device goes to sleep when idling, or by tapping the power button. Wakes up from the power button, or the Windows-logo button in the front panel.
  • Battery state and charge level is correctly reported.
  • Both cameras work, front and back.
  • High DPI support works well.

I’ve only done some quick live boot smoke testing on the Surface Pro 3, but the initial expression is very good. Personally I am not a huge fan of Fedora, due to it’s bleeding edge nature and sometime sub-par quality standards, but the level support on SP3 makes it currently the strongest contended on this piece of hardware.

  1. Download 64bit version from GetFedora.org
  2. Dump the .ISO to a USB stick.
  3. Turn off your Surface Pro 3 and plug in the USB stick
  4. Press and hold Volume Up -button and then tap the Power button
  5. Modify the boot order so that the USB media is tried first.
  6. Save settings and reboot.

Thats it - enjoy your Surface Pro, freed from the annoyance of Windows 10. Please share your SP3 Linux experiences below!

If Fedora simply is not your cup of tea and you would rather use Ubuntu a bit of additional tweaking is required.

  1. Download Ubuntu 16.04 and dump it to USB stick
  2. Boot the USB and follow the usual installation procedure
  • Depending on the version of your Type Cover, you may need to use a USB hub and external mouse. There are various revisions of the Type Cover and in some of them the touch pad does not work out of the box.
  1. Once you have your Ubuntu up and running add Peter “Tigerite” Hunt’s Surface PPA to your software sources.
  2. Install package linux-surface. Reboot and you are done.
sudo apt-get install linux-surface

Not too bad. The extra steps will take you about 10 minutes. Note that you are now running an unofficial kernel by Peter Hunt.

Thanks so much for the tip about Peter “Tigerite” Hunt’s Surface PPA. It gave full functionality to the Type Cover keyboard and trackpad on my Surface Pro 4 running Ubuntu 16.04.

Now, what about getting that touchscreen to work on the SP4…?? Looking…

Thanks again.

Yes, Tigerite’s patched kernels are cool, but hopefully there is no need for it in the future and stuff goes upstream to Linux kernel ASAP. I was actually disappointed that the 16.04 did not support Surface Pro 3 out of the box, as it looked very promising in the fall of 2015. Ubuntu 16.10 is out in two months time, so let’s hope that SP3 is finally supported at 100% level.

Interestingly, running Linux on the Surface is quite popular. I guess it demonstrates that Microsoft has done very well with the hardware. The Reddit group SurfaceLinux is the best online resource for anyone interested in this.

I’ll throw in hopes for the Surface Pro 4, as well as the 3. Nevertheless, it’s such a welcome relief for me to return to Linux world after several years away (not exactly, though, have been a Unix IT Dir using OSX all that time), but I had to bail from buggy Win10 and go dual-boot on the SP4 w/ Ubuntu/Win10.

It’s kinda like the SP4 is too good of a device to let it go to waste on just Win10. However, if Microsoft ever gets Win10 into true solid form, it’ll make a nice dual-boot companion to Ubuntu or whatever flavor suits you.

Thanks for the tip about the Reddit SurfaceLinux group.

Thanks for the tip!
This works well for me so far on the Surface Pro 3 i7.
Though I do have a question regarding OS Updates, are they “safe” to do? is the kernel upgrade going to override all the patches? or should I avoid updating the OS?
Cheers

It should not switch back to the default kernel. And in any case, kernel updates are always held back, and need to be initiated manually. From Tigerite’s PPA documentation:

apt-get install linux-surface

This is from the linux-surface-meta package, which always depends on the latest point release. However, apt-get update will show the packages as held when there is a new version. To bring in the updated kernel, it will therefore be necessary to run (after apt-get update)

apt-get dist-upgrade

This also applies to users who were using the previously-numbered versions, such as linux-headers-4.4.5-3-surface. Once performed, it will only be necessary to do so again for each point release, as previously explained. Otherwise the standard apt-get upgrade will do the job.

Thanks Mate :slight_smile:
Upgrade seems ok so far. Though I have an annoying issue with my mouse cursor jumping all over the place.
Its microsoft designer mouse, I set it up with bluez but not sure if that is the culprit…
most stuff is working, I guess that’s a good start :slight_smile:

Has anyone tested the Ubuntu 16.10 daily builds on SP3?

At least some of the patches in the custom kernel(s) should go upstream to Linux kernel development, so once again I am hoping for a 100% SP3 support for the Ubuntu 16.10.

I was about to check the current status with a Ubuntu Gnome 16.10 daily build, but unfortunately it fails to boot from USB. The boot sequence does initiate, but halts rather soon and I got nothing but a black screen.

Anyone else tried it yet? It would be very beneficial to give it a good spin and report all remaining open issues.

Hi… sorry if this is jacking your post or anything but you seem to know the answers to my questions… I was wondering if 16.04.1 Ubuntu would work great installed on my Surface 3 ? With the tigerite installed can I still use the touch screen and on screen keyboard ?

Not sure if I understood your question correctly, as Ubuntu 16.04 is briefly covered in post number two. It works Ok.

Unity desktop is not really designed for touch, so you may want to go with Ubuntu Gnome, or install the Gnome desktop on top of Ubuntu 16.04. The 16.04.1 on the other hand is just a maintenance update release.

Oh yeah sorry. So gnome works better for the touch screen aspect?

Gnome Shell has certain design decisions implemented that are usable by using a touch screen and a finger. Ubuntu Unity is a rather classic desktop designed with a mouse and keyboard in mind.

Neither of them are 100% usable with touch like Android/iOS and prolly not as good as Windows 10 Tablet Mode (which is far from great).

Any more news about running Linux on the surface pro 3? :slight_smile

Ubuntu 16.10 final betas are out, but I haven’t had the time to test them. Would be interesting to know how many of the SP3 related patches have finally made it to the upstream aka Linux kernel.

https://lists.ubuntu.com/archives/ubuntu-announce/2016-September/000212.html

Now would be time to test it at least with a live session and report/update bugs that still persist.

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!