Shiny New Linux Surface Pro 3!

Posted by Elf Sternberg as Uncategorized

Over the July 4th holiday, I bought a Microsoft Surface Pro 3, the top-of-the-line model: i5 CPU, 8GB of RAM, 256GB SSD. Naturally, I installed Linux on it.

TL;DR: Linux is a user-friendly operating system that’s picky about who its friends are. It’s not sure about the Surface Pro 3 yet. Most things work with an install and upgrade to Linux 4.12 and up, but some significant features, like the pen, require manual intervention.

My OS of choice is Linux Mint Maté, running the Marco window manager. Following the advice from a number of websites, the first thing I did was create a Windows 10 Restoration Drive on a 32GB thumb drive, as well as a Mint OS bootable thumb drive. Having backed up the existing Windows 10 install, I then rebooted the machine while holding down both the power and the volume-up controls; this gave me access to the BIOS.

The BIOS was nice enough to let me put it into Legacy Boot mode, along with letting me boot from the USB stick.

You must have a USB hub to install Linux on a Surface Pro 3. Initial boot into Linux doesn’t support the Surface Pro 3 keyboard or trackpad, and the Marvell WiFi driver is terrible, awful, and no good. It locked up every time I tried to use it. Having a USB hub let me plug in: a keyboard, a mouse, a RealTek USB WiFi dongle, and second USB stick onto which I put the Latest Ubuntu Kernels. With the working USB WiFi connection, I was able to run through the Mint "Install Linux" menus in short order.

To install the latest kernel, find the latest version for your hardware (AMD64 for the Suface Pro 3), download the "linux-headers," "linux-headers generic," and "linux-image." Do not download the "lowlatency" versions. Then run:

sudo dpgk -i linux-*.deb

It will do the right thing. Then reboot.

The latest kernels (as of July 2017) are 4.12. On a reboot, the keyboard and trackpad worked just fine, and the Marvell drivers were much improved. I’m an "unnatural" track-pad user, so I had to go into the window manager and reverse the way the trackpad works. I was able to detach the USB hub and work with the MSP3 as if it were an ordinary laptop, so much kudos to both the kernel team and the Ubuntu team for all the wonderful work treating the MSP3 as a mainline build target.

The pen worked briefly with Krita and Gimp, and then it didn’t. I’m still trying to figure that one out. The bluetooth driver isn’t letting me connect to my headphones (yet), but that seems to be a common issue with Bose headphones and Linux, not a problem specific to the MSP3. And I haven’t even tried suspend/hibernate yet, or used the cameras. I’m also working on auto gyroscope, auto brightness, dynamic keyboard, or palm rejection when using the pen. The auto-gyroscope feature also requires automatic remapping of the pen digitizer geometry, another feature that I haven’t yet played with. I don’t own a Microsoft Knob, or whatever that thing is called.

So far, I’m about where I expected after two hours of playing with it. I’ve restored a (fairly old) laptop backup onto it and that went without a hitch, so the next step is to reconcile the two user profiles. Also: I need a name for it.

One thing I’d like to do: get an UberTooth and break the protocol for the Wacom Bamboo Sketch so that I can use it with my Surface Pro 3. I don’t know if I’ll ever get around to that project; it’s been on my backburner for ever, and the Sketch itself isn’t even really sold much anymore now that the Apple Pencil is being sold, but it’s always nice to give old products new lives.

Comment Form

Subscribe to Feed



July 2017
« Jun