This thread is designed to chronicle my (and others) attempts to get Fedora 25 into a working state on the MS Surface 4 pro. Maybe at some point it will evolve into a guide for others who wish to use a great piece of hardware without using Windows.
As the thread progresses, this section can be edited:
What works out of the box:
High-Resolution Screen (looks great, though terminals are TINY)
Wireless Networking (Buggy)
Pairing the Pen via Bluetooth
Intel Graphics and 3d acceleration
What works with some tweaking:
Wireless Networking (less buggy)
What doesn't work:
Touch Screen & Pen
Accelerometers/rotation sensors (Maybe someone can see if xrandr scripts work?)
What wasn't tested:
Surface 4 Cover/Keyboard/Touchpad
Before you begin:
Make sure you have a USB Hub so that you can connect multiple devices to the Surface 4 at the same time. I highly recommend a powered hub so that it does not over-tax USB port.
You will also need a flash drive with Fedora 25 on it.
Optional: Step 0:
Create a Recovery Drive: Create a Recovery Drive – Use windows 10 to create a recovery drive. This will allow you some peace of mind should something go wrong and you accidentally (or intentionally) deleted the recovery partition from the internal SSD.
Go to Control Panel → System and Security → Create a Recovery Drive
You will need a decent-sized flash drive and some patience.
Step 1. Disable bitlocker
I'm not sure whether bitlocker comes activated by default, or if I chose to activate it when I was setting up my surface 4 on windows, but for some reason, even a single boot from a USB drive trips the bitlocker program and requires you to enter decryption code for your C-Drive in order to properly boot windows again. I chose to disable it rather than monkey around with other decryption options (like typing a 40-digit number to unlock your drive)
In windows 10 go to Control Panel→ System and Security → Bitlocker Drive Encryption
and turn off bitlocker on any encrypted drives.
Step 2) Resize disks.
Even though I've been a Linux-only user for over 15 years now, I plan on keeping a small windows-10 partition around in order to get firmware updates from microsoft. I highly recommend keeping at least a minimal partition windows installation around to get these updates. You will also need to be able to grab firmware off of the windows installation to get the touch screen working correctly (if we are able to compile a kernel with support for it, that is)
In windows 10 go to Control Panel→ System and Security →Disk Management
(Somehow for me, this was listed as Control Panel → System and Security – Administrative tools – Create and format hard disk partitions.)
Select the main disk and right click, chose “Shrink”
I chose to split the disk approximately 50/50. While you're here you can also delete the recovery partition, especially if you made a USB backup of it. It's only about 1 gig, so I left it for the time being, but may delete it in the future.
Step 3: Boot from the USB
– Shut down the device, Insert the USB with Fedora 25 on it (use a hub so that you can have your keyboard and mouse too). Hold volume down, then press the power button. This will enter the UEFI setup screen. Choose boot order, find the usb and swipe left on it to boot immediately.
A note about Secureboot -
Unlike many distros, Fedora ships with a signed secure bootloader. I had no problems booting from the flash drive, nor from the standard kernels that ship with fedora without messing with secureboot. I don't yet know how it will respond to compiling your own kernel as I'm not familiar enough with how fedora interacts with secureboot.
Step 4) Install.
It's the same as a normal fedora install on pretty much any computer. I used automatic partitioning to use the space I freed up earlier.
Set up networking:
Wireless seems to work out of the box, but is buggy. It does seem to connect, but times out a lot and sometimes reduces the data rate to speeds I haven't seen since the days of dial-up. Perhaps a firmware update or a kernel update will fix this. For big downloads, I've used a USB wireless adapter I had laying around.
At this point, you should have a working computer, but no touch, pen, cameras, or cover-keyboard, and marginal WiFi.
Get Wifi Working better:
Often, for no apparent reason, the mwifiex driver will fill the system log with errors.
The wireless networking will sometimes slow down or stop alltogether. If you find this is happening, the solution seems to be to update the Marvell Wifi firmware:
git clone git://git.marvell.com/mwifiex-firmware.git
su -c "mkdir -p /lib/firmware/mrvl/"
su -c "cp mwifiex-firmware/mrvl/* /lib/firmware/mrvl/"
Overwrite any files that are already there.
Getting the touchscreen working: (Help Required)
The linux kernel does not yet support pen and touch for the surface 4 yet. I hope someday it will.
This means that if you want to get them working, you are going to need to compile a new kernel.
Some people have succeed in doing this on debian
, but I haven't found anyone who has done this on fedora yet.
From my research, IPTS support
needs to be added/enabled in the kernel. Anyone who can comment on how to do this would be greatly appreciated.
What else needs to be fixed in order for this to be a working tablet?